123456789101112131415161718192021222324252627282930313233343536373839 |
- #ifndef COMMON_SHADOW_CASTER_PASS_URP_INCLUDED
- #define COMMON_SHADOW_CASTER_PASS_URP_INCLUDED
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
- float3 _LightDirection;
- struct AttributesSpine
- {
- float4 positionOS : POSITION;
- float3 normalOS : NORMAL;
- float4 vertexColor : COLOR;
- float2 texcoord : TEXCOORD0;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VaryingsSpine
- {
- float4 positionCS : SV_POSITION;
- float4 texcoordAndAlpha: TEXCOORD0;
- };
- float4 GetShadowPositionHClip(AttributesSpine input)
- {
- float3 positionWS = TransformObjectToWorld(input.positionOS.xyz);
- float3 normalWS = TransformObjectToWorldNormal(input.normalOS);
- float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, _LightDirection));
- #if UNITY_REVERSED_Z
- positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE);
- #else
- positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE);
- #endif
- return positionCS;
- }
- #endif
|