188 lines
7.0 KiB
Plaintext
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"
|
|
}
|