{
    "name": "CRT-geom",
    "author": "cgwg",
    "sliders": [
        { "type": "float",
          "name": "aperture_strength",
          "text": "Shadow mask strength",
          "default":  0.4,
          "max"    :  1.0,
          "min"    :  0.0,
          "step"   :  0.05,
          "format": "%1.2f",
          "screen": "raster" },
        { "type": "float",
          "name": "phosphor_power",
          "text": "Phosphor decay power",
          "default":  1.2,
          "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": "halation",
          "text": "Halation amplitude",
          "default":  0.1,
          "max"    :  0.3,
          "min"    :  0.0,
          "step"   :  0.01,
          "format": "%1.2f",
          "screen": "raster" },
        { "type": "float",
          "name": "blurwidth",
          "text": "Halation blur width",
          "default":  2.0,
          "max"    :  4.0,
          "min"    :  0.1,
          "step"   :  0.1,
          "format": "%1.1f",
          "screen": "raster" },
        { "type": "float",
          "name": "curvature",
          "text": "Enable curvature",
          "default":  1.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.0 ],
	  "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.01,
          "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": "blur",
			"mode": "guest"
		},
		{	"name": "phosphor",
			"mode": "guest"
		}

	],
	"passes": [
		{
			"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_1_2_bgr.png", "selection": "Shadow mask" },
			    { "sampler": "blur_texture", "target": "blur" }
			],

			"output": "output"
		}
	]
}
