mirror of
https://github.com/FriendshipIsEpic/FiE-Game.git
synced 2024-11-26 07:18:00 +01:00
213 lines
5.3 KiB
Text
213 lines
5.3 KiB
Text
|
Shader "Hidden/Post FX/Depth Of Field"
|
||
|
{
|
||
|
Properties
|
||
|
{
|
||
|
_MainTex ("", 2D) = "black"
|
||
|
}
|
||
|
|
||
|
CGINCLUDE
|
||
|
#pragma exclude_renderers d3d11_9x
|
||
|
ENDCG
|
||
|
|
||
|
// SubShader with SM 5.0 support
|
||
|
// Gather intrinsics are used to reduce texture sample count.
|
||
|
SubShader
|
||
|
{
|
||
|
Cull Off ZWrite Off ZTest Always
|
||
|
|
||
|
Pass // 0
|
||
|
{
|
||
|
Name "CoC Calculation"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragCoC
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 1
|
||
|
{
|
||
|
Name "CoC Temporal Filter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 5.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragTempFilter
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 2
|
||
|
{
|
||
|
Name "Downsample and Prefilter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 5.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragPrefilter
|
||
|
#pragma multi_compile __ UNITY_COLORSPACE_GAMMA
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 3
|
||
|
{
|
||
|
Name "Bokeh Filter (small)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_SMALL
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 4
|
||
|
{
|
||
|
Name "Bokeh Filter (medium)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_MEDIUM
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 5
|
||
|
{
|
||
|
Name "Bokeh Filter (large)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_LARGE
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 6
|
||
|
{
|
||
|
Name "Bokeh Filter (very large)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_VERYLARGE
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 7
|
||
|
{
|
||
|
Name "Postfilter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragPostBlur
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Fallback SubShader with SM 3.0
|
||
|
SubShader
|
||
|
{
|
||
|
Cull Off ZWrite Off ZTest Always
|
||
|
|
||
|
Pass // 0
|
||
|
{
|
||
|
Name "CoC Calculation"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragCoC
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 1
|
||
|
{
|
||
|
Name "CoC Temporal Filter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragTempFilter
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 2
|
||
|
{
|
||
|
Name "Downsample and Prefilter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragPrefilter
|
||
|
#pragma multi_compile __ UNITY_COLORSPACE_GAMMA
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 3
|
||
|
{
|
||
|
Name "Bokeh Filter (small)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_SMALL
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 4
|
||
|
{
|
||
|
Name "Bokeh Filter (medium)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_MEDIUM
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 5
|
||
|
{
|
||
|
Name "Bokeh Filter (large)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_LARGE
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 6
|
||
|
{
|
||
|
Name "Bokeh Filter (very large)"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragBlur
|
||
|
#define KERNEL_VERYLARGE
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
|
||
|
Pass // 7
|
||
|
{
|
||
|
Name "Postfilter"
|
||
|
CGPROGRAM
|
||
|
#pragma target 3.0
|
||
|
#pragma vertex VertDOF
|
||
|
#pragma fragment FragPostBlur
|
||
|
#include "DepthOfField.cginc"
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
|
||
|
FallBack Off
|
||
|
}
|