12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef UNIVERSAL_DEPTH_ONLY_PASS_INCLUDED
- #define UNIVERSAL_DEPTH_ONLY_PASS_INCLUDED
-
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #if defined(LOD_FADE_CROSSFADE)
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
- #endif
-
- struct Attributes
- {
- float4 position : POSITION;
- float2 texcoord : TEXCOORD0;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
-
- struct Varyings
- {
- #if defined(_ALPHATEST_ON)
- float2 uv : TEXCOORD0;
- #endif
- float4 positionCS : SV_POSITION;
- UNITY_VERTEX_INPUT_INSTANCE_ID
- UNITY_VERTEX_OUTPUT_STEREO
- };
-
- Varyings DepthOnlyVertex(Attributes input)
- {
- Varyings output = (Varyings)0;
- UNITY_SETUP_INSTANCE_ID(input);
- UNITY_TRANSFER_INSTANCE_ID(input, output);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
-
- #if defined(_ALPHATEST_ON)
- output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap);
- #endif
- output.positionCS = TransformObjectToHClip(input.position.xyz);
- return output;
- }
-
- half DepthOnlyFragment(Varyings input) : SV_TARGET
- {
- UNITY_SETUP_INSTANCE_ID(input);
- UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
-
- #if defined(_ALPHATEST_ON)
- Alpha(SampleAlbedoAlpha(input.uv, TEXTURE2D_ARGS(_BaseMap, sampler_BaseMap)).a, _BaseColor, _Cutoff);
- #endif
-
- #if defined(LOD_FADE_CROSSFADE)
- LODFadeCrossFade(input.positionCS);
- #endif
-
- return input.positionCS.z;
- }
- #endif
|