1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef SPRITES_DEPTH_ONLY_PASS_INCLUDED
- #define SPRITES_DEPTH_ONLY_PASS_INCLUDED
- #include "UnityCG.cginc"
- sampler2D _MainTex;
- float _Cutoff;
- float _ZWriteOffset;
- struct VertexInput {
- float4 positionOS : POSITION;
- float2 texcoord : TEXCOORD0;
- float4 vertexColor : COLOR;
- };
- struct VertexOutput {
- float4 positionCS : SV_POSITION;
- float4 texcoordAndAlpha: TEXCOORD0;
- };
- VertexOutput DepthOnlyVertex (VertexInput v) {
- VertexOutput o;
- o.positionCS = UnityObjectToClipPos(v.positionOS - float4(0, 0, _ZWriteOffset, 0));
- o.texcoordAndAlpha.xy = v.texcoord;
- o.texcoordAndAlpha.z = 0;
- o.texcoordAndAlpha.a = v.vertexColor.a;
- return o;
- }
- float4 DepthOnlyFragment (VertexOutput input) : SV_Target{
- float4 texColor = tex2D(_MainTex, input.texcoordAndAlpha.rg);
- #if defined(_STRAIGHT_ALPHA_INPUT)
- texColor.rgb *= texColor.a;
- #endif
- clip(texColor.a * input.texcoordAndAlpha.a - _Cutoff);
- return 0;
- }
- #endif
|