experiments with fresnel and shadergraph
[WindSway-HDRP.git] / Library / PackageCache / com.unity.postprocessing@2.1.6 / PostProcessing / Shaders / Builtins / DepthOfField.shader
blobd2508aaccf074df98041cf5355d3854c8200aaaa
1 Shader "Hidden/PostProcessing/DepthOfField"
3     // SubShader with SM 5.0 support
4     // DX11+, OpenGL 4.3+, OpenGL ES 3.1+AEP, Vulkan, consoles
5     // Gather intrinsics are used to reduce texture sample count.
6     SubShader
7     {
8         Cull Off ZWrite Off ZTest Always
10         Pass // 0
11         {
12             Name "CoC Calculation"
14             HLSLPROGRAM
15                 #pragma target 3.5
16                 #pragma vertex VertDefault
17                 #pragma fragment FragCoC
18                 #include "DepthOfField.hlsl"
19             ENDHLSL
20         }
22         Pass // 1
23         {
24             Name "CoC Temporal Filter"
26             HLSLPROGRAM
27                 #pragma target 5.0
28                 #pragma vertex VertDefault
29                 #pragma fragment FragTempFilter
30                 #include "DepthOfField.hlsl"
31             ENDHLSL
32         }
34         Pass // 2
35         {
36             Name "Downsample and Prefilter"
38             HLSLPROGRAM
39                 #pragma target 5.0
40                 #pragma vertex VertDefault
41                 #pragma fragment FragPrefilter
42                 #include "DepthOfField.hlsl"
43             ENDHLSL
44         }
46         Pass // 3
47         {
48             Name "Bokeh Filter (small)"
50             HLSLPROGRAM
51                 #pragma target 3.5
52                 #pragma vertex VertDefault
53                 #pragma fragment FragBlur
54                 #define KERNEL_SMALL
55                 #include "DepthOfField.hlsl"
56             ENDHLSL
57         }
59         Pass // 4
60         {
61             Name "Bokeh Filter (medium)"
63             HLSLPROGRAM
64                 #pragma target 3.5
65                 #pragma vertex VertDefault
66                 #pragma fragment FragBlur
67                 #define KERNEL_MEDIUM
68                 #include "DepthOfField.hlsl"
69             ENDHLSL
70         }
72         Pass // 5
73         {
74             Name "Bokeh Filter (large)"
76             HLSLPROGRAM
77                 #pragma target 3.5
78                 #pragma vertex VertDefault
79                 #pragma fragment FragBlur
80                 #define KERNEL_LARGE
81                 #include "DepthOfField.hlsl"
82             ENDHLSL
83         }
85         Pass // 6
86         {
87             Name "Bokeh Filter (very large)"
89             HLSLPROGRAM
90                 #pragma target 3.5
91                 #pragma vertex VertDefault
92                 #pragma fragment FragBlur
93                 #define KERNEL_VERYLARGE
94                 #include "DepthOfField.hlsl"
95             ENDHLSL
96         }
98         Pass // 7
99         {
100             Name "Postfilter"
102             HLSLPROGRAM
103                 #pragma target 3.5
104                 #pragma vertex VertDefault
105                 #pragma fragment FragPostBlur
106                 #include "DepthOfField.hlsl"
107             ENDHLSL
108         }
110         Pass // 8
111         {
112             Name "Combine"
114             HLSLPROGRAM
115                 #pragma target 3.5
116                 #pragma vertex VertDefault
117                 #pragma fragment FragCombine
118                 #include "DepthOfField.hlsl"
119             ENDHLSL
120         }
122         Pass // 9
123         {
124             Name "Debug Overlay"
126             HLSLPROGRAM
127                 #pragma target 3.5
128                 #pragma vertex VertDefault
129                 #pragma fragment FragDebugOverlay
130                 #include "DepthOfField.hlsl"
131             ENDHLSL
132         }
133     }
135     // Fallback SubShader with SM 3.5
136     // DX11+, OpenGL 3.2+, OpenGL ES 3+, Metal, Vulkan, consoles
137     SubShader
138     {
139         Cull Off ZWrite Off ZTest Always
141         Pass // 0
142         {
143             Name "CoC Calculation"
145             HLSLPROGRAM
146                 #pragma target 3.5
147                 #pragma vertex VertDefault
148                 #pragma fragment FragCoC
149                 #include "DepthOfField.hlsl"
150             ENDHLSL
151         }
153         Pass // 1
154         {
155             Name "CoC Temporal Filter"
157             HLSLPROGRAM
158                 #pragma target 3.5
159                 #pragma vertex VertDefault
160                 #pragma fragment FragTempFilter
161                 #include "DepthOfField.hlsl"
162             ENDHLSL
163         }
165         Pass // 2
166         {
167             Name "Downsample and Prefilter"
169             HLSLPROGRAM
170                 #pragma target 3.5
171                 #pragma vertex VertDefault
172                 #pragma fragment FragPrefilter
173                 #include "DepthOfField.hlsl"
174             ENDHLSL
175         }
177         Pass // 3
178         {
179             Name "Bokeh Filter (small)"
181             HLSLPROGRAM
182                 #pragma target 3.5
183                 #pragma vertex VertDefault
184                 #pragma fragment FragBlur
185                 #define KERNEL_SMALL
186                 #include "DepthOfField.hlsl"
187             ENDHLSL
188         }
190         Pass // 4
191         {
192             Name "Bokeh Filter (medium)"
194             HLSLPROGRAM
195                 #pragma target 3.5
196                 #pragma vertex VertDefault
197                 #pragma fragment FragBlur
198                 #define KERNEL_MEDIUM
199                 #include "DepthOfField.hlsl"
200             ENDHLSL
201         }
203         Pass // 5
204         {
205             Name "Bokeh Filter (large)"
207             HLSLPROGRAM
208                 #pragma target 3.5
209                 #pragma vertex VertDefault
210                 #pragma fragment FragBlur
211                 #define KERNEL_LARGE
212                 #include "DepthOfField.hlsl"
213             ENDHLSL
214         }
216         Pass // 6
217         {
218             Name "Bokeh Filter (very large)"
220             HLSLPROGRAM
221                 #pragma target 3.5
222                 #pragma vertex VertDefault
223                 #pragma fragment FragBlur
224                 #define KERNEL_VERYLARGE
225                 #include "DepthOfField.hlsl"
226             ENDHLSL
227         }
229         Pass // 7
230         {
231             Name "Postfilter"
233             HLSLPROGRAM
234                 #pragma target 3.5
235                 #pragma vertex VertDefault
236                 #pragma fragment FragPostBlur
237                 #include "DepthOfField.hlsl"
238             ENDHLSL
239         }
241         Pass // 8
242         {
243             Name "Combine"
245             HLSLPROGRAM
246                 #pragma target 3.5
247                 #pragma vertex VertDefault
248                 #pragma fragment FragCombine
249                 #include "DepthOfField.hlsl"
250             ENDHLSL
251         }
253         Pass // 9
254         {
255             Name "Debug Overlay"
257             HLSLPROGRAM
258                 #pragma target 3.5
259                 #pragma vertex VertDefault
260                 #pragma fragment FragDebugOverlay
261                 #include "DepthOfField.hlsl"
262             ENDHLSL
263         }
264     }