summaryrefslogtreecommitdiffstatshomepage
path: root/bgfx/chains/hlsl.json
blob: 6e7c82af52aaa24627a11fdd77250714acbb7171 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
{	"name": "Classic D3D HLSL CRT Simulation",
	"author": "Ryan Holtz & ImJezze",
	"sliders": [
		{ "type": "int_enum", "name": "adjustments", "text": "Enable Adjustments", "default": 0, "max": 1, "min": 0, "step": 1, "scale": 1.0, "format": "%s", "screen": "any", "strings": [ "Off", "On" ] },

		{ "type": "int_enum", "name": "ntsc",            "text": "Enable NTSC",                   "default": 0,        "max": 1,        "min": 0,        "step": 1,   "scale": 1.0,       "format": "%s",    "screen": "any", "strings": [ "Off", "On" ] },
		{ "type": "float",    "name": "a_value",         "text": "NTSC A Value",                  "default": 50,       "max": 100,      "min": 0,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },
		{ "type": "float",    "name": "b_value",         "text": "NTSC B Value",                  "default": 50,       "max": 100,      "min": 0,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },
		{ "type": "float",    "name": "cc_value",        "text": "NTSC Color Carrier (Hz)",       "default": 35795454, "max": 36795454, "min": 34795454, "step": 100, "scale": 0.0000001, "format": "%1.7f", "screen": "raster" },
		{ "type": "float",    "name": "o_value",         "text": "NTSC Time Offset",              "default": 0,        "max": 100,      "min": 0,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },
		{ "type": "float",    "name": "p_value",         "text": "NTSC Phase Offset",             "default": 100,      "max": 200,      "min": 0,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },
		{ "type": "float",    "name": "scan_time",       "text": "NTSC Scanline Duration (uSec)", "default": 526,      "max": 1500,     "min": 1,        "step": 1,   "scale": 0.1,       "format": "%3.1f", "screen": "raster" },
		{ "type": "float",    "name": "notch_width",     "text": "NTSC Color Notch Filter Width", "default": 100,      "max": 400,      "min": 1,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },
		{ "type": "float",    "name": "y_freq_response", "text": "NTSC Y Signal Bandwidth (Hz)",  "default": 600,      "max": 2100,     "min": 1,        "step": 10,  "scale": 0.01,      "format": "%2.2f", "screen": "raster" },
		{ "type": "float",    "name": "i_freq_response", "text": "NTSC I Signal Bandwidth (Hz)",  "default": 120,      "max": 2100,     "min": 1,        "step": 10,  "scale": 0.01,      "format": "%2.2f", "screen": "raster" },
		{ "type": "float",    "name": "q_freq_response", "text": "NTSC Q Signal Bandwidth (Hz)",  "default": 60,       "max": 2100,     "min": 1,        "step": 10,  "scale": 0.01,      "format": "%2.2f", "screen": "raster" },
		{ "type": "float",    "name": "jitter_offset",   "text": "NTSC Frame Jitter Offset",      "default": 0,        "max": 200,      "min": 1,        "step": 1,   "scale": 0.01,      "format": "%1.2f", "screen": "raster" },

		{ "type": "color", "name": "red_ratios", "text": "Red Output from ",   "default": [ 100,   0,   0 ], "max": [ 200, 200, 200 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },
		{ "type": "color", "name": "grn_ratios", "text": "Green Output from ", "default": [   0, 100,   0 ], "max": [ 200, 200, 200 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },
		{ "type": "color", "name": "blu_ratios", "text": "Blue Output from ",  "default": [   0,   0, 100 ], "max": [ 200, 200, 200 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },
		{ "type": "color", "name": "offset",     "text": "Signal Offset, ",    "default": [   0,   0,   0 ], "max": [ 200, 200, 200 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },
		{ "type": "color", "name": "scale",      "text": "Signal Scale, ",     "default": [ 100, 100, 100 ], "max": [ 200, 200, 200 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },
		{ "type": "float", "name": "saturation", "text": "Color Saturation",   "default": 100,               "max": 400,               "min": 0,           "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "raster" },

		{ "type": "vec2", "name": "converge_red",          "text": "Red Convergence, ",   "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },
		{ "type": "vec2", "name": "converge_green",        "text": "Green Convergence, ", "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },
		{ "type": "vec2", "name": "converge_blue",         "text": "Blue Convergence, ",  "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },
		
		{ "type": "vec2", "name": "radial_converge_red",   "text": "Red Radial Convergence, ",   "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },
		{ "type": "vec2", "name": "radial_converge_green", "text": "Green Radial Convergence, ", "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },
		{ "type": "vec2", "name": "radial_converge_blue",  "text": "Blue Radial Convergence, ",  "default": [ 0, 0 ], "max": [ 8000, 6000 ], "min": [ -8000, -6000 ], "step": 1, "scale": 0.1, "format": "%3.1f", "screen": "raster" },

		{ "type": "vec2", "name": "defocus", "text": "Defocus, ",  "default": [ 0, 0 ], "max": [ 500, 500 ], "min": [ 0, 0 ], "step": 1, "scale": 0.1, "format": "%2.1f", "screen": "crt" },

		{ "type": "color", "name": "phosphor", "text": "Phosphor Persistence, ",  "default": [ 0, 0, 0 ], "max": [ 100, 100, 100 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" },

		{ "type": "float",    "name": "scanline_alpha",         "text": "Scanline Amount",            "default": 0,                 "max": 100,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "scanline_scale",         "text": "Overall Scanline Scale",     "default": 100,               "max": 400,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "scanline_bright_scale",  "text": "Scanline Brightness Scale",  "default": 100,               "max": 400,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "scanline_bright_offset", "text": "Scanline Brightness Offset", "default": 0,                 "max": 400,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "scanline_jitter_amount", "text": "Scanline Jitter Amount",     "default": 0,                 "max": 400,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "scanline_height",        "text": "Individual Scanline Scale",  "default": 100,               "max": 400,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "float",    "name": "shadow_alpha",           "text": "Shadow Mask Amount",         "default": 0,                 "max": 100,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "vec2",     "name": "shadow_count",           "text": "Shadow Mask Pixel Count ",   "default": [ 60, 40 ],        "max": [ 400, 400 ],      "min": [ 0, 0 ],    "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "vec2",     "name": "shadow_uv_size",         "text": "Shadow Mask UV Size ",       "default": [ 48, 64 ],        "max": [ 256, 256 ],      "min": [ 0, 0 ],    "step": 1, "scale": 0.00390625, "format": "%1.7f", "screen": "crt" },
		{ "type": "vec2",     "name": "shadow_uv_offset",       "text": "Shadow Mask UV Offset ",     "default": [  0,  0 ],        "max": [ 256, 256 ],      "min": [ 0, 0 ],    "step": 1, "scale": 0.00390625, "format": "%1.7f", "screen": "crt" },
		{ "type": "int_enum", "name": "shadow_tile_mode",       "text": "Shadow Mask Tile Mode",      "default": 0,                 "max": 1,                 "min": 0,           "step": 1, "scale": 1.0,        "format": "%s",    "screen": "crt", "strings": [ "Screen", "Source" ] },
		{ "type": "float",    "name": "humbar_alpha",           "text": "Hum Bar Amount",             "default": 0,                 "max": 100,               "min": 0,           "step": 1, "scale": 0.01,       "format": "%1.7f", "screen": "crt" },
		{ "type": "float",    "name": "humbar_hertz_rate",      "text": "Hum Bar Frequency",          "default": 100,               "max": 10000,             "min": 0,           "step": 1, "scale": 0.00001,    "format": "%1.2f", "screen": "crt" },
		{ "type": "color",    "name": "floor",                  "text": "Signal Floor, ",             "default": [   0,   0,   0 ], "max": [ 100, 100, 100 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		{ "type": "color",    "name": "power",                  "text": "Signal Exponent, ",          "default": [ 100, 100, 100 ], "max": [ 400, 400, 400 ], "min": [ 0, 0, 0 ], "step": 1, "scale": 0.01,       "format": "%1.2f", "screen": "crt" },
		
		{ "type": "float", "name": "curvature",     "text": "Screen Curvature Amount", "default": 0, "max": 200, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" },
		{ "type": "float", "name": "round_corner",  "text": "Rounded Corner Amount",   "default": 0, "max": 200, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" },
		{ "type": "float", "name": "smooth_border", "text": "Smooth Border Amount",    "default": 0, "max": 200, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" },
		{ "type": "float", "name": "vignetting",    "text": "Vignetting Amount",       "default": 0, "max": 200, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" },
		{ "type": "float", "name": "reflection",    "text": "Reflection Amount",       "default": 0, "max": 200, "min": 0, "step": 1, "scale": 0.01, "format": "%1.2f", "screen": "crt" }
	],
	"parameters": [
		{ "name": "jitter", "type": "frame", "period": 2 },
		{ "name": "time",   "type": "time",  "limit": 0.0 }
	],
	"targets": [
		{
			"name": "guest",
			"mode": "guest",
			"prescale": 1,
			"doublebuffer": true
		},
		{	"name": "native",
			"mode": "native",
			"prescale": 1,
			"doublebuffer": true
		},
		{	"name": "previous",
			"mode": "native",
			"prescale": 1,
			"doublebuffer": true
		},
		{	"name": "bloom",
			"mode": "native",
			"prescale": 1,
			"doublebuffer": true,
			"pyramid": true
		}
	],
	"passes": [
		{	"effect": "ntsc_encode",
			"name": "NTSC Encode",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "ntsc",        "value": 0 }
			],
			"uniforms": [
				{ "uniform": "u_a_value",         "slider": "a_value" },
				{ "uniform": "u_b_value",         "slider": "b_value" },
				{ "uniform": "u_cc_value",        "slider": "cc_value" },
				{ "uniform": "u_p_value",         "slider": "p_value" },
				{ "uniform": "u_scan_time",       "slider": "scan_time" },
				{ "uniform": "u_jitter_offset",   "slider": "jitter_offset" },
				{ "uniform": "u_jitter_amount",   "parameter": "jitter" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "screen" }
			],
			"output": "guest"
		},
		{	"effect": "ntsc_decode",
			"name": "NTSC Decode",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "ntsc",        "value": 0 }
			],
			"uniforms": [
				{ "uniform": "u_a_value",         "slider": "a_value" },
				{ "uniform": "u_b_value",         "slider": "b_value" },
				{ "uniform": "u_cc_value",        "slider": "cc_value" },
				{ "uniform": "u_o_value",         "slider": "o_value" },
				{ "uniform": "u_scan_time",       "slider": "scan_time" },
				{ "uniform": "u_notch_width",     "slider": "notch_width" },
				{ "uniform": "u_y_freq_response", "slider": "y_freq_response" },
				{ "uniform": "u_i_freq_response", "slider": "i_freq_response" },
				{ "uniform": "u_q_freq_response", "slider": "q_freq_response" },
				{ "uniform": "u_q_freq_response", "slider": "q_freq_response" },
				{ "uniform": "u_jitter_offset",   "slider": "jitter_offset" },
				{ "uniform": "u_jitter_amount",   "parameter": "jitter" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "guest" }
			],
			"output": "guest"
		},
		{	"effect": "blit",
			"name": "NTSC Skip",
			"disablewhen": [
				{ "type": "slider", "condition": "notequal", "combine": "and", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "notequal", "combine": "and", "name": "ntsc",        "value": 0 }
			],
			"input": [
				{ "sampler": "s_tex", "texture": "screen" }
			],
			"output": "guest"
		},
		{	"effect": "color",
			"name": "Color Convolution",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "name": "adjustments", "value": 0 }
			],
			"uniforms": [
				{ "uniform": "u_red_ratios", "slider": "red_ratios" },
				{ "uniform": "u_grn_ratios", "slider": "grn_ratios" },
				{ "uniform": "u_blu_ratios", "slider": "blu_ratios" },
				{ "uniform": "u_offset",     "slider": "offset"     },
				{ "uniform": "u_scale",      "slider": "scale"      },
				{ "uniform": "u_saturation", "slider": "saturation" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "guest" }
			],
			"output": "guest"
		},
 		{	"effect": "blit",
			"name": "Prescale",
			"input": [
				{ "sampler": "s_tex", "texture": "guest" }
			],
			"output": "native"
		},
		{	"effect": "deconverge",
			"name": "Deconvergence",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or",  "name": "adjustments",           "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "converge_red",          "value": [ 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "converge_green",        "value": [ 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "converge_blue",         "value": [ 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "radial_converge_red",   "value": [ 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "radial_converge_green", "value": [ 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "radial_converge_blue",  "value": [ 0, 0 ] }
			],
			"uniforms": [
				{ "uniform": "u_converge_red",          "slider": "converge_red"   },
				{ "uniform": "u_converge_green",        "slider": "converge_green" },
				{ "uniform": "u_converge_blue",         "slider": "converge_blue"  },
				{ "uniform": "u_radial_converge_red",   "slider": "radial_converge_red"   },
				{ "uniform": "u_radial_converge_green", "slider": "radial_converge_green" },
				{ "uniform": "u_radial_converge_blue",  "slider": "radial_converge_blue"  }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "native" }
			],
			"output": "native"
		},
		{	"effect": "defocus",
			"name": "Defocus Pass 1",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "defocus",     "value": [ 0, 0 ] }
			],
			"uniforms": [
				{ "uniform": "u_defocus", "slider": "defocus" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "native" }
			],
			"output": "native"
		},
		{	"effect": "defocus",
			"name": "Defocus Pass 2",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "defocus",     "value": [ 0, 0 ] }
			],
			"uniforms": [
				{ "uniform": "u_defocus", "slider": "defocus" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "native" }
			],
			"output": "native"
		},
		{	"effect": "phosphor",
			"name": "Phosphor Decay",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "phosphor",    "value": [ 0, 0, 0 ] }
			],
			"uniforms": [
				{ "uniform": "u_passthrough", "value": [ 0 ] },
				{ "uniform": "u_phosphor", "slider": "phosphor" }
			],
			"input": [
				{ "sampler": "s_tex", "texture": "native" },
				{ "sampler": "s_prev", "texture": "previous" }
			],
			"output": "native"
		},
		{	"effect": "phosphor",
			"name": "Phosphor Store",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments", "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "phosphor",    "value": [ 0, 0, 0 ] }
			],
			"uniforms": [
				{ "uniform": "u_passthrough", "value": [ 1 ] },
				{ "uniform": "u_phosphor", "slider": "phosphor" }
			],
			"input": [
				{ "sampler": "s_tex", "texture": "native" },
				{ "sampler": "s_prev", "texture": "native" }
			],
			"output": "previous"
		},
		{	"effect": "post",
			"name": "Non-Bloom Post Pass",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or",  "name": "adjustments",    "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "scanline_alpha", "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "shadow_alpha",   "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "humbar_alpha",   "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "floor",          "value": [ 0, 0, 0 ] },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "power",          "value": [ 0, 0, 0 ] }
			],
			"textures": [ { "name": "shadow" } ],
			"uniforms": [
				{ "uniform": "u_scanline_alpha",         "slider": "scanline_alpha" },
				{ "uniform": "u_scanline_scale",         "slider": "scanline_scale" },
				{ "uniform": "u_scanline_bright_scale",  "slider": "scanline_bright_scale" },
				{ "uniform": "u_scanline_bright_offset", "slider": "scanline_bright_offset" },
				{ "uniform": "u_shadow_alpha",           "slider": "shadow_alpha" },
				{ "uniform": "u_shadow_count",           "slider": "shadow_count" },
				{ "uniform": "u_shadow_uv",              "slider": "shadow_uv_size" },
				{ "uniform": "u_shadow_uv_offset",       "slider": "shadow_uv_offset" },
				{ "uniform": "u_shadow_tile_mode",       "slider": "shadow_tile_mode" },
				{ "uniform": "u_humbar_alpha",           "slider": "humbar_alpha" },
				{ "uniform": "u_humbar_hertz_rate",      "slider": "humbar_hertz_rate" },
				{ "uniform": "u_floor",                  "slider": "floor" },
				{ "uniform": "u_power",                  "slider": "power" },
				{ "uniform": "u_scanline_jitter",        "slider": "scanline_jitter_amount" },
				{ "uniform": "u_jitter_amount",          "parameter": "jitter" },
				{ "uniform": "u_time",                   "parameter": "time" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "native" },
				{ "sampler": "ShadowSampler",  "texture": "shadow" }
			],
			"output": "native"
		},
		{	"effect": "distortion",
			"name": "Distortion Pass",
			"disablewhen": [
				{ "type": "slider", "condition": "equal", "combine": "or", "name": "adjustments",    "value": 0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "curvature",     "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "round_corner",  "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "smooth_border", "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "vignetting",    "value": 0.0 },
				{ "type": "slider", "condition": "equal", "combine": "and", "name": "reflection",    "value": 0.0 }
			],
			"uniforms": [
				{ "uniform": "u_curvature",     "slider": "curvature" },
				{ "uniform": "u_round_corner",  "slider": "round_corner" },
				{ "uniform": "u_smooth_border", "slider": "smooth_border" },
				{ "uniform": "u_vignetting",    "slider": "vignetting" },
				{ "uniform": "u_reflection",    "slider": "reflection" }
			],
			"input": [
				{ "sampler": "DiffuseSampler", "texture": "native" }
			],
			"output": "native"
		}
	],
	"output": "native"
}