VR4Medical/ICI/Library/PackageCache/com.unity.render-pipelines.universal@2b88762731f8/Shaders/Utils/ClusterDeferred.shader
2025-07-29 13:45:50 +03:00

188 lines
7.0 KiB
Plaintext

Shader "Hidden/Universal Render Pipeline/ClusterDeferred"
{
Properties {
_LitStencilRef ("LitStencilRef", Int) = 0
_LitStencilReadMask ("LitStencilReadMask", Int) = 0
_LitStencilWriteMask ("LitStencilWriteMask", Int) = 0
_SimpleLitStencilRef ("SimpleLitStencilRef", Int) = 0
_SimpleLitStencilReadMask ("SimpleLitStencilReadMask", Int) = 0
_SimpleLitStencilWriteMask ("SimpleLitStencilWriteMask", Int) = 0
}
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline"}
// 0 - Clustered Lights - Lit
Pass
{
Name "Deferred Clustered Lights (Lit)"
// -------------------------------------
// Render State Commands
ZTest NotEqual
ZWrite Off
Cull Off
Blend One SrcAlpha, Zero One
// -------------------------------------
// Stencil Settings
Stencil {
Ref [_LitStencilRef]
ReadMask [_LitStencilReadMask]
WriteMask [_LitStencilWriteMask]
Comp Equal
Pass Keep
Fail Keep
ZFail Keep
}
HLSLPROGRAM
#pragma target 4.5
// Deferred Rendering Path does not support the OpenGL-based graphics API:
// Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
#pragma exclude_renderers gles3 glcore
// -------------------------------------
// Shader Stages
#pragma vertex VertexFullScreen
#pragma fragment DeferredShadingClustered
// -------------------------------------
// Defines
#define _CLUSTER_LIGHT_LOOP
#define _LIT
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile_fragment _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ LIGHTMAP_SHADOW_MIXING
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#pragma multi_compile_fragment _ _DEFERRED_MIXED_LIGHTING
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ _LIGHT_LAYERS
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
// -------------------------------------
// Includes
#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/ClusterDeferred.hlsl"
ENDHLSL
}
// 1 - Clustered Lights - SimpleLit
Pass
{
Name "Deferred Clustered Lights (SimpleLit)"
// -------------------------------------
// Render State Commands
ZTest NotEqual
ZWrite Off
Cull Off
Blend One SrcAlpha, Zero One
// -------------------------------------
// Stencil Settings
Stencil {
Ref [_SimpleLitStencilRef]
ReadMask [_SimpleLitStencilReadMask]
WriteMask [_SimpleLitStencilWriteMask]
Comp Equal
Pass Keep
Fail Keep
ZFail Keep
}
HLSLPROGRAM
#pragma target 4.5
// Deferred Rendering Path does not support the OpenGL-based graphics API:
// Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
#pragma exclude_renderers gles3 glcore
// -------------------------------------
// Shader Stages
#pragma vertex VertexFullScreen
#pragma fragment DeferredShadingClustered
// -------------------------------------
// Defines
#define _CLUSTER_LIGHT_LOOP
#define _SIMPLELIT
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile_fragment _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ LIGHTMAP_SHADOW_MIXING
#pragma multi_compile_fragment _ SHADOWS_SHADOWMASK
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
#pragma multi_compile_fragment _ _DEFERRED_MIXED_LIGHTING
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ _LIGHT_LAYERS
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
// -------------------------------------
// Includes
#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/ClusterDeferred.hlsl"
ENDHLSL
}
// 2 - Legacy fog (reused from StencilDeferred)
Pass
{
Name "Fog"
// -------------------------------------
// Render State Commands
ZTest NotEqual
ZWrite Off
Cull Off
Blend OneMinusSrcAlpha SrcAlpha, Zero One
BlendOp Add, Add
HLSLPROGRAM
#pragma target 4.5
// Deferred Rendering Path does not support the OpenGL-based graphics API:
// Desktop OpenGL, OpenGL ES 3.0, WebGL 2.0.
#pragma exclude_renderers gles3 glcore
// -------------------------------------
// Shader Stages
#pragma vertex Vertex
#pragma fragment Frag
// -------------------------------------
// Defines
#define _FOG
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile_fragment _ _RENDER_PASS_ENABLED
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl"
// -------------------------------------
// Includes
#include "Packages/com.unity.render-pipelines.universal/Shaders/Utils/FogDeferred.hlsl"
ENDHLSL
}
}
FallBack "Hidden/Universal Render Pipeline/FallbackError"
}