summaryrefslogtreecommitdiffstatshomepage
path: root/bgfx
diff options
context:
space:
mode:
author cgwg <cgwg@users.noreply.github.com>2021-01-23 05:04:48 +0100
committer GitHub <noreply@github.com>2021-01-23 15:04:48 +1100
commit42a2b0006b087a9d5253ff8120dd1585485f12e7 (patch)
treee095b7b3f9dac7d0c42395bc6169945cd932f256 /bgfx
parent47359c7285b3b430bdb871ea16ceca8f6273bb24 (diff)
bgfx: Added lcd-grid shader. (#7691)
Note that this is currently only compiled for GLSL.
Diffstat (limited to 'bgfx')
-rw-r--r--bgfx/chains/lcd-grid.json148
-rw-r--r--bgfx/effects/lcd-grid/lcd-grid.json37
-rw-r--r--bgfx/effects/lcd-grid/persistence.json27
-rw-r--r--bgfx/shaders/glsl/chains/lcd-grid/fs_lcd-grid.binbin0 -> 10731 bytes
-rw-r--r--bgfx/shaders/glsl/chains/lcd-grid/fs_persistence.binbin0 -> 319 bytes
-rw-r--r--bgfx/shaders/glsl/chains/lcd-grid/vs_lcd-grid.binbin0 -> 381 bytes
-rw-r--r--bgfx/shaders/glsl/chains/lcd-grid/vs_persistence.binbin0 -> 381 bytes
7 files changed, 212 insertions, 0 deletions
diff --git a/bgfx/chains/lcd-grid.json b/bgfx/chains/lcd-grid.json
new file mode 100644
index 00000000000..d2a94049e7b
--- /dev/null
+++ b/bgfx/chains/lcd-grid.json
@@ -0,0 +1,148 @@
+{
+ "name": "lcd-grid",
+ "author": "cgwg",
+ "sliders": [
+ { "type": "float",
+ "name": "persistence",
+ "text": "Persistence",
+ "default": 0.1,
+ "max" : 0.99,
+ "min" : 0.0,
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "float",
+ "name": "gain",
+ "text": "Gain",
+ "default": 1.0,
+ "max" : 2.0,
+ "min" : -1.0,
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "float",
+ "name": "blacklevel",
+ "text": "Black level",
+ "default": 0.0,
+ "max" : 2.0,
+ "min" : -1.0,
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "float",
+ "name": "ambient",
+ "text": "Ambient",
+ "default": 0.0,
+ "max" : 2.0,
+ "min" : -1.0,
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "float",
+ "name": "LCDgamma",
+ "text": "Gamma of simulated LCD",
+ "default": 2.2,
+ "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": "lcd" },
+ { "type": "intenum",
+ "name": "BGR",
+ "text": "Subpixel layout",
+ "default": 0,
+ "max" : 1,
+ "min" : 0,
+ "step" : 1,
+ "format": "%s",
+ "screen": "lcd",
+ "strings": [ "RGB", "BGR" ] },
+ { "type": "vec2",
+ "name": "subpixsize",
+ "text": "Subpixel size ",
+ "default": [0.5,0.63],
+ "max" : [1.0,1.0],
+ "min" : [0.1,0.1],
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "color",
+ "name": "rsubpix",
+ "text": "R subpixel ",
+ "default": [1.0,0.0,0.0],
+ "max" : [1.0,1.0,1.0],
+ "min" : [0.0,0.0,0.0],
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "color",
+ "name": "gsubpix",
+ "text": "G subpixel ",
+ "default": [0.0,1.0,0.0],
+ "max" : [1.0,1.0,1.0],
+ "min" : [0.0,0.0,0.0],
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" },
+ { "type": "color",
+ "name": "bsubpix",
+ "text": "B subpixel ",
+ "default": [0.0,0.0,1.0],
+ "max" : [1.0,1.0,1.0],
+ "min" : [0.0,0.0,0.0],
+ "step" : 0.01,
+ "format": "%1.2f",
+ "screen": "lcd" }
+ ],
+ "targets": [
+ { "name": "motionblur",
+ "mode": "guest"
+ }
+ ],
+ "passes": [
+ {
+ "effect": "lcd-grid/persistence",
+ "name": "LCD persistence",
+ "uniforms": [
+ { "uniform": "u_persistence", "slider": "persistence" }
+ ],
+ "input": [
+ { "sampler": "s_screen", "target": "screen" },
+ { "sampler": "s_motionblur","target": "motionblur" }
+ ],
+ "output": "motionblur"
+ },
+ {
+ "effect": "lcd-grid/lcd-grid",
+ "applytint": true,
+ "name": "LCD",
+ "uniforms": [
+ { "uniform": "u_rsubpix", "slider": "rsubpix" },
+ { "uniform": "u_gsubpix", "slider": "gsubpix" },
+ { "uniform": "u_bsubpix", "slider": "bsubpix" },
+ { "uniform": "u_gain", "slider": "gain" },
+ { "uniform": "u_blacklevel","slider": "blacklevel" },
+ { "uniform": "u_ambient", "slider": "ambient" },
+ { "uniform": "u_LCDgamma", "slider": "LCDgamma" },
+ { "uniform": "u_monitorgamma","slider": "monitorgamma" },
+ { "uniform": "u_subpixsize","slider": "subpixsize" },
+ { "uniform": "u_BGR", "slider": "BGR" }
+ ],
+
+ "input": [
+ { "sampler": "s_tex", "target": "motionblur" }
+ ],
+
+ "output": "output"
+ }
+ ]
+}
diff --git a/bgfx/effects/lcd-grid/lcd-grid.json b/bgfx/effects/lcd-grid/lcd-grid.json
new file mode 100644
index 00000000000..4526a101aaf
--- /dev/null
+++ b/bgfx/effects/lcd-grid/lcd-grid.json
@@ -0,0 +1,37 @@
+{
+ "blend": {
+ "equation": "add",
+ "srcColor": "1",
+ "dstColor": "0",
+ "srcAlpha": "1",
+ "dstAlpha": "0"
+ },
+ "depth": {
+ "function": "always",
+ "writeenable": false
+ },
+ "cull": {
+ "mode": "none"
+ },
+ "write": {
+ "rgb": true,
+ "alpha": true
+ },
+ "vertex": "chains/lcd-grid/vs_lcd-grid",
+ "fragment": "chains/lcd-grid/fs_lcd-grid",
+ "uniforms": [
+ { "name": "s_tex", "type": "int", "values": [ 0 ] },
+ { "name": "u_tex_size0", "type": "vec4", "values": [ 1.0, 1.0, 0.0, 0.0 ] },
+ { "name": "u_quad_dims", "type": "vec4", "values": [ 1.0, 1.0, 0.0, 0.0 ] },
+ { "name": "u_rsubpix", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] },
+ { "name": "u_gsubpix", "type": "vec4", "values": [ 0.0, 1.0, 0.0, 0.0 ] },
+ { "name": "u_bsubpix", "type": "vec4", "values": [ 0.0, 0.0, 1.0, 0.0 ] },
+ { "name": "u_gain", "type": "vec4", "values": [ 1.0, 0.0, 0.0, 0.0 ] },
+ { "name": "u_blacklevel","type": "vec4", "values": [ 0.0, 0.0, 0.0, 0.0 ] },
+ { "name": "u_ambient", "type": "vec4", "values": [ 0.0, 0.0, 0.0, 0.0 ] },
+ { "name": "u_BGR", "type": "vec4", "values": [ 0.0, 0.0, 0.0, 0.0 ] },
+ { "name": "u_subpixsize","type": "vec4", "values": [ 0.5, 0.63, 0.0, 0.0 ] },
+ { "name": "u_LCDgamma", "type": "vec4", "values": [ 2.2, 0.0, 0.0, 0.0 ] },
+ { "name": "u_monitorgamma","type":"vec4","values": [ 2.2, 0.0, 0.0, 0.0 ] }
+ ]
+}
diff --git a/bgfx/effects/lcd-grid/persistence.json b/bgfx/effects/lcd-grid/persistence.json
new file mode 100644
index 00000000000..27c8109c8c1
--- /dev/null
+++ b/bgfx/effects/lcd-grid/persistence.json
@@ -0,0 +1,27 @@
+{
+ "blend": {
+ "equation": "add",
+ "srcColor": "1",
+ "dstColor": "0",
+ "srcAlpha": "1",
+ "dstAlpha": "0"
+ },
+ "depth": {
+ "function": "always",
+ "writeenable": false
+ },
+ "cull": {
+ "mode": "none"
+ },
+ "write": {
+ "rgb": true,
+ "alpha": true
+ },
+ "vertex": "chains/lcd-grid/vs_persistence",
+ "fragment": "chains/lcd-grid/fs_persistence",
+ "uniforms": [
+ { "name": "s_screen", "type": "int", "values": [ 0 ] },
+ { "name": "s_motionblur","type": "int", "values": [ 1 ] },
+ { "name": "u_persistence","type":"vec4", "values": [ 0.0, 0.0, 0.0, 0.0 ] }
+ ]
+}
diff --git a/bgfx/shaders/glsl/chains/lcd-grid/fs_lcd-grid.bin b/bgfx/shaders/glsl/chains/lcd-grid/fs_lcd-grid.bin
new file mode 100644
index 00000000000..f832cf34166
--- /dev/null
+++ b/bgfx/shaders/glsl/chains/lcd-grid/fs_lcd-grid.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/chains/lcd-grid/fs_persistence.bin b/bgfx/shaders/glsl/chains/lcd-grid/fs_persistence.bin
new file mode 100644
index 00000000000..a9b2161043a
--- /dev/null
+++ b/bgfx/shaders/glsl/chains/lcd-grid/fs_persistence.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/chains/lcd-grid/vs_lcd-grid.bin b/bgfx/shaders/glsl/chains/lcd-grid/vs_lcd-grid.bin
new file mode 100644
index 00000000000..f09fdcd6fd8
--- /dev/null
+++ b/bgfx/shaders/glsl/chains/lcd-grid/vs_lcd-grid.bin
Binary files differ
diff --git a/bgfx/shaders/glsl/chains/lcd-grid/vs_persistence.bin b/bgfx/shaders/glsl/chains/lcd-grid/vs_persistence.bin
new file mode 100644
index 00000000000..f09fdcd6fd8
--- /dev/null
+++ b/bgfx/shaders/glsl/chains/lcd-grid/vs_persistence.bin
Binary files differ