Created
June 12, 2023 22:12
-
-
Save kristiker/be683a87aa9e4349ce38db54da7297c1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//================================================================================================= | |
// Reconstructed with VRF - https://vrf.steamdb.info/ | |
//================================================================================================= | |
HEADER | |
{ | |
Description = "Shader used by the particle system"; | |
DevShader = true; | |
Version = 0; | |
} | |
MODES | |
{ | |
CsgoForward(); | |
GBuffer(S_MODE_GBUFFER); | |
ToolsVis(S_MODE_TOOLS_VIS); | |
ToolsShadingComplexity(S_MODE_TOOLS_SHADING_COMPLEXITY); | |
ToolsWireframe(S_MODE_TOOLS_WIREFRAME); | |
} | |
FEATURES | |
{ | |
Feature( F_DRAW_AS_TRAIL, 0..1, "" ); | |
Feature( F_MOTION_VECTORS, 0..1, "" ); | |
Feature( F_TEXTURE_LAYERS, 0..4 (0="None", 1="TextureLayer1", 2="TextureLayer2", 3="TextureLayer3", 4="TextureLayer4"), "" ); | |
Feature( F_REFRACT, 0..1, "" ); | |
Feature( F_HSV_SHIFT, 0..1, "" ); | |
Feature( F_PARTICLE_SHADOWS, 0..1, "" ); | |
Feature( F_REVERSE_DEPTH, 0..1, "" ); | |
Feature( F_DISABLE_DEPTHTEST, 0..1, "" ); | |
Feature( F_LIGHTEN_MODE, 0..1, "" ); | |
Feature( F_FOG_PARTICLES, 0..1, "" ); | |
Feature( F_OPAQUE, 0..1, "" ); | |
Feature( F_SELF_ILLUM_PER_PARTICLE, 0..1, "" ); | |
Feature( F_ENABLE_DESCRIPTOR_SET, 0..1, "" ); | |
FeatureRule( Allow1( F_REVERSE_DEPTH, F_DISABLE_DEPTHTEST ), "Cannot disable depth test and use reverse depth test at the same time" ); | |
FeatureRule( Requires1( F_MOTION_VECTORS, F_TEXTURE_LAYERS == 0, F_TEXTURE_LAYERS == 1, F_TEXTURE_LAYERS == 2 ), "Maximum cbuffer allowances for motion + layers is 2 layers and 1 motion" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_REVERSE_DEPTH ), "Particle shadows and Reverse Depth are incompatible" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_DISABLE_DEPTHTEST ), "Particle shadows and Disable Depth Test are incompatible" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_DRAW_AS_TRAIL ), "Particle shadows and Trails are incompatible" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_LIGHTEN_MODE ), "Particle shadows and Lighten mode are incompatible" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_REFRACT ), "Particle shadows and Refract are incompatible" ); | |
FeatureRule( Allow1( F_PARTICLE_SHADOWS, F_OPAQUE ), "Particle shadows and Opaque are incompatible" ); | |
} | |
COMMON | |
{ | |
#include "system.fxc" | |
cbuffer PerViewBarnLightConstantBuffer2_t | |
{ | |
float4x3 g_mBarnIlluminationFromWorld[315]; | |
float4x4 g_mBarnFrustumInv[315]; | |
float4 g_vBarnLightLuminaireInfo0[315]; | |
float4 g_vBarnLightLuminaireInfo1[315]; | |
float4 g_vBarnLightLuminaireInfo2[315]; | |
float4 g_vBarnLightLuminaireInfo3[315]; | |
}; | |
cbuffer PerViewBarnLightConstantBuffer_t | |
{ | |
float4 g_vNumBarnLights; | |
float4x4 g_mBarnFrustum[315]; | |
float4 g_vBarnLightPosition[315]; | |
float4 g_vBarnLightDistanceFade_vSkirt[315]; | |
float4 g_vBarnLightColor_flCookie[315]; | |
float4 g_vBarnLightOrientation[315]; | |
float4 g_vBarnLightAngleFade_flContactShadowBit[315]; | |
float4 g_vBarnLightShadowOffsetScale[315]; | |
float4 g_vBarnLightCookieParameters[315]; | |
float4 g_vBarnLightBakedShadowMask[315]; | |
float4 g_vBarnLightMinRoughness_flLuminaireType_flAsBaked_fShadowScale[315]; | |
}; | |
cbuffer PerViewConstantBufferCsgo_t | |
{ | |
bool4 g_bFogTypeEnabled; | |
bool4 g_bOtherFxEnabled; | |
bool4 g_bOtherEnabled2; | |
DWORD g_tBlueNoiseTextureIndex; | |
DWORD g_tBRDFLookupTextureIndex; | |
DWORD g_tCubemapFogTextureIndex; | |
DWORD g_tDynamicAmbientOcclusionTextureIndex; | |
DWORD g_tDynamicAmbientOcclusionDepthIndex; | |
DWORD g_tSSAOIndex; | |
DWORD g_tParticleShadowBufferIndex; | |
DWORD g_tZeroth_MomentIndex; | |
DWORD g_tMomentsIndex; | |
DWORD g_tExtra_MomentIndex; | |
DWORD g_tLowShaderQualityFallbackCubemap; | |
DWORD g_tUnused0; | |
float2 g_vBlueNoiseMask; | |
DWORD g_tUnused1; | |
DWORD g_tUnused2; | |
float4x4 g_matSkyboxToWorld; | |
float2 g_vAoProxyDepthInvTextureSize; | |
float g_flAoProxyDownres; | |
float g_flUnusedAfterAo; | |
float4 g_vWindDirection; | |
float4 g_vWindStrengthFreqMulHighStrength; | |
float4 g_vInteractionProjectionOrigin; | |
float4 g_vInteractionVolumeInvExtents; | |
float4 g_vInteractionTriggerVolumeInvMins; | |
float4 g_vInteractionTriggerVolumeWorldToVolumeScale; | |
float4 g_vGradientFogBiasAndScale; | |
float4 m_vGradientFogExponents; | |
float4 g_vGradientFogColor_Opacity; | |
float4 g_vGradientFogCullingParams; | |
float4 g_vCubeFog_Offset_Scale_Bias_Exponent; | |
float4 g_vCubeFog_Height_Offset_Scale_Exponent_Log2Mip; | |
float4x4 g_matvCubeFogSkyWsToOs; | |
float4 g_vCubeFogCullingParams_MaxOpacity; | |
float4 g_vCubeFog_ExposureBias; | |
float4 g_vHighPrecisionLightingOffsetWs; | |
float g_flEnvMapPositionBias; | |
float g_flScopeMagnification; | |
float g_flEffectStrength; | |
float g_flMixedResolutionViewportScale; | |
float g_flMBOIT_Overestimation; | |
float g_flMBOIT_Bias; | |
float g_flMBOIT_Scale; | |
float g_flToolsVisCubemapReflectionRoughness; | |
float g_flCablePixelRadiusScale; | |
float g_flRealTime; | |
}; | |
cbuffer PerViewConstantBuffer_t; | |
cbuffer PerViewLightProbeVolumeConstantBuffer_t | |
{ | |
DWORD g_LPV[450]; | |
}; | |
cbuffer PerViewLightingConstantBufferGpu_t | |
{ | |
float4 g_vShadow3x3PCFTermC0; | |
float4 g_vShadow3x3PCFTermC1; | |
float4 g_vShadow3x3PCFTermC2; | |
float4 g_vShadow3x3PCFTermC3; | |
float4 g_vLightmapParams; | |
float4 g_vScreenSpaceDitherParams; | |
float4 g_vCubemapNormalizationParams; | |
float4 g_vAmbientLightingSH[3]; | |
float4 g_vAmbientOcclusionProxyLightPositions[4]; | |
float4 g_vAmbientOcclusionProxyLightConeAngles; | |
float4 g_vAmbientOcclusionProxyLightStrengths; | |
float4 g_vAmbientOcclusionProxyAmbientStrength; | |
float4 g_vToolsAmbientLighting; | |
float4 g_vFastPathSunLightDir; | |
float4 g_vFastPathSunLightColor; | |
float4 g_vFastPathSunLightBakedShadowMask; | |
float4 g_vLightCullParams; | |
float4 g_vEnvMapCullParams; | |
float4 g_vTileCullParams; | |
float4 g_vDepthCullParams; | |
float4 g_vVisibleEnvMapSizeConstants; | |
float4x3 g_matVisibleEnvMapWorldToLocal[128]; | |
float4 g_vVisibleEnvMapBoxMin[128]; | |
float4 g_vVisibleEnvMapBoxMax[128]; | |
float4 g_vVisibleEnvInvEdgeWidth[128]; | |
float4 g_vVisibleEnvMapProxySphere[128]; | |
float4 g_vVisibleEnvMapColorRotated[128]; | |
float4 g_vVisibleEnvMapNormalizationSH[128]; | |
float4 g_vVisibleEnvMapData[128]; | |
int g_nShadowCascadeCount; | |
float g_fShadowCascadeStrength; | |
float g_flShadowCascadeReceiverDepthBias; | |
DWORD _pad1; | |
float4 g_vShadowCascadeSampleThreshold; | |
float g_flShadowCascadeSplitLerpFactorOffset; | |
float g_flShadowCascadeSplitLerpFactorScale; | |
float g_flShadowCascadeZLerpFactorOffset; | |
float g_flShadowCascadeZLerpFactorScale; | |
float4x4 g_mWorldToShadowCascade[4]; | |
float4x4 g_mShadowCascadeToWorld[4]; | |
float4 g_vShadowCascadeAtlasOffset[4]; | |
DWORD g_tShadowDepthBufferIndex; | |
DWORD g_tLightCookieTextureIndex; | |
DWORD g_tEnvironmentMapTextureIndex; | |
DWORD _pad2; | |
int4 g_nLightPropertyMasks[10]; | |
}; | |
cbuffer SpriteCardPushConstants_t | |
{ | |
}; | |
cbuffer SpritecardVertexControls_t | |
{ | |
float4 g_vecRadiusControls; | |
float4 g_vecDepthControlAndRotationCenterData; | |
float4 g_vecOrientationFadeControlData; | |
float4 g_vecTexelSizeControls; | |
float4 g_vecExtraData2; | |
float4 g_vecTextureControlsVertex_Base; | |
float4 g_vecTextureControlsVertex_Layer1; | |
float4 g_vecTextureControlsVertex_Layer2; | |
float4 g_vecTextureControlsVertex_Layer3; | |
float4 g_vecTextureControlsVertex_Layer4; | |
float4 g_vecTextureControlsVertex_Rotation; | |
float2 g_vSheetSize; | |
float2 g_vSheetDataIndex; | |
float2 g_vTextureLayer1SheetDataIndex; | |
float2 g_vTextureLayer2SheetDataIndex; | |
float2 g_vTextureLayer3SheetDataIndex; | |
float2 g_vTextureLayer4SheetDataIndex; | |
float2 g_vMotionVectorsSheetDataIndex; | |
float2 g_vNormalSheetDataIndex; | |
float2 m_vSphericalHarmonicLightingSheetDataIndex; | |
int g_nLPVIndex; | |
float g_flPADDING; | |
int3 g_nTextureVertexFlags; | |
int g_nControlWord; | |
float3 g_vExtraAmbientLight; | |
float g_flPADDING2; | |
}; | |
struct VS_INPUT | |
{ | |
float4 m_vTint : COLOR0 < Semantic( None ); >; | |
float4 m_vTint1 : COLOR1 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vPos : POSITION0 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1 | |
float4 m_vCornerID : TEXCOORD0 < Semantic( None ); >; | |
float4 m_vSeedAndTimeData : TEXCOORD1 < Semantic( None ); >; | |
float4 m_vPosAndRadius0 : TEXCOORD3 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vPosAndRadius1 : TEXCOORD4 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_flSelfIllum : TEXCOORD5 < Semantic( None ); >; | |
float4 m_vPosAndRadius2 : TEXCOORD5 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vPosAndRadius3 : TEXCOORD6 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vSegmentDistanceAndExtraData : TEXCOORD7 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vCropDomain : TEXCOORD8 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vParticleNormal0 : TEXCOORD9 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vSelfIllum : TEXCOORD11 < Semantic( None ); >; | |
float4 m_vParticleNormal1 : TEXCOORD10 < Semantic( None ); >; // S_DRAW_AS_TRAIL=1 | |
float4 m_vSequenceData : TEXCOORD2 < Semantic( None ); >; | |
float4 m_vRotationAndRadiusData : TEXCOORD3 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1 | |
float4 m_vParticleNormal : TEXCOORD4 < Semantic( None ); >; // S_DRAW_AS_TRAIL=0, S_MODE_GBUFFER=1, S_PARTICLE_SHADOWS=1 | |
}; | |
} | |
VS | |
{ | |
StaticCombo( S_MOLTEN_VK, 0..1 ); | |
StaticCombo( S_MODE_GBUFFER, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_VIS, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_SHADING_COMPLEXITY, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_WIREFRAME, 0..1 ); | |
StaticCombo( S_DRAW_AS_TRAIL, F_DRAW_AS_TRAIL ); | |
StaticCombo( S_MOTION_VECTORS, F_MOTION_VECTORS ); | |
StaticCombo( S_SELF_ILLUM_PER_PARTICLE, F_SELF_ILLUM_PER_PARTICLE ); | |
StaticCombo( S_PARTICLE_SHADOWS, F_PARTICLE_SHADOWS ); | |
StaticCombo( S_ENABLE_DESCRIPTOR_SET, F_ENABLE_DESCRIPTOR_SET ); | |
StaticCombo( S_TEXTURE_LAYERS, F_TEXTURE_LAYERS ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_MOTION_VECTORS ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_VIS, S_SELF_ILLUM_PER_PARTICLE ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_MODE_TOOLS_WIREFRAME ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_DRAW_AS_TRAIL ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_PARTICLE_SHADOWS ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_PARTICLE_SHADOWS ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_PARTICLE_SHADOWS ) ); | |
StaticComboRule( Requires1( S_MODE_TOOLS_VIS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2, S_TEXTURE_LAYERS == 3 ) ); | |
StaticComboRule( Requires1( S_MOTION_VECTORS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2 ) ); | |
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_DRAW_AS_TRAIL ) ); | |
DynamicCombo( D_QUAD_OVERDRAW, 0..1 ); | |
DynamicCombo( D_SUPPORT_FRAME_CROP, 0..1 ); | |
DynamicCombo( D_BAKED_LIGHTING_FROM_PROBE, 0..1 ); | |
DynamicCombo( D_PANORAMA_PARTICLE, 0..1 ); | |
DynamicComboRule( Requires1( D_QUAD_OVERDRAW, S_MODE_TOOLS_SHADING_COMPLEXITY ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_QUAD_OVERDRAW == 0 ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_BAKED_LIGHTING_FROM_PROBE == 0 ) ); | |
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_PANORAMA_PARTICLE ) ); | |
DynamicComboRule( Allow1( S_PARTICLE_SHADOWS, D_PANORAMA_PARTICLE ) ); | |
DynamicComboRule( Allow1( S_MOTION_VECTORS, D_SUPPORT_FRAME_CROP ) ); | |
ExternalDescriptorSet g_lightBinnerGpuSet < Attribute("g_lightBinnerGpuSet"); >; | |
ExternalDescriptorSet g_particleManagerDescSet < Attribute("g_particleManagerDescSet"); >; | |
// --------- SPIRV -> HLSL begin --------- | |
static float _2; | |
static float4 _17208; | |
cbuffer _2653_4459 : register(b15) | |
{ | |
column_major float4x4 _4459_m0 : packoffset(c0); | |
float4 _4459_m1 : packoffset(c17); | |
float _4459_m2 : packoffset(c18.z); | |
float _4459_m3 : packoffset(c18.w); | |
float3 _4459_m4 : packoffset(c19); | |
float _4459_m5 : packoffset(c19.w); | |
float3 _4459_m6 : packoffset(c20); | |
float _4459_m7 : packoffset(c20.w); | |
float3 _4459_m8 : packoffset(c21); | |
float3 _4459_m9 : packoffset(c22); | |
float2 _4459_m10 : packoffset(c23.z); | |
float2 _4459_m11 : packoffset(c26); | |
float2 _4459_m12 : packoffset(c26.z); | |
float4 _4459_m13 : packoffset(c33); | |
}; | |
cbuffer _1152_5538 : register(b0) | |
{ | |
float4 _5538_m0 : packoffset(c0); | |
float4 _5538_m1 : packoffset(c1); | |
float4 _5538_m2 : packoffset(c2); | |
float4 _5538_m3 : packoffset(c3); | |
float4 _5538_m4[3] : packoffset(c7); | |
float4 _5538_m5 : packoffset(c17); | |
float4 _5538_m6 : packoffset(c19); | |
uint4 _5538_m7 : packoffset(c21); | |
uint4 _5538_m8 : packoffset(c23); | |
float4 _5538_m9 : packoffset(c24); | |
}; | |
ByteAddressBuffer _4440 : register(t30); | |
cbuffer _1032_5037 : register(b20) | |
{ | |
float4 _5037_m0 : packoffset(c30); | |
float _5037_m1 : packoffset(c31.w); | |
}; | |
cbuffer _1882_3553 : register(b18) | |
{ | |
float4 _3553_m0 : packoffset(c0); | |
float4 _3553_m1 : packoffset(c1); | |
float4 _3553_m2 : packoffset(c2); | |
float4 _3553_m3 : packoffset(c3); | |
float4 _3553_m4 : packoffset(c4); | |
float4 _3553_m5 : packoffset(c5); | |
float2 _3553_m6 : packoffset(c11); | |
float2 _3553_m7 : packoffset(c11.z); | |
uint3 _3553_m8 : packoffset(c16); | |
uint _3553_m9 : packoffset(c16.w); | |
}; | |
cbuffer _2763_4528 : register(b2) | |
{ | |
column_major float4x4 _4528_m0[315] : packoffset(c1); | |
float4 _4528_m1[315] : packoffset(c1261); | |
float4 _4528_m2[315] : packoffset(c1576); | |
float4 _4528_m3[315] : packoffset(c1891); | |
float4 _4528_m4[315] : packoffset(c2206); | |
float4 _4528_m5[315] : packoffset(c2521); | |
float4 _4528_m6[315] : packoffset(c2836); | |
float4 _4528_m7[315] : packoffset(c3151); | |
float4 _4528_m8[315] : packoffset(c3781); | |
}; | |
cbuffer _462_5435 : register(b3) | |
{ | |
column_major float4x3 _5435_m0[315] : packoffset(c0); | |
}; | |
Texture2D<float4> _25287; | |
SamplerState __25287_sampler; | |
Texture3D<float4> _25289; | |
SamplerState __25289_sampler; | |
Texture3D<float4> _25291; | |
SamplerState __25291_sampler; | |
Texture2D<float4> _25293; | |
SamplerComparisonState __25293_sampler; | |
static float4 gl_Position; | |
static float gl_ClipDistance[1]; | |
static float2 _5759; | |
static float4 _5760; | |
static float4 _5761; | |
static float4 _5936; | |
static float3 _5105; | |
static float4 _5762; | |
static float3 _5763; | |
static float4 _3486; | |
static float4 _5188; | |
static float3 _3488; | |
static float3 _3489; | |
static float4 _3490; | |
static float4 _3491; | |
struct SPIRV_Cross_Input | |
{ | |
float2 _5759 : TEXCOORD0; | |
float4 _5760 : TEXCOORD1; | |
float4 _5761 : TEXCOORD2; | |
float4 _5936 : TEXCOORD3; | |
float3 _5105 : TEXCOORD4; | |
float4 _5762 : TEXCOORD5; | |
float3 _5763 : TEXCOORD6; | |
}; | |
struct SPIRV_Cross_Output | |
{ | |
float4 _3486 : TEXCOORD0; | |
float4 _5188 : TEXCOORD1; | |
float3 _3488 : TEXCOORD2; | |
float3 _3489 : TEXCOORD3; | |
nointerpolation float4 _3490 : TEXCOORD4; | |
float4 _3491 : TEXCOORD5; | |
float4 gl_Position : SV_Position; | |
float gl_ClipDistance0 : SV_ClipDistance0; | |
}; | |
void MainVs_inner() | |
{ | |
float3 _21709; | |
if ((min(4u, ((_3553_m9 >> 1u) & 7u)) == 0u) && (_3553_m2.z == 0.0f)) | |
{ | |
float3 _12501; | |
if ((_4459_m10.y / _4459_m10.x) > 1.77777779102325439453125f) | |
{ | |
Wave ops requires SM 6.0 or higher.// --------- SPIRV -> HLSL end --------- | |
} | |
PS | |
{ | |
StaticCombo( S_MOLTEN_VK, 0..1 ); | |
StaticCombo( S_MODE_GBUFFER, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_VIS, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_SHADING_COMPLEXITY, 0..1 ); | |
StaticCombo( S_MODE_TOOLS_WIREFRAME, 0..1 ); | |
StaticCombo( S_REVERSE_DEPTH, F_REVERSE_DEPTH ); | |
StaticCombo( S_MOTION_VECTORS, F_MOTION_VECTORS ); | |
StaticCombo( S_REFRACT, F_REFRACT ); | |
StaticCombo( S_OPAQUE, F_OPAQUE ); | |
StaticCombo( S_HSV_SHIFT, F_HSV_SHIFT ); | |
StaticCombo( S_DRAW_AS_TRAIL, F_DRAW_AS_TRAIL ); | |
StaticCombo( S_TEXTURE_LAYERS, F_TEXTURE_LAYERS ); | |
StaticCombo( S_PARTICLE_SHADOWS, F_PARTICLE_SHADOWS ); | |
StaticCombo( S_ENABLE_DESCRIPTOR_SET, F_ENABLE_DESCRIPTOR_SET ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_REVERSE_DEPTH ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_MOTION_VECTORS ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_REFRACT ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_REFRACT ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, S_OPAQUE ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_OPAQUE ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_MODE_TOOLS_WIREFRAME ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_DRAW_AS_TRAIL ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_OPAQUE ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_REFRACT ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_REVERSE_DEPTH ) ); | |
StaticComboRule( Allow1( S_MODE_GBUFFER, S_PARTICLE_SHADOWS ) ); | |
StaticComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, S_PARTICLE_SHADOWS ) ); | |
StaticComboRule( Requires1( S_MOTION_VECTORS, S_TEXTURE_LAYERS == 0, S_TEXTURE_LAYERS == 1, S_TEXTURE_LAYERS == 2 ) ); | |
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_REVERSE_DEPTH ) ); | |
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_DRAW_AS_TRAIL ) ); | |
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_REFRACT ) ); | |
StaticComboRule( Allow1( S_PARTICLE_SHADOWS, S_OPAQUE ) ); | |
DynamicCombo( D_DEPTH_FEATHERING, 0..1 ); | |
DynamicCombo( D_SCENE_DEPTH_MSAA, 0..1 ); | |
DynamicCombo( D_FASTPATH, 0..1 ); | |
DynamicCombo( D_SHADOW_MODE, 0..1 ); | |
DynamicCombo( D_QUAD_OVERDRAW, 0..1 ); | |
DynamicCombo( D_MBOIT_PASS1, 0..1 ); | |
DynamicCombo( D_MBOIT_PASS2, 0..1 ); | |
DynamicCombo( D_PANORAMA_PARTICLE, 0..1 ); | |
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_DEPTH_FEATHERING ) ); | |
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_SCENE_DEPTH_MSAA ) ); | |
DynamicComboRule( Allow1( S_REFRACT, D_FASTPATH ) ); | |
DynamicComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, D_FASTPATH ) ); | |
DynamicComboRule( Allow1( S_MODE_TOOLS_WIREFRAME, D_FASTPATH ) ); | |
DynamicComboRule( Allow1( S_OPAQUE, D_DEPTH_FEATHERING ) ); | |
DynamicComboRule( Requires1( D_SHADOW_MODE, S_MODE_GBUFFER ) ); | |
DynamicComboRule( Requires1( D_QUAD_OVERDRAW, S_MODE_TOOLS_SHADING_COMPLEXITY ) ); | |
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_MBOIT_PASS1, D_MBOIT_PASS2 ) ); | |
DynamicComboRule( Allow1( S_MODE_TOOLS_SHADING_COMPLEXITY, D_MBOIT_PASS1, D_MBOIT_PASS2 ) ); | |
DynamicComboRule( Allow1( S_OPAQUE, D_MBOIT_PASS1, D_MBOIT_PASS2 ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, D_QUAD_OVERDRAW == 0 ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_VIS == 0 ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_SHADING_COMPLEXITY == 0 ) ); | |
DynamicComboRule( Requires1( D_PANORAMA_PARTICLE, S_MODE_TOOLS_WIREFRAME == 0 ) ); | |
DynamicComboRule( Allow1( S_MODE_GBUFFER, D_PANORAMA_PARTICLE ) ); | |
DynamicComboRule( Allow1( S_PARTICLE_SHADOWS, D_PANORAMA_PARTICLE ) ); | |
DynamicComboRule( Allow1( D_MBOIT_PASS1, D_PANORAMA_PARTICLE ) ); | |
DynamicComboRule( Allow1( D_MBOIT_PASS2, D_PANORAMA_PARTICLE ) ); | |
RenderState(BlendEnable, 1); | |
RenderState(BlendOp, F_LIGHTEN_MODE ? 4 : 0); | |
RenderState(DepthFunc, F_DISABLE_DEPTHTEST ? 7 : 3); | |
RenderState(DepthWriteEnable, 0); | |
RenderState(DstBlend, F_LIGHTEN_MODE || 5); | |
RenderState(SrcBlend, 1); | |
RenderState(StencilEnable, 1); | |
RenderState(StencilFunc, 5); | |
RenderState(StencilRef, 1); | |
ExternalDescriptorSet g_lightBinnerGpuSet < Attribute("g_lightBinnerGpuSet"); >; | |
int g_nToolsVisMode < Attribute("g_nToolsVisMode"); UiType(Slider); >; | |
ExternalDescriptorSet g_particleManagerDescSet < Attribute("g_particleManagerDescSet"); >; | |
RWTexture2D<float4> g_tQuadOverdrawMutexUAV < Attribute("QuadOverdrawMutexUAV"); >; | |
RWTexture2D<float4> g_tQuadOverdrawUAV < Attribute("QuadOverdrawUAV"); >; | |
float4 g_vShadingComplexity < UiType(VectorText); >; | |
#if (S_MODE_TOOLS_WIREFRAME == 1) | |
RenderState(ColorWriteEnable0, 7); | |
#endif | |
#if (S_REFRACT == 1) | |
RenderState(ColorWriteEnable0, 7); | |
#endif | |
#if (S_REVERSE_DEPTH == 1) | |
RenderState(ColorWriteEnable0, 7); | |
#endif | |
#if (S_OPAQUE == 1) | |
RenderState(ColorWriteEnable0, 7); | |
#endif | |
// --------- SPIRV -> HLSL begin --------- | |
static float _19285; | |
static const float3 _2032[15] = { 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, float3(0.0f, 1.0f, 0.0f), float3(1.0f, 0.0f, 0.0f), float3(1.0f, 0.0f, 1.0f), 0.0f.xxx, 0.0f.xxx, float3(0.0f, 1.0f, 0.0f), 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx, 0.0f.xxx }; | |
static const float2 _915[15] = { float2(1.0f, 0.0f), 0.0f.xx, float2(0.0f, 1.0f), 0.0f.xx, float2(1.0f, 0.0f), float2(1.0f, 0.0f), 0.0f.xx, float2(0.0f, 1.0f), 0.0f.xx, float2(1.0f, 0.0f), float2(1.0f, 0.0f), float2(1.0f, 0.0f), 0.0f.xx, 0.0f.xx, 0.0f.xx }; | |
cbuffer _1022_4459 : register(b1) | |
{ | |
float3 _4459_m0 : packoffset(c19); | |
float _4459_m1 : packoffset(c29.w); | |
}; | |
cbuffer _2673_5037 : register(b6) | |
{ | |
uint4 _5037_m0 : packoffset(c0); | |
float4 _5037_m1 : packoffset(c18); | |
float4 _5037_m2 : packoffset(c19); | |
float4 _5037_m3 : packoffset(c20); | |
float4 _5037_m4 : packoffset(c22); | |
float4 _5037_m5 : packoffset(c23); | |
column_major float4x4 _5037_m6 : packoffset(c24); | |
float4 _5037_m7 : packoffset(c28); | |
float4 _5037_m8 : packoffset(c29); | |
}; | |
cbuffer _2022_3805 : register(b4) | |
{ | |
float4 _3805_m0 : packoffset(c0); | |
float4 _3805_m1 : packoffset(c1); | |
float4 _3805_m2 : packoffset(c3); | |
float4 _3805_m3 : packoffset(c4); | |
float4 _3805_m4 : packoffset(c5); | |
float4 _3805_m5 : packoffset(c6); | |
float4 _3805_m6 : packoffset(c8); | |
float4 _3805_m7 : packoffset(c9); | |
uint2 _3805_m8 : packoffset(c19); | |
uint _3805_m9 : packoffset(c19.z); | |
}; | |
Texture2D<float4> _25225; | |
SamplerState __25225_sampler; | |
Texture2D<float4> _25227; | |
SamplerState __25227_sampler; | |
TextureCube<float4> _25229; | |
SamplerState __25229_sampler; | |
static float4 _5759; | |
static float4 _5936; | |
static float3 _5761; | |
static float4 _5763; | |
static float4 _5764; | |
static float4 _5482; | |
struct SPIRV_Cross_Input | |
{ | |
float4 _5759 : TEXCOORD0; | |
float4 _5936 : TEXCOORD1; | |
float3 _5761 : TEXCOORD2; | |
nointerpolation float4 _5763 : TEXCOORD4; | |
float4 _5764 : TEXCOORD5; | |
}; | |
struct SPIRV_Cross_Output | |
{ | |
float4 _5482 : SV_Target0; | |
}; | |
void MainPs_inner() | |
{ | |
bool _13055; | |
uint _17764 = _3805_m9 & 1u; | |
bool _20369 = _17764 != 0u; | |
float2 _14515 = _5759.xz * 1.0f; | |
float4 _14128 = float4(_14515.x, _5759.y, _14515.y, _5759.w); | |
float2 _17816 = _14128.xy; | |
int _24464 = int(_3805_m2.z); | |
float4 _12885; | |
do | |
{ | |
_13055 = float(_24464 & 1) == 1.0f; | |
if (_13055) | |
{ | |
_12885 = _25225.Sample(__25225_sampler, _17816); | |
break; | |
} | |
_12885 = _25227.Sample(__25227_sampler, _17816); | |
break; | |
} while(false); | |
float4 _19707; | |
if (_20369) | |
{ | |
float3 _7115 = _12885.xyz - float3(0.005859375f, 0.009765625f, 0.005859375f); | |
_19707 = float4(_7115.x, _7115.y, _7115.z, _12885.w); | |
} | |
else | |
{ | |
_19707 = _12885; | |
} | |
float4 _21709; | |
if ((_3805_m9 & 32768u) > 0u) | |
{ | |
float4 _12502; | |
if (_5763.x > (-1.0f)) | |
{ | |
float2 _10322 = _14128.zw; | |
float4 _12886; | |
do | |
{ | |
if (_13055) | |
{ | |
_12886 = _25225.Sample(__25225_sampler, _10322); | |
break; | |
} | |
_12886 = _25227.Sample(__25227_sampler, _10322); | |
break; | |
} while(false); | |
float4 _12904; | |
if (_20369) | |
{ | |
float3 _7116 = _12886.xyz - float3(0.005859375f, 0.009765625f, 0.005859375f); | |
_12904 = float4(_7116.x, _7116.y, _7116.z, _12886.w); | |
} | |
else | |
{ | |
_12904 = _12886; | |
} | |
int _21358; | |
do | |
{ | |
if ((_3805_m9 & 1024u) != 0u) | |
{ | |
_21358 = ((_3805_m9 & 65536u) == 1u) ? 2 : 1; | |
break; | |
} | |
else | |
{ | |
_21358 = 0; | |
break; | |
} | |
break; // unreachable workaround | |
} while(false); | |
bool4 _8974 = (_21358 == 0).xxxx; | |
float4 _7078; | |
if (_21358 == 1) | |
{ | |
_7078 = lerp(_19707, _12904, _5763.x.xxxx); | |
} | |
else | |
{ | |
_7078 = float4(_8974.x ? _19707.x : 0.0f.xxxx.x, _8974.y ? _19707.y : 0.0f.xxxx.y, _8974.z ? _19707.z : 0.0f.xxxx.z, _8974.w ? _19707.w : 0.0f.xxxx.w); | |
} | |
float4 _12501; | |
if (_21358 == 2) | |
{ | |
float _10302 = (1.0f - _5763.x) * sqrt(max(0.001000000047497451305389404296875f, dot(_19707.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)))); | |
float _11114 = sqrt(max(0.001000000047497451305389404296875f, dot(_12904.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)))); | |
_12501 = ((_19707 * _10302) + (_12904 * (_5763.x * _11114))) / mad(_5763.x, _11114, _10302).xxxx; | |
} | |
else | |
{ | |
_12501 = _7078; | |
} | |
_12502 = _12501; | |
} | |
else | |
{ | |
_12502 = _19707; | |
} | |
_21709 = _12502; | |
} | |
else | |
{ | |
_21709 = _19707; | |
} | |
int _25100 = int(_3805_m8.x) & 255; | |
uint3 _10073 = uint3(float3(float(uint((int(_3805_m8.y) >> 16) & 15)), float(_25100 & 15), float((_25100 >> 4) & 15))); | |
float4 _12887; | |
do | |
{ | |
uint _23830 = _10073.x; | |
if (_23830 == 0u) | |
{ | |
_12887 = _21709; | |
break; | |
} | |
else | |
{ | |
if (_23830 == 1u) | |
{ | |
float _19282 = frac(_3805_m6.z * _14515.y); | |
float _19069 = _19282 / mad(-0.39999997615814208984375f, 1.0f - _19282, 1.0f); | |
float4 _22205 = _14128 - 0.5f.xxxx; | |
float2 _20122 = ((_22205 * lerp(4.0f, 1.0f, _19069)) + 0.5f.xxxx).xy; | |
float4 _22822; | |
do | |
{ | |
if (_13055) | |
{ | |
_22822 = _25225.Sample(__25225_sampler, _20122); | |
break; | |
} | |
_22822 = _25227.Sample(__25227_sampler, _20122); | |
break; | |
} while(false); | |
float2 _15914 = ((_22205 * lerp(1.0f, 0.0625f, _19069)) + 0.5f.xxxx).xy; | |
float4 _10307; | |
do | |
{ | |
if (_13055) | |
{ | |
_10307 = _25225.Sample(__25225_sampler, _15914); | |
break; | |
} | |
_10307 = _25227.Sample(__25227_sampler, _15914); | |
break; | |
} while(false); | |
float4 _10911 = lerp(_10307, _22822, (_19069 * _19069).xxxx); | |
_10911.w = lerp(_21709.w, _10911.w, float(_2032[int(_10073.y)].y != 1.0f)); | |
_12887 = _10911; | |
break; | |
} | |
else | |
{ | |
if (_23830 == 3u) | |
{ | |
float2 _25152 = _17816 - (((_21709.xy - 0.5f.xx) * 2.0f) * (((_3805_m6.w * _5759.w) * 0.125f) * _21709.w)); | |
float4 _12504; | |
do | |
{ | |
if (_13055) | |
{ | |
_12504 = _25225.Sample(__25225_sampler, _25152); | |
break; | |
} | |
_12504 = _25227.Sample(__25227_sampler, _25152); | |
break; | |
} while(false); | |
_12887 = _12504; | |
break; | |
} | |
else | |
{ | |
if (_23830 == 4u) | |
{ | |
float _19281 = frac(_3805_m6.z * _14515.y); | |
float _19068 = _19281 / mad(-0.39999997615814208984375f, 1.0f - _19281, 1.0f); | |
float4 _22204 = _14128 - 0.5f.xxxx; | |
float2 _20121 = ((_22204 * lerp(4.0f, 1.0f, _19068)) + 0.5f.xxxx).xy; | |
float4 _22821; | |
do | |
{ | |
if (_13055) | |
{ | |
_22821 = _25225.Sample(__25225_sampler, _20121); | |
break; | |
} | |
_22821 = _25227.Sample(__25227_sampler, _20121); | |
break; | |
} while(false); | |
float2 _15913 = ((_22204 * lerp(1.0f, 0.0625f, _19068)) + 0.5f.xxxx).xy; | |
float4 _10306; | |
do | |
{ | |
if (_13055) | |
{ | |
_10306 = _25225.Sample(__25225_sampler, _15913); | |
break; | |
} | |
_10306 = _25227.Sample(__25227_sampler, _15913); | |
break; | |
} while(false); | |
float4 _10910 = lerp(_10306, _22821, (_19068 * _19068).xxxx); | |
float2 _25151 = _17816 - (((_10910.xy - 0.5f.xx) * 2.0f) * (((_3805_m6.w * _5759.w) * 0.125f) * lerp(_21709.w, _10910.w, float(_2032[int(_10073.y)].y != 1.0f)))); | |
float4 _12503; | |
do | |
{ | |
if (_13055) | |
{ | |
_12503 = _25225.Sample(__25225_sampler, _25151); | |
break; | |
} | |
_12503 = _25227.Sample(__25227_sampler, _25151); | |
break; | |
} while(false); | |
_12887 = _12503; | |
break; | |
} | |
else | |
{ | |
if (_23830 == 2u) | |
{ | |
int _16139 = int(_10073.y); | |
float4 _25074 = lerp(lerp(float4(_21709.xyz * _21709.www, 1.0f), _21709, _915[_16139].x.xxxx), _21709.wwww, _915[_16139].y.xxxx); | |
float3 _25122 = _25074.xyz; | |
float3 _17379 = _25122 * 12.9200000762939453125f; | |
float3 _7485 = (pow(_25122, 0.4166666567325592041015625f.xxx) * 1.05499994754791259765625f) - 0.054999999701976776123046875f.xxx; | |
float2 _14593 = float2((dot(float3((_25074.x <= 0.003130800090730190277099609375f) ? _17379.x : _7485.x, (_25074.y <= 0.003130800090730190277099609375f) ? _17379.y : _7485.y, (_25074.z <= 0.003130800090730190277099609375f) ? _17379.z : _7485.z), float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)) + _14515.x) * _14515.y, _5759.y); | |
float4 _20940; | |
do | |
{ | |
if (_13055) | |
{ | |
_20940 = _25225.Sample(__25225_sampler, _14593); | |
break; | |
} | |
_20940 = _25227.Sample(__25227_sampler, _14593); | |
break; | |
} while(false); | |
float4 _19793 = _20940; | |
_19793.w = dot(_20940.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); | |
float4 _21518 = _20940; | |
_21518.w = _21709.w; | |
_12887 = lerp(_21518, _19793, _915[_16139].y.xxxx); | |
break; | |
} | |
} | |
} | |
} | |
} | |
_12887 = _21709; | |
break; | |
} while(false); | |
float _22475; | |
if (((_24464 >> 12) & 1) != 0) | |
{ | |
_22475 = _3805_m6.y * _5759.w; | |
} | |
else | |
{ | |
_22475 = _3805_m6.y; | |
} | |
float4 _22476; | |
switch (_10073.y) | |
{ | |
case 0u: | |
{ | |
float4 _19447 = _12887; | |
_19447.w = 1.0f; | |
_22476 = _19447; | |
break; | |
} | |
case 1u: | |
{ | |
_22476 = _12887; | |
break; | |
} | |
case 2u: | |
{ | |
_22476 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w); | |
break; | |
} | |
case 3u: | |
{ | |
float4 _16296 = _12887; | |
_16296.w = _12887.w; | |
_22476 = _16296; | |
break; | |
} | |
case 4u: | |
{ | |
float3 _8079 = lerp(1.0f.xxx, _12887.xyz, _12887.w.xxx); | |
float4 _20909 = float4(_8079.x, _8079.y, _8079.z, _12887.w); | |
_20909.w = 1.0f; | |
_22476 = _20909; | |
break; | |
} | |
case 5u: | |
{ | |
float3 _13687 = lerp(1.0f.xxx, _12887.xyz, dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)).xxx); | |
float4 _20908 = float4(_13687.x, _13687.y, _13687.z, _12887.w); | |
_20908.w = 1.0f; | |
_22476 = _20908; | |
break; | |
} | |
case 6u: | |
{ | |
float4 _12956 = _12887; | |
_12956.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); | |
_22476 = _12956; | |
break; | |
} | |
case 7u: | |
{ | |
float4 _14324 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w); | |
_14324.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); | |
_22476 = _14324; | |
break; | |
} | |
case 8u: | |
{ | |
float4 _14323 = float4(1.0f.xxx.x, 1.0f.xxx.y, 1.0f.xxx.z, _12887.w); | |
_14323.w = dot(_12887.xyz, float3(0.2989999949932098388671875f, 0.58700001239776611328125f, 0.114000000059604644775390625f)); | |
_22476 = _14323; | |
break; | |
} | |
case 9u: | |
{ | |
float4 _15725 = float4(_12887.x, _12887.x, _12887.x, _12887.w); | |
_15725.w = 1.0f; | |
_22476 = _15725; | |
break; | |
} | |
case 10u: | |
{ | |
float4 _15724 = float4(_12887.y, _12887.y, _12887.y, _12887.w); | |
_15724.w = 1.0f; | |
_22476 = _15724; | |
break; | |
} | |
case 11u: | |
{ | |
float4 _15723 = float4(_12887.z, _12887.z, _12887.z, _12887.w); | |
_15723.w = 1.0f; | |
_22476 = _15723; | |
break; | |
} | |
case 12u: | |
{ | |
_22476 = _12887.xxxx; | |
break; | |
} | |
case 13u: | |
{ | |
_22476 = _12887.yyyy; | |
break; | |
} | |
case 14u: | |
{ | |
_22476 = _12887.zzzz; | |
break; | |
} | |
default: | |
{ | |
_22476 = _12887; | |
break; | |
} | |
} | |
float4 _18229; | |
switch (_10073.z) | |
{ | |
case 0u: | |
{ | |
_18229 = _22476; | |
break; | |
} | |
case 3u: | |
{ | |
_18229 = 1.0f.xxxx + _22476; | |
break; | |
} | |
case 4u: | |
{ | |
_18229 = 1.0f.xxxx - _22476; | |
break; | |
} | |
case 1u: | |
{ | |
_18229 = _22476 * 2.0f.xxxx; | |
break; | |
} | |
case 2u: | |
{ | |
_18229 = _22476; | |
break; | |
} | |
case 5u: | |
{ | |
_18229 = (1.0f.xxxx + _22476) * 0.5f; | |
break; | |
} | |
case 6u: | |
{ | |
float3 _21121 = 1.0f.xxx * dot(_22476.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)); | |
_18229 = float4(_21121.x, _21121.y, _21121.z, _22476.w); | |
break; | |
} | |
default: | |
{ | |
_18229 = _22476; | |
break; | |
} | |
} | |
float4 _24406 = clamp(lerp(1.0f.xxxx, _18229, _22475.xxxx), 0.0f.xxxx, 1.0f.xxxx); | |
float3 _21449 = _24406.xyz * _5936.xyz; | |
float4 _12488 = float4(_21449.x, _21449.y, _21449.z, _24406.w); | |
float _13682 = _24406.w; | |
bool _10183 = (_3805_m9 & 262144u) != 0u; | |
float4 _20941; | |
if (!_10183) | |
{ | |
float4 _21710; | |
[branch] | |
if (_3805_m0.w < _3805_m0.z) | |
{ | |
float4 _11897 = _12488; | |
_11897.w = smoothstep(_3805_m0.w, _3805_m0.z, _13682); | |
_21710 = _11897; | |
} | |
else | |
{ | |
_21710 = _12488; | |
} | |
float4 _12505; | |
[branch] | |
if ((_13682 >= _3805_m5.x) && (_13682 <= _3805_m5.w)) | |
{ | |
float _21711; | |
if (_13682 <= _3805_m5.z) | |
{ | |
_21711 = smoothstep(_3805_m5.x, _3805_m5.z, _13682); | |
} | |
else | |
{ | |
_21711 = smoothstep(_3805_m5.w, _3805_m5.y, _13682); | |
} | |
_12505 = lerp(_21710, _3805_m4, _21711.xxxx); | |
} | |
else | |
{ | |
_12505 = _21710; | |
} | |
_20941 = _12505; | |
} | |
else | |
{ | |
_20941 = _12488; | |
} | |
float3 _23612 = lerp(_20941.xyz, dot(_20941.xyz, float3(0.2125000059604644775390625f, 0.7153999805450439453125f, 0.07209999859333038330078125f)).xxx, _3805_m7.x.xxx); | |
float4 _10825 = _3805_m3 * float4(_23612.x, _23612.y, _23612.z, _20941.w); | |
float _9244 = _10825.w + _3805_m6.x; | |
float4 _14171 = _10825; | |
_14171.w = _9244; | |
float4 _12888; | |
if ((_3805_m9 & 1024u) != 0u) | |
{ | |
float4 _18986 = _14171; | |
_18986.w = clamp(_9244, 0.0f, 1.0f); | |
_12888 = _18986; | |
} | |
else | |
{ | |
_12888 = _14171; | |
} | |
float4 _19284; | |
if (_10183) | |
{ | |
float _16415 = max(_3805_m5.x, _12888.w); | |
float _17123 = _12888.w - _3805_m0.w; | |
float4 _13727 = _12888; | |
_13727.w = min(clamp(((_5763.z + _5763.w) - _12888.w) / ((_12888.w + _3805_m0.z) - _12888.w), 0.0f, 1.0f) * _16415, mad(clamp((_5763.z - _17123) / (_12888.w - _17123), 0.0f, 1.0f), -_16415, _16415)) * max(_3805_m5.y, _5936.w); | |
_19284 = _13727; | |
} | |
else | |
{ | |
float4 _18602 = _12888; | |
_18602.w = _12888.w * _5936.w; | |
_19284 = _18602; | |
} | |
float3 _24020 = _19284.xyz * ((((_5764.xyz * _3805_m0.y) * 1.0f) + _3805_m0.x.xxx) + _5764.w.xxx); | |
float _6303 = lerp(_19284.w, clamp(_19284.w * 128.0f, 0.0f, 1.0f), float(_3805_m9 & 524288u)); | |
float4 _11008; | |
float _13513; | |
if (_20369) | |
{ | |
float3 _8506 = _4459_m1.xxx; | |
float3 _8576 = lerp(_8506, lerp(_8506, _19284.xyz, _5936.xyz), _6303.xxx); | |
_11008 = float4(_8576.x, _8576.y, _8576.z, _19284.w); | |
_13513 = _6303; | |
} | |
else | |
{ | |
float4 _19688; | |
if ((_3805_m9 & 16u) != 0u) | |
{ | |
float3 _19128 = _24020.xyz * _3805_m1.z; | |
_19688 = float4(_19128.x, _19128.y, _19128.z, _19284.w); | |
} | |
else | |
{ | |
_19688 = float4(_24020.x, _24020.y, _24020.z, _19284.w); | |
} | |
float4 _10904; | |
float _13264; | |
if ((_3805_m9 & 128u) != 0u) | |
{ | |
float4 _13213; | |
float _15671; | |
if (_17764 == 0u) | |
{ | |
float3 _8140 = _5761 - _4459_m0; | |
float4 _21712; | |
[branch] | |
if (_5037_m0.y != 0u) | |
{ | |
float2 _21390 = clamp(mad(_5037_m1.zw, float2(length(_8140.xy), _5761.z), _5037_m1.xy), 0.0f.xx, 1.0f.xx); | |
float3 _9639 = lerp(float4(_5037_m3.xyz, _19285).xyz * _3805_m1.w, _19688.xyz, mad(-(pow(_21390.x, _5037_m2.x) * pow(_21390.y, _5037_m2.y)), _5037_m3.w, 1.0f).xxx); | |
_21712 = float4(_9639.x, _9639.y, _9639.z, _19688.w); | |
} | |
else | |
{ | |
_21712 = _19688; | |
} | |
float4 _13212; | |
float _15670; | |
[branch] | |
if (_5037_m0.z != 0u) | |
{ | |
float _16990 = clamp(pow(max(0.0f, mad(length(_8140.xy), _5037_m4.y, _5037_m4.x)), _5037_m4.w), 0.0f, 1.0f) * clamp(pow(max(0.0f, mad(_5761.z, _5037_m5.y, _5037_m5.x)), _5037_m5.z), 0.0f, 1.0f); | |
float _12490 = mad(-clamp(_16990, 0.0f, 1.0f), _5037_m7.w, 1.0f); | |
float3 _7435 = lerp(float4((_25229.SampleLevel(__25229_sampler, normalize(mul(float4(_8140, 0.0f), _5037_m6).xyz), _5037_m5.w * clamp(mad(-_16990, _5037_m4.z, 1.0f), 0.0f, 1.0f)) * _5037_m8.x).xyz, _19285).xyz * _3805_m1.w, _21712.xyz, _12490.xxx); | |
_13212 = float4(_7435.x, _7435.y, _7435.z, _21712.w); | |
_15670 = _6303 * _12490; | |
} | |
else | |
{ | |
_13212 = _21712; | |
_15670 = _6303; | |
} | |
_13213 = _13212; | |
_15671 = _15670; | |
} | |
else | |
{ | |
_13213 = _19688; | |
_15671 = _6303; | |
} | |
_10904 = _13213; | |
_13264 = _15671; | |
} | |
else | |
{ | |
_10904 = _19688; | |
_13264 = _6303; | |
} | |
float3 _7054 = _10904.xyz * lerp(_13264, 1.0f, clamp(-_3805_m1.w, 0.0f, 1.0f)); | |
_11008 = float4(_7054.x, _7054.y, _7054.z, _10904.w); | |
_13513 = _13264; | |
} | |
float4 _22412 = _11008; | |
_22412.w = _13513 * abs(_3805_m1.w); | |
float4 _6805; | |
if (_20369) | |
{ | |
float3 _19798 = clamp(_22412.xyz, 0.0f.xxx, 1.0f.xxx); | |
_6805 = float4(_19798.x, _19798.y, _19798.z, _22412.w); | |
} | |
else | |
{ | |
_6805 = _22412; | |
} | |
_5482 = _6805; | |
} | |
SPIRV_Cross_Output MainPs(SPIRV_Cross_Input stage_input) | |
{ | |
_5759 = stage_input._5759; | |
_5936 = stage_input._5936; | |
_5761 = stage_input._5761; | |
_5763 = stage_input._5763; | |
_5764 = stage_input._5764; | |
MainPs_inner(); | |
SPIRV_Cross_Output stage_output; | |
stage_output._5482 = _5482; | |
return stage_output; | |
} | |
// --------- SPIRV -> HLSL end --------- | |
BoolAttribute(translucent, true); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment