{
	"name": "CRT-geom",
	"author": "cgwg",
	"sliders": [
		{ "type": "float",
		  "name": "aperture_strength",
		  "text": "Shadow mask strength",
		  "default":  0.13,
		  "max"    :  1.0,
		  "min"    :  0.0,
		  "step"   :  0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "phosphor_power",
		  "text": "Phosphor decay power",
		  "default":  1.9,
		  "max"    :  3.0,
		  "min"    :  0.5,
		  "step"   :  0.05,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "phosphor_amplitude",
		  "text": "Phosphor persistence amplitude",
		  "default":  0.04,
		  "max"    :  0.2,
		  "min"    :  0.0,
		  "step"   :  0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "rasterbloom_smooth",
		  "text": "Raster bloom temporal smoothing",
		  "default":  0.5,
		  "max"    :  0.99,
		  "min"    :  0.0,
		  "step"   :  0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "rasterbloom",
		  "text": "Raster bloom amplitude",
		  "default":  0.01,
		  "max"    :  0.1,
		  "min"    :  0.0,
		  "step"   :  0.001,
		  "format": "%1.3f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "halation",
		  "text": "Halation amplitude",
		  "default":  0.0,
		  "max"    :  0.3,
		  "min"    :  0.0,
		  "step"   :  0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "blurwidth",
		  "text": "Halation blur width",
		  "default":  0.0,
		  "max"    :  4.0,
		  "min"    :  0.1,
		  "step"   :  0.1,
		  "format": "%1.1f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "curvature",
		  "text": "Enable curvature",
		  "default":  0.0,
		  "max"    :  1.0,
		  "min"    :  0.0,
		  "step"   :  1.0,
		  "format": "%1.0f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "R",
		  "text": "Radius of curvature",
		  "default":  3.5,
		  "max"    : 10.0,
		  "min"    :  0.5,
		  "step"   :  0.1,
		  "format": "%1.1f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "d",
		  "text": "Distance to screen",
		  "default":  2.0,
		  "max"    : 10.0,
		  "min"    :  0.1,
		  "step"   :  0.1,
		  "format": "%1.1f",
		  "screen": "raster" },
		{ "type": "vec2",
		  "name": "angle",
		  "text": "Tilt ",
		  "default": [ 0.0,-0.05 ],
		  "max"    : [ 1.0, 1.0 ],
		  "min"    : [-1.0,-1.0 ],
		  "step"   : 0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "cornersize",
		  "text": "Rounded corner size",
		  "default":  0.00,
		  "max"    :  0.10,
		  "min"    :  0.00,
		  "step"   :  0.01,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "cornersmooth",
		  "text": "Border smoothness",
		  "default":  1000,
		  "max"    :  2000,
		  "min"    :  100,
		  "step"   :  100,
		  "format": "%1.0f",
		  "screen": "raster" },
		{ "type": "vec2",
		  "name": "overscan",
		  "text": "Overscan ",
		  "default": [ 1.0, 1.0 ],
		  "max"    : [ 1.2, 1.2 ],
		  "min"    : [ 0.8, 0.8 ],
		  "step"   : 0.02,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "CRTgamma",
		  "text": "Gamma of simulated CRT",
		  "default":  2.4,
		  "max"    :  4.0,
		  "min"    :  0.7,
		  "step"   :  0.05,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "float",
		  "name": "monitorgamma",
		  "text": "Gamma of output display",
		  "default":  2.2,
		  "max"    :  4.0,
		  "min"    :  0.7,
		  "step"   :  0.05,
		  "format": "%1.2f",
		  "screen": "raster" },
		{ "type": "vec2",
		  "name": "aspect",
		  "text": "Aspect ratio ",
		  "default": [ 1.0, 0.75 ],
		  "max"    : [ 1.0, 1.0 ],
		  "min"    : [ 0.3, 0.3 ],
		  "step"   : 0.01,
		  "format": "%1.2f",
		  "screen": "raster" }
	],
	"targets": [
		{   "name": "internal1",
			"mode": "guest"
		},
		{   "name": "internal2",
			"mode": "guest"
		},
		{   "name": "mipmap",
			"mode": "guest"
		},
		{   "name": "blur",
			"mode": "guest"
		},
		{   "name": "phosphor",
			"mode": "guest"
		}

	],
	"passes": [
		{
			"effect": "crt-geom/mipmap8",
			"name": "mipmap",
			"uniforms": [
				{ "uniform": "u_smooth",   "slider": "rasterbloom_smooth" }
			],
			"input": [
				{ "sampler": "s_screen",   "target": "internal2" },
				{ "sampler": "s_mipmap",   "target": "mipmap" }
			],
			"output": "mipmap"
		},
		{
			"effect": "crt-geom/phosphor_apply",
			"name": "phosphor apply",
			"uniforms": [
				{ "uniform": "u_phosphor_power",    "slider": "phosphor_power" },
				{ "uniform": "u_phosphor_amplitude","slider": "phosphor_amplitude" },
				{ "uniform": "u_gamma",             "slider": "CRTgamma" }
			],
			"input": [
				{ "sampler": "s_screen",   "target": "screen" },
				{ "sampler": "s_phosphor", "target": "phosphor" }
			],
			"output": "internal1"
		},
		{
			"effect": "crt-geom/phosphor_update",
			"name": "phosphor update",
			"uniforms": [
				{ "uniform": "u_phosphor_power",    "slider": "phosphor_power" },
				{ "uniform": "u_phosphor_amplitude","slider": "phosphor_amplitude" },
				{ "uniform": "u_gamma",             "slider": "CRTgamma" }
			],
			"input": [
				{ "sampler": "s_screen",   "target": "screen" },
				{ "sampler": "s_phosphor", "target": "phosphor" }
			],
			"output": "phosphor"
		},
		{
			"effect": "crt-geom/gaussx",
			"name": "Gaussian blur x",
			"uniforms": [
				{ "uniform": "u_width", "slider": "blurwidth" },
				{ "uniform": "u_aspect","slider": "aspect" },
				{ "uniform": "u_gamma", "slider": "CRTgamma" }
			],
			"input": [
				{ "sampler": "s_tex",   "target": "internal1" }
			],
			"output": "internal2"
		},
		{
			"effect": "crt-geom/gaussy",
			"name": "Gaussian blur y",
			"uniforms": [
				{ "uniform": "u_width", "slider": "blurwidth" },
				{ "uniform": "u_aspect","slider": "aspect" },
				{ "uniform": "u_gamma", "slider": "CRTgamma" }
			],
			"input": [
				{ "sampler": "s_tex",   "target": "internal2" }
			],
			"output": "blur"
		},
		{
			"effect": "crt-geom/crt-geom-deluxe",
			"name": "CRT",
			"uniforms": [
				{ "uniform": "curvature",   "slider": "curvature" },
				{ "uniform": "R",           "slider": "R" },
				{ "uniform": "d",           "slider": "d" },
				{ "uniform": "angle",       "slider": "angle" },
				{ "uniform": "cornersize",  "slider": "cornersize" },
				{ "uniform": "cornersmooth","slider": "cornersmooth" },
				{ "uniform": "overscan",    "slider": "overscan" },
				{ "uniform": "aspect",      "slider": "aspect" },
				{ "uniform": "CRTgamma",    "slider": "CRTgamma" },
				{ "uniform": "monitorgamma","slider": "monitorgamma" },
				{ "uniform": "aperture_strength","slider": "aperture_strength" },
				{ "uniform": "halation",    "slider": "halation" }
			],

			"input": [
				{ "sampler": "mpass_texture", "target": "internal1" },
				{ "sampler": "mask_texture", "texture": "bgfx/chains/crt-geom/aperture_2_4_rgb.png", "selection": "Shadow mask" },
				{ "sampler": "blur_texture", "target": "blur" },
				{ "sampler": "mipmap_texture", "target": "mipmap" }
			],

			"output": "output"
		}
	]
}
