123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef SPRITE_SHADOWS_INCLUDED
- #define SPRITE_SHADOWS_INCLUDED
- #include "ShaderShared.cginc"
- ////////////////////////////////////////
- // Vertex structs
- //
- struct vertexInput
- {
- float4 vertex : POSITION;
- float4 texcoord : TEXCOORD0;
- };
- struct vertexOutput
- {
- V2F_SHADOW_CASTER;
- float4 texcoordAndAlpha : TEXCOORD1;
- };
- ////////////////////////////////////////
- // Vertex program
- //
- vertexOutput vert(vertexInput v, float4 vertexColor : COLOR)
- {
- vertexOutput o;
- TRANSFER_SHADOW_CASTER(o)
- o.texcoordAndAlpha.xy = calculateTextureCoord(v.texcoord);
- o.texcoordAndAlpha.z = 0;
- o.texcoordAndAlpha.a = vertexColor.a;
- return o;
- }
- ////////////////////////////////////////
- // Fragment program
- //
- uniform fixed _ShadowAlphaCutoff;
- fixed4 frag(vertexOutput IN) : SV_Target
- {
- fixed4 texureColor = calculateTexturePixel(IN.texcoordAndAlpha.xy);
- clip(texureColor.a * IN.texcoordAndAlpha.a - _ShadowAlphaCutoff);
-
- SHADOW_CASTER_FRAGMENT(IN)
- }
- #endif // SPRITE_SHADOWS_INCLUDED
|