128 lines
3.5 KiB
Plaintext
128 lines
3.5 KiB
Plaintext
Shader "Hidden/PostProcessing/ScalableAO"
|
|
{
|
|
HLSLINCLUDE
|
|
|
|
#pragma exclude_renderers psp2
|
|
#pragma target 3.0
|
|
|
|
ENDHLSL
|
|
|
|
SubShader
|
|
{
|
|
Cull Off ZWrite Off ZTest Always
|
|
|
|
// 0 - Occlusion estimation with CameraDepthTexture
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragAO
|
|
#pragma multi_compile _ APPLY_FORWARD_FOG
|
|
#pragma multi_compile _ FOG_LINEAR FOG_EXP FOG_EXP2
|
|
#define SOURCE_DEPTH
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 1 - Occlusion estimation with G-Buffer
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragAO
|
|
#pragma multi_compile _ APPLY_FORWARD_FOG
|
|
#pragma multi_compile _ FOG_LINEAR FOG_EXP FOG_EXP2
|
|
#define SOURCE_GBUFFER
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 2 - Separable blur (horizontal pass) with CameraDepthNormalsTexture
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragBlur
|
|
#define SOURCE_DEPTHNORMALS
|
|
#define BLUR_HORIZONTAL
|
|
#define BLUR_SAMPLE_CENTER_NORMAL
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 3 - Separable blur (horizontal pass) with G-Buffer
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragBlur
|
|
#define SOURCE_GBUFFER
|
|
#define BLUR_HORIZONTAL
|
|
#define BLUR_SAMPLE_CENTER_NORMAL
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 4 - Separable blur (vertical pass)
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragBlur
|
|
#define BLUR_VERTICAL
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 5 - Final composition
|
|
Pass
|
|
{
|
|
Blend Zero OneMinusSrcColor, Zero OneMinusSrcAlpha
|
|
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragComposition
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 6 - Final composition (ambient only mode)
|
|
Pass
|
|
{
|
|
Blend Zero OneMinusSrcColor, Zero OneMinusSrcAlpha
|
|
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragCompositionGBuffer
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
|
|
// 7 - Debug overlay
|
|
Pass
|
|
{
|
|
HLSLPROGRAM
|
|
|
|
#pragma vertex VertDefault
|
|
#pragma fragment FragDebugOverlay
|
|
#include "Packages/com.unity.postprocessing/PostProcessing/Shaders/Builtins/ScalableAO.hlsl"
|
|
|
|
ENDHLSL
|
|
}
|
|
}
|
|
}
|