246 lines
7.3 KiB
Plaintext
246 lines
7.3 KiB
Plaintext
Shader "Hidden/Kronnect/RadiantGI_URP" {
|
|
|
|
Properties {
|
|
[NoScaleoffset] _NoiseTex("Noise Tex", any) = "" {}
|
|
_StencilValue("Stencil Value", Int) = 0
|
|
_StencilCompareFunction("Stencil Compare Function", Int) = 8
|
|
}
|
|
|
|
Subshader {
|
|
|
|
ZWrite Off ZTest Always Cull Off
|
|
Tags { "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" }
|
|
|
|
HLSLINCLUDE
|
|
#pragma target 3.0
|
|
#pragma prefer_hlslcc gles
|
|
#pragma exclude_renderers d3d11_9x
|
|
//#pragma enable_d3d11_debug_symbols
|
|
|
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/Common.hlsl"
|
|
#if UNITY_VERSION >= 60010000
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/GBufferCommon.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
|
|
#define UnpackMaterialFlags UnpackGBufferMaterialFlags
|
|
#else
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/UnityGBuffer.hlsl"
|
|
#endif
|
|
|
|
#undef SAMPLE_TEXTURE2D_X
|
|
#define SAMPLE_TEXTURE2D_X(tex,sampler,uv) SAMPLE_TEXTURE2D_X_LOD(tex,sampler,uv,0)
|
|
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
|
|
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareNormalsTexture.hlsl"
|
|
#include "RadiantGI_Common.hlsl"
|
|
|
|
ENDHLSL
|
|
|
|
Pass { // 0
|
|
Name "Copy Exact"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCopyExact
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 1
|
|
Name "Raycast"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRaycast
|
|
#pragma fragment FragRaycast
|
|
#pragma multi_compile_local _ _USES_MULTIPLE_RAYS
|
|
#if UNITY_VERSION >= 60010000
|
|
#pragma multi_compile_local _ _FALLBACK_1_PROBE _FALLBACK_2_PROBES _FALLBACK_PROBE_ATLAS
|
|
#pragma multi_compile_fragment _ _CLUSTER_LIGHT_LOOP
|
|
#else
|
|
#pragma multi_compile_local _ _FALLBACK_1_PROBE _FALLBACK_2_PROBES
|
|
#endif
|
|
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
|
|
#pragma multi_compile_local _ _REUSE_RAYS
|
|
#pragma multi_compile_local _ _ONE_EXTRA_BOUNCE
|
|
#pragma multi_compile_local _ _FALLBACK_RSM
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#if UNITY_VERSION >= 202310
|
|
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
|
|
#endif
|
|
#include "RadiantGI_Raycast.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 2
|
|
Name "Light Buffer Accumulation"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragRGI
|
|
#include "RadiantGI_TAcum.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 3
|
|
Name "Albedo"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragAlbedo
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 4
|
|
Name "Normals"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragNormals
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 5
|
|
Name "Compose"
|
|
Stencil {
|
|
Ref [_StencilValue]
|
|
Comp [_StencilCompareFunction]
|
|
}
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCompose
|
|
#pragma multi_compile_local _ _FORWARD _FORWARD_AND_DEFERRED
|
|
#pragma multi_compile_local _ _VIRTUAL_EMITTERS
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#pragma multi_compile_local _ _USES_NEAR_FIELD_OBSCURANCE
|
|
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#if UNITY_VERSION >= 202310
|
|
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
|
|
#endif
|
|
#include "RadiantGI_Upscale.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 6
|
|
Name "Compare Mode"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCompare
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 7
|
|
Name "Final GI Debug"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCompose
|
|
#pragma multi_compile_local _ _FORWARD _FORWARD_AND_DEFERRED
|
|
#pragma multi_compile_local _ _VIRTUAL_EMITTERS
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#pragma multi_compile_local _ _USES_NEAR_FIELD_OBSCURANCE
|
|
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#if UNITY_VERSION >= 202310
|
|
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl"
|
|
#endif
|
|
#define DEBUG_GI
|
|
#include "RadiantGI_Upscale.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 8
|
|
Name "Copy"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCopy
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 9
|
|
Name "Wide filter"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragWideBlur
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#define RGI_BLUR_HORIZ
|
|
#include "RadiantGI_WideKernelFilter.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 10
|
|
Name "Depth"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragDepth
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 11
|
|
Name "Copy Depth"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragCopyDepth
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#pragma multi_compile_local _ _TRANSPARENT_DEPTH_PREPASS
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 12
|
|
Name "Reflective Shadow Map"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragRSM
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#include "RadiantGI_RSM.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 13
|
|
Name "Near Field Obscurance"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragRGI
|
|
#pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#include "RadiantGI_NFO.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 14
|
|
Name "Near Field Obscurance Blur"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragNFOWideBlur
|
|
#pragma multi_compile_local _ _ORTHO_SUPPORT
|
|
#include "RadiantGI_WideKernelFilter.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 15
|
|
Name "Ray Buffer Accumulation"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragRGI2
|
|
#include "RadiantGI_TAcum.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 16
|
|
Name "Motion Vectors"
|
|
HLSLPROGRAM
|
|
#pragma vertex VertRGI
|
|
#pragma fragment FragMotion
|
|
#include "RadiantGI_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
}
|
|
}
|