213 lines
6.2 KiB
Plaintext

Shader "Hidden/Kronnect/SSR_URP" {
Properties {
_BumpMap("Normal Map", 2D) = "bump" {}
_BumpScale("Normal Strength", Float) = 1.0
_SmoothnessMap("Smoothness Map", 2D) = "white" {}
_OcclusionMap("Occlusion", 2D) = "white" {}
_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
_Color("", Color) = (1,1,1)
_NoiseTex("", any) = "" {}
_SSRSettings("", Vector) = (1,1,1,1)
_SSRSettings2("", Vector) = (1,1,1,1)
_StencilValue("Stencil Value", Int) = 0
_StencilCompareFunction("Stencil Compare Function", Int) = 8
}
Subshader {
Tags { "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" "DisableBatching"="True" "ForceNoShadowCasting"="True" }
ZWrite Off ZTest Always Cull Off
HLSLINCLUDE
#pragma target 3.0
#pragma prefer_hlslcc gles
#pragma exclude_renderers d3d11_9x
#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"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareNormalsTexture.hlsl"
#include "SSR_Common.hlsl"
ENDHLSL
Pass { // 0
Name "Copy exact"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCopyExact
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 1
Name "Surface reflection"
ZTest LEqual
ZWrite On
HLSLPROGRAM
#pragma vertex VertSSRSurf
#pragma fragment FragSSRSurf
#pragma multi_compile_local _ SSR_SCREEN_SPACE_NORMALS SSR_NORMALMAP
#pragma multi_compile_local _ SSR_SMOOTHNESSMAP
#pragma multi_compile_local _ SSR_OCCLUSIONMAP
#pragma multi_compile_local _ SSR_JITTER
#pragma multi_compile_local _ SSR_THICKNESS_FINE
#pragma multi_compile_local _ SSR_METALLIC_WORKFLOW
#pragma multi_compile _ SSR_ORTHO_SUPPORT
#pragma multi_compile _ SSR_BACK_FACES
#pragma multi_compile _ SSR_SKYBOX SSR_SKYBOX_VISIBLE_ONLY
#include "SSR_Surface_Pass.hlsl"
ENDHLSL
}
Pass { // 2
Name "Resolve"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragResolve
#pragma multi_compile _ SSR_SKYBOX
#pragma multi_compile_local _ SSR_METALLIC_WORKFLOW
#pragma multi_compile _ SSR_BLEND_REFLECTIONS
#pragma multi_compile_local _ SSR_VIGNETTE_RADIAL
#include "SSR_Solve.hlsl"
ENDHLSL
}
Pass { // 3
Name "Blur horizontally"
HLSLPROGRAM
#pragma vertex VertBlur
#pragma fragment FragBlur
#pragma multi_compile_local _ SSR_DENOISE
#define SSR_BLUR_HORIZ
#include "SSR_Blur.hlsl"
ENDHLSL
}
Pass { // 4
Name "Blur vertically"
HLSLPROGRAM
#pragma vertex VertBlur
#pragma fragment FragBlur
#pragma multi_compile_local _ SSR_DENOISE
#include "SSR_Blur.hlsl"
ENDHLSL
}
Pass { // 5
Name "Debug"
Blend One Zero
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCopyExact
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 6
Name "Combine"
Stencil {
Ref [_StencilValue]
Comp [_StencilCompareFunction]
}
Blend One OneMinusSrcAlpha // precomputed source alpha in Resolve pass
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCombine
#pragma multi_compile_local_fragment _ SSR_DARK_REFLECTIONS SSR_METALLIC_BOOST
#pragma multi_compile_local _ SSR_CUSTOM_SMOOTHNESS_METALLIC_PASS
#pragma multi_compile _ SSR_SKYBOX
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 7
Name "Combine with compare"
Stencil {
Ref [_StencilValue]
Comp [_StencilCompareFunction]
}
Blend One OneMinusSrcAlpha // One One // precomputed source alpha in Resolve pass
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCombineWithCompare
#pragma multi_compile_local_fragment _ SSR_DARK_REFLECTIONS SSR_METALLIC_BOOST
#pragma multi_compile_local _ SSR_CUSTOM_SMOOTHNESS_METALLIC_PASS
#pragma multi_compile _ SSR_SKYBOX
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 8
Name "Deferred pass"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragSSR
#pragma multi_compile_local _ SSR_JITTER
#pragma multi_compile_local _ SSR_THICKNESS_FINE
#pragma multi_compile_local _ SSR_METALLIC_WORKFLOW
#pragma multi_compile_local _ SSR_CUSTOM_SMOOTHNESS_METALLIC_PASS
#pragma multi_compile_local _ SSR_LIMIT_BOUNDS
#pragma multi_compile _ SSR_ORTHO_SUPPORT
#pragma multi_compile _ _GBUFFER_NORMALS_OCT
#pragma multi_compile _ SSR_BACK_FACES
#pragma multi_compile _ SSR_SKYBOX SSR_SKYBOX_VISIBLE_ONLY
#include "SSR_GBuf_Pass.hlsl"
ENDHLSL
}
Pass { // 9
Name "Copy with bilinear filter"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCopy
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 10
Name "Temporal Accumulation"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragAcum
#include "SSR_TAcum.hlsl"
ENDHLSL
}
Pass { // 11
Name "Debug Depth"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragDebugDepth
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 12
Name "Debug Normals"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragDebugNormals
#pragma multi_compile _ _GBUFFER_NORMALS_OCT
#include "SSR_Blends.hlsl"
ENDHLSL
}
Pass { // 13
Name "Copy Depth"
HLSLPROGRAM
#pragma vertex VertSSR
#pragma fragment FragCopyDepth
#pragma multi_compile _ SSR_BACK_FACES
#pragma multi_compile _ SSR_DEPTH_PREPASS
#pragma multi_compile _ SSR_ORTHO_SUPPORT
#include "SSR_Blends.hlsl"
ENDHLSL
}
}
FallBack Off
}