135 lines
3.2 KiB
Plaintext
135 lines
3.2 KiB
Plaintext
Shader "Hidden/Kronnect/SSR" {
|
|
Properties {
|
|
_MainTex("", any) = "" {}
|
|
_BumpMap("Normal Map", 2D) = "bump" {}
|
|
_SmoothnessMap("Smoothness Map", 2D) = "white" {}
|
|
_Color("", Color) = (1,1,1)
|
|
_NoiseTex("", any) = "" {}
|
|
_SSRSettings("", Vector) = (1,1,1,1)
|
|
_SSRSettings2("", Vector) = (1,1,1,1)
|
|
}
|
|
|
|
HLSLINCLUDE
|
|
#pragma target 3.0
|
|
ENDHLSL
|
|
|
|
|
|
Subshader {
|
|
|
|
Tags { "RenderType" = "Transparent" "DisableBatching"="True" "ForceNoShadowCasting"="True" }
|
|
|
|
HLSLINCLUDE
|
|
#pragma target 3.0
|
|
#pragma prefer_hlslcc gles
|
|
#pragma exclude_renderers d3d11_9x
|
|
#include "UnityCG.cginc"
|
|
ENDHLSL
|
|
|
|
Pass { // 0: Copy exact
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragCopyExact
|
|
#include "SSR_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 1: Surface reflection
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSRSurf
|
|
#pragma fragment FragSSRSurf
|
|
#pragma multi_compile_local _ SSR_NORMALMAP
|
|
#pragma multi_compile_local _ SSR_SMOOTHNESSMAP
|
|
#pragma multi_compile_local _ SSR_JITTER
|
|
#pragma multi_compile_local _ SSR_THICKNESS_FINE
|
|
|
|
#include "SSR_Common.hlsl"
|
|
#include "SSR_Surface_Pass.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 2 Resolve
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragResolve
|
|
#include "SSR_Solve.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 3 Blur horizontally
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertBlur
|
|
#pragma fragment FragBlur
|
|
#pragma multi_compile_local _ SSR_DENOISE
|
|
#define SSR_BLUR_HORIZ
|
|
#include "SSR_Blur.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 4 Blur vertically
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertBlur
|
|
#pragma multi_compile_local _ SSR_DENOISE
|
|
#pragma fragment FragBlur
|
|
#include "SSR_Blur.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 5 Debug
|
|
ZWrite Off ZTest Always Cull Off
|
|
Blend One Zero
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragCopyExact
|
|
#include "SSR_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 6 Combine
|
|
ZWrite Off ZTest Always Cull Off
|
|
Blend One One // precomputed alpha in Resolve pass
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragCombine
|
|
#include "SSR_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 7 Combine with compare
|
|
ZWrite Off ZTest Always Cull Off
|
|
Blend One One // precomputed alpha in Resolve pass
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragCombineWithCompare
|
|
#include "SSR_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 8 Deferred pass
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragSSR
|
|
#pragma multi_compile_local _ SSR_JITTER
|
|
#pragma multi_compile_local _ SSR_THICKNESS_FINE
|
|
#include "SSR_Common.hlsl"
|
|
#include "SSR_GBuf_Pass.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
Pass { // 9: Copy with bilinear filter
|
|
ZWrite Off ZTest Always Cull Off
|
|
HLSLPROGRAM
|
|
#pragma vertex VertSSR
|
|
#pragma fragment FragCopy
|
|
#include "SSR_Blends.hlsl"
|
|
ENDHLSL
|
|
}
|
|
|
|
}
|
|
FallBack Off
|
|
}
|