Files
Test/Library/PackageCache/com.unity.render-pipelines.universal@ffe395a3a1d1/Shaders/Utils/ComputeScreenSpaceReflection.shader
T
2026-11-01 23:39:55 +02:00

103 lines
3.7 KiB
Plaintext

Shader "Hidden/Universal Render Pipeline/ComputeScreenSpaceReflection"
{
HLSLINCLUDE
#pragma editor_sync_compilation
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl"
ENDHLSL
SubShader
{
Tags
{
"RenderType" = "Opaque"
"RenderPipeline" = "UniversalPipeline"
}
Cull Off
ZWrite Off
ZTest Always
// ------------------------------------------------------------------
// Screen Space Reflection
// ------------------------------------------------------------------
// Main SSR pass
Pass
{
Name "SSR_Main"
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment ComputeSSR
#pragma multi_compile_local_fragment _ _HIZ_TRACE
#pragma multi_compile_local_fragment _ _REFINE_DEPTH
#pragma multi_compile_local_fragment _ _USE_MOTION_VECTORS
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ComputeScreenSpaceReflection.hlsl"
ENDHLSL
}
// Pass to blit after opaque with alpha blending
Pass
{
Name "SSR_AfterOpaque"
ZTest Off
Blend SrcAlpha OneMinusSrcAlpha
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment CompositeSSRAfterOpaque
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ComputeScreenSpaceReflection.hlsl"
ENDHLSL
}
// ------------------------------------------------------------------
// Bilinear Upscale
// ------------------------------------------------------------------
Pass
{
Name "SSR_BilinearUpscale"
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment BilinearUpscale
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ComputeScreenSpaceReflection.hlsl"
ENDHLSL
}
// ------------------------------------------------------------------
// Bilateral Upscale
// ------------------------------------------------------------------
Pass
{
Name "SSR_BilateralUpscale"
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment BilateralUpscale
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ComputeScreenSpaceReflection.hlsl"
ENDHLSL
}
// ------------------------------------------------------------------
// Temporal Filtering
// ------------------------------------------------------------------
Pass
{
Name "SSR_TemporalFiltering"
HLSLPROGRAM
#pragma vertex Vert
#pragma fragment SSRTemporalFiltering
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ComputeScreenSpaceReflection.hlsl"
ENDHLSL
}
}
}