You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

63 lines
1.3 KiB

// Shadow pass
Pass
{
Name ${VFXPassShadow}
Tags { "LightMode"=${VFXPassShadow} }
ZClip [_ZClip]
ZWrite On
Blend Off
HLSLPROGRAM
#if !USE_ALPHA_TEST && IS_TRANSPARENT_PARTICLE
#define USE_ALPHA_TEST 1
#endif
#pragma target 4.5
struct ps_input
{
float4 pos : SV_POSITION;
float3 offsets : TEXCOORD0;
#if VFX_USE_ALPHA_CURRENT || USE_ALPHA_TEST
// x: alpha
// y: alpha threshold
nointerpolation float2 builtInInterpolants : TEXCOORD1;
#endif
nointerpolation uint faceID : TEXCOORD2;
UNITY_VERTEX_OUTPUT_STEREO
VFX_VERTEX_OUTPUT_INSTANCE_INDEX
};
#define VFX_VARYING_PS_INPUTS ps_input
#define VFX_VARYING_POSCS pos
#if USE_ALPHA_TEST
#define VFX_VARYING_ALPHA builtInInterpolants.x
#define VFX_VARYING_ALPHATHRESHOLD builtInInterpolants.y
#endif
#define VFX_VARYING_OFFSETS offsets
#define VFX_VARYING_FACEID faceID
${VFXBegin:VFXVertexAdditionalProcess}${VFXEnd}
${VFXPassShadowDefine}
${VFXInclude("Shaders/ParticleHexahedron/Pass.template")}
#pragma fragment frag
float frag(ps_input i) : SV_Target0
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
VFXTransformPSInputs(i);
float alpha = VFXGetFragmentColor(i).a;
#if HDRP_USE_BASE_COLOR_MAP_ALPHA
alpha *= VFXGetTextureColorWithProceduralUV(VFX_SAMPLER(baseColorMap),i,VFXCubeGetUV(i)).a;
#endif
VFXClipFragmentColor(alpha,i);
return 0;
}
ENDHLSL
}