mirror of
https://github.com/FriendshipIsEpic/FiE-Game.git
synced 2024-11-26 07:18:00 +01:00
119 lines
3.2 KiB
Text
119 lines
3.2 KiB
Text
Shader "Hidden/Post FX/Ambient Occlusion"
|
|
{
|
|
CGINCLUDE
|
|
|
|
#pragma target 3.0
|
|
|
|
ENDCG
|
|
|
|
SubShader
|
|
{
|
|
ZTest Always Cull Off ZWrite Off
|
|
|
|
// 0: Occlusion estimation with CameraDepthTexture
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragAO
|
|
#pragma multi_compile FOG_OFF FOG_LINEAR FOG_EXP FOG_EXP2
|
|
#define SOURCE_DEPTH
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 1: Occlusion estimation with CameraDepthNormalsTexture
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragAO
|
|
#pragma multi_compile FOG_OFF FOG_LINEAR FOG_EXP FOG_EXP2
|
|
#define SOURCE_DEPTHNORMALS
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 2: Occlusion estimation with G-Buffer
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragAO
|
|
#pragma multi_compile FOG_OFF FOG_LINEAR FOG_EXP FOG_EXP2
|
|
#define SOURCE_GBUFFER
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 3: Separable blur (horizontal pass) with CameraDepthNormalsTexture
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragBlur
|
|
#define SOURCE_DEPTHNORMALS
|
|
#define BLUR_HORIZONTAL
|
|
#define BLUR_SAMPLE_CENTER_NORMAL
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 4: Separable blur (horizontal pass) with G-Buffer
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragBlur
|
|
#define SOURCE_GBUFFER
|
|
#define BLUR_HORIZONTAL
|
|
#define BLUR_SAMPLE_CENTER_NORMAL
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 5: Separable blur (vertical pass)
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragBlur
|
|
#define BLUR_VERTICAL
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 6: Final composition
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragComposition
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 7: Final composition (ambient only mode)
|
|
Pass
|
|
{
|
|
Blend Zero OneMinusSrcColor, Zero OneMinusSrcAlpha
|
|
|
|
CGPROGRAM
|
|
#pragma vertex VertCompositionGBuffer
|
|
#pragma fragment FragCompositionGBuffer
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
|
|
// 8: Debug visualization
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex VertMultitex
|
|
#pragma fragment FragComposition
|
|
#define DEBUG_COMPOSITION
|
|
#include "AmbientOcclusion.cginc"
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|