Shader "Hidden/RenderDepth" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags{ "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline"} // No culling or depth Cull Off ZWrite Off ZTest Always Pass { HLSLPROGRAM #pragma vertex Vert #pragma fragment frag //#include "UnityCG.cginc" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; // v2f vert (appdata v) // { // v2f o; // o.vertex = UnityObjectToClipPos(v.vertex); // o.uv = v.uv; // return o; // } sampler2D _MainTex; TEXTURE2D_X(_CameraOpaqueTexture); SAMPLER(sampler_CameraOpaqueTexture); RWStructuredBuffer distBuffer; int res; float4 frag (Varyings i) : SV_Target { float2 UV = i.positionCS.xy / _ScaledScreenParams.xy; #if UNITY_REVERSED_Z real depth = SampleSceneDepth(UV); #else // Adjust z to match NDC for OpenGL real depth = lerp(UNITY_NEAR_CLIP_VALUE, 1, SampleSceneDepth(UV)); #endif depth = Linear01Depth(depth, _ZBufferParams); return float4(depth, depth, depth, 1); } ENDHLSL } } }