Skip to content

Commit

Permalink
Added crt-geom and crt-geom-deluxe shaders for bgfx.
Browse files Browse the repository at this point in the history
This includes several aperture grille / shadow mask patterns. Note that these are all designed to be used on a display with RGB subpixel order, and may thus suffer if rotated or used with a BGR display.
  • Loading branch information
cgwg committed Jul 3, 2016
1 parent f487ca3 commit 3697bd8
Show file tree
Hide file tree
Showing 88 changed files with 1,306 additions and 0 deletions.
Binary file added artwork/bgfx/chains/crt-geom/aperture_1_2_bgr.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/aperture_1_4_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/aperture_2_4_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/aperture_2_5_bgr.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/aperture_3_6_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/delta_1_2x1_bgr.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/delta_1_4x1_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/delta_2_4x1_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/delta_2_4x2_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/none.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/slot_2_4x4_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/slot_2_5x4_bgr.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added artwork/bgfx/chains/crt-geom/slot_3_7x6_rgb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
238 changes: 238 additions & 0 deletions bgfx/chains/crt-geom-deluxe.json
@@ -0,0 +1,238 @@
{
"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.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.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"
}
]
}
134 changes: 134 additions & 0 deletions bgfx/chains/crt-geom.json
@@ -0,0 +1,134 @@
{
"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": "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.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.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": [

],
"passes": [
{
"effect": "crt-geom/crt-geom",
"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" }
],

"input": [
{ "sampler": "mpass_texture", "target": "screen" },
{ "sampler": "mask_texture", "texture": "bgfx/chains/crt-geom/aperture_1_2_bgr.png", "selection": "Shadow mask" }
],

"output": "output"
}
]
}

0 comments on commit 3697bd8

Please sign in to comment.