mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2025-02-23 18:17:44 +11:00
Update handheld color shaders to version 8.
This commit is contained in:
parent
8009dea4d7
commit
93afc2f8fe
10 changed files with 247 additions and 30 deletions
27
handheld/lcd-grid-v2-gba-color.slangp
Normal file
27
handheld/lcd-grid-v2-gba-color.slangp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
shaders = "2"
|
||||||
|
|
||||||
|
shader0 = "shaders/color/gba-color.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "viewport"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
32
handheld/lcd-grid-v2-nds-color-motionblur.slangp
Normal file
32
handheld/lcd-grid-v2-nds-color-motionblur.slangp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
shaders = "3"
|
||||||
|
|
||||||
|
shader0 = "../motionblur/shaders/motionblur-simple.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/color/nds-color.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "source"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
shader2 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear2 = "false"
|
||||||
|
scale_type2 = "viewport"
|
||||||
|
scale2 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
27
handheld/lcd-grid-v2-nds-color.slangp
Normal file
27
handheld/lcd-grid-v2-nds-color.slangp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
shaders = "2"
|
||||||
|
|
||||||
|
shader0 = "shaders/color/nds-color.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "viewport"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
32
handheld/lcd-grid-v2-psp-color-motionblur.slangp
Normal file
32
handheld/lcd-grid-v2-psp-color-motionblur.slangp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
shaders = "3"
|
||||||
|
|
||||||
|
shader0 = "../motionblur/shaders/motionblur-simple.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/color/psp-color.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "source"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
shader2 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear2 = "false"
|
||||||
|
scale_type2 = "viewport"
|
||||||
|
scale2 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
27
handheld/lcd-grid-v2-psp-color.slangp
Normal file
27
handheld/lcd-grid-v2-psp-color.slangp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
shaders = "2"
|
||||||
|
|
||||||
|
shader0 = "shaders/color/psp-color.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "viewport"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
32
handheld/lcd-grid-v2-vba-color-motionblur.slangp
Normal file
32
handheld/lcd-grid-v2-vba-color-motionblur.slangp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
shaders = "3"
|
||||||
|
|
||||||
|
shader0 = "../motionblur/shaders/motionblur-simple.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/color/vba-color.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "source"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
shader2 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear2 = "false"
|
||||||
|
scale_type2 = "viewport"
|
||||||
|
scale2 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
27
handheld/lcd-grid-v2-vba-color.slangp
Normal file
27
handheld/lcd-grid-v2-vba-color.slangp
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
shaders = "2"
|
||||||
|
|
||||||
|
shader0 = "shaders/color/vba-color.slang"
|
||||||
|
filter_linear0 = "false"
|
||||||
|
scale_type0 = "source"
|
||||||
|
scale0 = "1.0"
|
||||||
|
|
||||||
|
shader1 = "shaders/lcd-cgwg/lcd-grid-v2.slang"
|
||||||
|
filter_linear1 = "false"
|
||||||
|
scale_type1 = "viewport"
|
||||||
|
scale1 = "1.0"
|
||||||
|
|
||||||
|
parameters = "RSUBPIX_R;RSUBPIX_G;RSUBPIX_B;GSUBPIX_R;GSUBPIX_G;GSUBPIX_B;BSUBPIX_R;BSUBPIX_G;BSUBPIX_B;gain;gamma;blacklevel;ambient;BGR"
|
||||||
|
RSUBPIX_R = "1.000000"
|
||||||
|
RSUBPIX_G = "0.000000"
|
||||||
|
RSUBPIX_B = "0.000000"
|
||||||
|
GSUBPIX_R = "0.000000"
|
||||||
|
GSUBPIX_G = "1.000000"
|
||||||
|
GSUBPIX_B = "0.000000"
|
||||||
|
BSUBPIX_R = "0.000000"
|
||||||
|
BSUBPIX_G = "0.000000"
|
||||||
|
BSUBPIX_B = "1.000000"
|
||||||
|
gain = "1.250000"
|
||||||
|
gamma = "3.000000"
|
||||||
|
blacklevel = "0.050000"
|
||||||
|
ambient = "0.000000"
|
||||||
|
BGR = "1.000000"
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
layout(push_constant) uniform Push
|
layout(push_constant) uniform Push
|
||||||
{
|
{
|
||||||
float display_gamma;
|
float darken_screen;
|
||||||
} params;
|
} params;
|
||||||
|
|
||||||
layout(std140, set = 0, binding = 0) uniform UBO
|
layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
|
@ -21,22 +21,23 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
*/
|
*/
|
||||||
// Shader that replicates the LCD dynamics from a GameBoy Advance
|
// Shader that replicates the LCD dynamics from a GameBoy Advance
|
||||||
|
|
||||||
#pragma parameter display_gamma "Light Intensity" 1.8 1.0 2.5 0.05
|
#pragma parameter darken_screen "Darken Screen" 0.5 0.0 1.0 0.05
|
||||||
|
|
||||||
#define target_gamma 2.2
|
#define target_gamma 2.2
|
||||||
|
#define display_gamma 2.5
|
||||||
#define sat 1.0
|
#define sat 1.0
|
||||||
#define lum 1.0
|
#define lum 0.99
|
||||||
#define contrast 1.0
|
#define contrast 1.0
|
||||||
#define blr 0.0
|
#define blr 0.0
|
||||||
#define blg 0.0
|
#define blg 0.0
|
||||||
#define blb 0.0
|
#define blb 0.0
|
||||||
#define r 0.84
|
#define r 0.84
|
||||||
#define g 0.67
|
#define g 0.67
|
||||||
#define b 0.74
|
#define b 0.73
|
||||||
#define rg 0.08
|
#define rg 0.09
|
||||||
#define rb 0.17
|
#define rb 0.15
|
||||||
#define gr 0.16
|
#define gr 0.18
|
||||||
#define gb 0.09
|
#define gb 0.10
|
||||||
#define br 0.0
|
#define br 0.0
|
||||||
#define bg 0.26
|
#define bg 0.26
|
||||||
#define overscan_percent_x 0.0
|
#define overscan_percent_x 0.0
|
||||||
|
@ -60,7 +61,7 @@ layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 screen = pow(texture(Source, vTexCoord), vec4(target_gamma)).rgba;
|
vec4 screen = pow(texture(Source, vTexCoord), vec4(target_gamma + params.darken_screen)).rgba;
|
||||||
vec4 avglum = vec4(0.5);
|
vec4 avglum = vec4(0.5);
|
||||||
screen = mix(screen, avglum, (1.0 - contrast));
|
screen = mix(screen, avglum, (1.0 - contrast));
|
||||||
|
|
||||||
|
@ -77,5 +78,5 @@ mat4 adjust = mat4((1.0 - sat) * 0.3086 + sat, (1.0 - sat) * 0.3086, (1.0 - sat)
|
||||||
color *= adjust;
|
color *= adjust;
|
||||||
screen = clamp(screen * lum, 0.0, 1.0);
|
screen = clamp(screen * lum, 0.0, 1.0);
|
||||||
screen = color * screen;
|
screen = color * screen;
|
||||||
FragColor = pow(screen, vec4(1.0 / params.display_gamma));
|
FragColor = pow(screen, vec4(1.0 / display_gamma + (params.darken_screen / 8)));
|
||||||
}
|
}
|
|
@ -1,5 +1,10 @@
|
||||||
#version 450
|
#version 450
|
||||||
|
|
||||||
|
layout(push_constant) uniform Push
|
||||||
|
{
|
||||||
|
float target_gamma;
|
||||||
|
} params;
|
||||||
|
|
||||||
layout(std140, set = 0, binding = 0) uniform UBO
|
layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
{
|
{
|
||||||
mat4 MVP;
|
mat4 MVP;
|
||||||
|
@ -14,25 +19,26 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
Author: hunterk
|
Author: hunterk
|
||||||
License: Public domain
|
License: Public domain
|
||||||
*/
|
*/
|
||||||
// Shader that replicates the LCD dynamics from an Original Nintendo DS
|
// Shader that replicates the LCD dynamics from a Nintendo DS Phat
|
||||||
|
|
||||||
#define display_gamma 2.25
|
#pragma parameter target_gamma "Gamma Mode" 2.0 2.0 2.4 0.2
|
||||||
#define target_gamma 2.2
|
|
||||||
#define sat 1.0
|
#define display_gamma 2.20
|
||||||
|
#define sat 1.01
|
||||||
#define lum 1.0
|
#define lum 1.0
|
||||||
#define contrast 1.0
|
#define contrast 1.0
|
||||||
#define blr 0.0
|
#define blr 0.0
|
||||||
#define blg 0.0
|
#define blg 0.0
|
||||||
#define blb 0.0
|
#define blb 0.0
|
||||||
#define r 0.77
|
#define r 0.74
|
||||||
#define g 0.65
|
#define g 0.63
|
||||||
#define b 0.74
|
#define b 0.74
|
||||||
#define rg 0.09
|
#define rg 0.10
|
||||||
#define rb 0.09
|
#define rb 0.09
|
||||||
#define gr 0.23
|
#define gr 0.26
|
||||||
#define gb 0.11
|
#define gb 0.11
|
||||||
#define br 0.0
|
#define br 0.0
|
||||||
#define bg 0.26
|
#define bg 0.27
|
||||||
#define overscan_percent_x 0.0
|
#define overscan_percent_x 0.0
|
||||||
#define overscan_percent_y 0.0
|
#define overscan_percent_y 0.0
|
||||||
|
|
||||||
|
@ -54,7 +60,7 @@ layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 screen = pow(texture(Source, vTexCoord), vec4(target_gamma)).rgba;
|
vec4 screen = pow(texture(Source, vTexCoord), vec4(params.target_gamma)).rgba;
|
||||||
vec4 avglum = vec4(0.5);
|
vec4 avglum = vec4(0.5);
|
||||||
screen = mix(screen, avglum, (1.0 - contrast));
|
screen = mix(screen, avglum, (1.0 - contrast));
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
#version 450
|
#version 450
|
||||||
|
|
||||||
|
layout(push_constant) uniform Push
|
||||||
|
{
|
||||||
|
float target_gamma;
|
||||||
|
} params;
|
||||||
|
|
||||||
layout(std140, set = 0, binding = 0) uniform UBO
|
layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
{
|
{
|
||||||
mat4 MVP;
|
mat4 MVP;
|
||||||
|
@ -14,25 +19,26 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
Author: hunterk
|
Author: hunterk
|
||||||
License: Public domain
|
License: Public domain
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Shader that replicates the LCD dynamics from PSP 1000 and PSP 2000
|
// Shader that replicates the LCD dynamics from PSP 1000 and PSP 2000
|
||||||
|
#pragma parameter target_gamma "Gamma Mode" 2.2 2.2 2.4 0.2
|
||||||
|
|
||||||
#define display_gamma 2.2
|
#define display_gamma 2.2
|
||||||
#define target_gamma 2.21
|
|
||||||
#define sat 1.0
|
#define sat 1.0
|
||||||
#define lum 1.0
|
#define lum 1.0
|
||||||
#define contrast 1.0
|
#define contrast 1.0
|
||||||
#define blr 0.0
|
#define blr 0.0
|
||||||
#define blg 0.0
|
#define blg 0.0
|
||||||
#define blb 0.0
|
#define blb 0.0
|
||||||
#define r 0.97
|
#define r 0.95
|
||||||
#define g 0.75
|
#define g 0.80
|
||||||
#define b 0.995
|
#define b 0.98
|
||||||
#define rg 0.01
|
#define rg 0.03
|
||||||
#define rb 0.0025
|
#define rb 0.01
|
||||||
#define gr 0.005
|
#define gr 0.02
|
||||||
#define gb 0.0025
|
#define gb 0.01
|
||||||
#define br 0.0
|
#define br 0.0
|
||||||
#define bg 0.24
|
#define bg 0.17
|
||||||
#define overscan_percent_x 0.0
|
#define overscan_percent_x 0.0
|
||||||
#define overscan_percent_y 0.0
|
#define overscan_percent_y 0.0
|
||||||
|
|
||||||
|
@ -54,7 +60,7 @@ layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 screen = pow(texture(Source, vTexCoord), vec4(target_gamma)).rgba;
|
vec4 screen = pow(texture(Source, vTexCoord), vec4(params.target_gamma)).rgba;
|
||||||
vec4 avglum = vec4(0.5);
|
vec4 avglum = vec4(0.5);
|
||||||
screen = mix(screen, avglum, (1.0 - contrast));
|
screen = mix(screen, avglum, (1.0 - contrast));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue