Shader "Universal Render Pipeline/GBuffer_Visualization_Shader_Sample" { Properties { // BlendMode [HideInInspector]_Surface("__surface", Float) = 0.0 [HideInInspector]_Blend("__mode", Float) = 0.0 [HideInInspector]_Cull("__cull", Float) = 2.0 [HideInInspector][ToggleUI] _AlphaClip("__clip", Float) = 0.0 [HideInInspector] _BlendOp("__blendop", Float) = 0.0 [HideInInspector] _SrcBlend("__src", Float) = 1.0 [HideInInspector] _DstBlend("__dst", Float) = 0.0 [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0 [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0 [HideInInspector] _ZWrite("__zw", Float) = 1.0 } SubShader { Tags { "RenderType" = "Opaque" "IgnoreProjector" = "True" "UniversalMaterialType" = "Unlit" "RenderPipeline" = "UniversalPipeline" } LOD 100 // ------------------------------------- // Render State Commands Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] ZWrite [_ZWrite] Cull [_Cull] Pass { Name "Deferred_GBuffer_Visualization" HLSLPROGRAM #pragma target 2.0 // ------------------------------------- // Shader Stages #pragma vertex GBufferVisPassVertex #pragma fragment GBufferVisPassFragment #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GlobalSamplers.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" // Declare the GBuffer to sample as an input TEXTURE2D_X(_GBuffer2); struct Attributes { uint vertexID : SV_VertexID; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct Varyings { float4 positionCS : SV_POSITION; float2 texcoord : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID UNITY_VERTEX_OUTPUT_STEREO }; Varyings GBufferVisPassVertex(Attributes input) { Varyings output; UNITY_SETUP_INSTANCE_ID(input); UNITY_TRANSFER_INSTANCE_ID(input, output); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); float4 pos = GetFullScreenTriangleVertexPosition(input.vertexID); float2 uv = GetFullScreenTriangleTexCoord(input.vertexID); output.positionCS = pos; output.texcoord = uv; return output; } void GBufferVisPassFragment(Varyings input, out half4 outColor : SV_Target0) { UNITY_SETUP_INSTANCE_ID(input); UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); float2 uv = input.texcoord; #ifndef UNITY_UV_STARTS_AT_TOP uv.y = 1.0 - uv.y; #endif // Change the sampled GBuffer here outColor = SAMPLE_TEXTURE2D_X_LOD(_GBuffer2, sampler_PointClamp, uv, 0); } ENDHLSL } } FallBack "Hidden/Universal Render Pipeline/FallbackError" }