mirror of
https://github.com/libretro/slang-shaders.git
synced 2024-06-01 19:08:24 -04:00
update gdv-mini-ultra, port convergence (#515)
* Update crt-gdv-mini-ultra.slang * Add files via upload * Add files via upload * Update ntsc-simple.slang
This commit is contained in:
parent
3645faa915
commit
58ea67a83b
|
@ -46,10 +46,10 @@ layout(push_constant) uniform Push
|
|||
float gamma_out_green;
|
||||
float gamma_out_blue;
|
||||
float vignette;
|
||||
float mono;
|
||||
float R;
|
||||
float G;
|
||||
float B;
|
||||
float gdv_mono;
|
||||
float gdv_R;
|
||||
float gdv_G;
|
||||
float gdv_B;
|
||||
float thres;
|
||||
} params;
|
||||
|
||||
|
@ -91,10 +91,10 @@ layout(push_constant) uniform Push
|
|||
#pragma parameter warpX "CurvatureX (default 0.03)" 0.0 0.0 0.25 0.01
|
||||
#define warpX params.warpX
|
||||
|
||||
#pragma parameter warpY "CurvatureY (default 0.04)" 0.0 0.0 0.25 0.01
|
||||
#pragma parameter warpY "CurvatureY (default 0.04)" 0.05 0.0 0.25 0.01
|
||||
#define warpY params.warpY
|
||||
|
||||
#pragma parameter vignette "Vignette On/Off" 0.0 0.0 1.0 1.0
|
||||
#pragma parameter vignette "Vignette On/Off" 1.0 0.0 1.0 1.0
|
||||
#define vignette params.vignette
|
||||
|
||||
#pragma parameter gamma_out_red " Gamma out Red" 2.2 1.0 4.0 0.1
|
||||
|
@ -112,21 +112,21 @@ layout(push_constant) uniform Push
|
|||
#pragma parameter sat " Saturation adjustment" 1.2 0.0 2.0 0.05
|
||||
#define sat params.sat
|
||||
|
||||
#pragma parameter glow "Glow Strength" 0.2 0.0 1.0 0.01
|
||||
#pragma parameter glow "Glow Strength" 0.35 0.0 1.0 0.01
|
||||
#define glow params.glow
|
||||
|
||||
|
||||
#pragma parameter mono "Mono Display On/Off" 0.0 0.0 1.0 1.0
|
||||
#define mono params.mono
|
||||
#pragma parameter gdv_mono "Mono Display On/Off" 0.0 0.0 1.0 1.0
|
||||
#define gdv_mono params.gdv_mono
|
||||
|
||||
#pragma parameter R "Mono Red/Channel" 1.0 0.0 2.0 0.01
|
||||
#define R params.R
|
||||
#pragma parameter gdv_R "Mono Red/Channel" 1.0 0.0 2.0 0.01
|
||||
#define gdv_R params.gdv_R
|
||||
|
||||
#pragma parameter G "Mono Green/Channel" 1.0 0.0 2.0 0.01
|
||||
#define G params.G
|
||||
#pragma parameter gdv_G "Mono Green/Channel" 1.0 0.0 2.0 0.01
|
||||
#define gdv_G params.gdv_G
|
||||
|
||||
#pragma parameter B "Mono Blue/Channel" 1.0 0.0 2.0 0.01
|
||||
#define B params.B
|
||||
#pragma parameter gdv_B "Mono Blue/Channel" 1.0 0.0 2.0 0.01
|
||||
#define gdv_B params.gdv_B
|
||||
|
||||
|
||||
|
||||
|
@ -492,10 +492,10 @@ void main()
|
|||
color*= vign(lum);
|
||||
|
||||
|
||||
if (mono == 1.0)
|
||||
if (gdv_mono == 1.0)
|
||||
{
|
||||
vec3 col1 = toGrayscale (color);
|
||||
vec3 c = vec3(R, G, B);
|
||||
vec3 c = vec3(gdv_R, gdv_G, gdv_B);
|
||||
color = colorize (col1, c);
|
||||
}
|
||||
|
||||
|
|
5
misc/convergence.slangp
Normal file
5
misc/convergence.slangp
Normal file
|
@ -0,0 +1,5 @@
|
|||
shaders = 1
|
||||
|
||||
shader0 = shaders/convergence.slang
|
||||
scale_type0 = source
|
||||
filter_linear0 = true
|
71
misc/shaders/convergence.slang
Normal file
71
misc/shaders/convergence.slang
Normal file
|
@ -0,0 +1,71 @@
|
|||
#version 450
|
||||
|
||||
/*
|
||||
convergence pass DariusG 2023.
|
||||
Run in Linear, BEFORE actual shader pass
|
||||
*/
|
||||
|
||||
layout(push_constant) uniform Push
|
||||
{
|
||||
vec4 SourceSize;
|
||||
vec4 OriginalSize;
|
||||
vec4 OutputSize;
|
||||
float C_STR,Rx,Ry,Gx,Gy,Bx,By;
|
||||
} params;
|
||||
|
||||
#pragma parameter C_STR "Convergence Overall Strength" 0.5 0.0 0.5 0.05
|
||||
#pragma parameter Rx "Convergence Red Horiz." 0.9 -5.0 5.0 0.05
|
||||
#pragma parameter Ry "Convergence Red Vert." 0.05 -5.0 5.0 0.05
|
||||
#pragma parameter Gx "Convergence Green Horiz." -0.95 -5.0 5.0 0.05
|
||||
#pragma parameter Gy "Convergence Green Vert." -0.05 -5.0 5.0 0.05
|
||||
#pragma parameter Bx "Convergence Blue Horiz." 0.9 -5.0 5.0 0.05
|
||||
#pragma parameter By "Convergence Blue Vert." 0.05 -5.0 5.0 0.05
|
||||
|
||||
#define C_STR params.C_STR
|
||||
#define Rx params.Rx
|
||||
#define Ry params.Ry
|
||||
#define Gx params.Gx
|
||||
#define Gy params.Gy
|
||||
#define Bx params.Bx
|
||||
#define By params.By
|
||||
|
||||
layout(std140, set = 0, binding = 0) uniform UBO
|
||||
{
|
||||
mat4 MVP;
|
||||
vec4 FinalViewportSize;
|
||||
} global;
|
||||
|
||||
#pragma stage vertex
|
||||
layout(location = 0) in vec4 Position;
|
||||
layout(location = 1) in vec2 TexCoord;
|
||||
layout(location = 0) out vec2 vTexCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = global.MVP * Position;
|
||||
vTexCoord = TexCoord;
|
||||
|
||||
}
|
||||
|
||||
#pragma stage fragment
|
||||
layout(location = 0) in vec2 vTexCoord;
|
||||
layout(location = 0) out vec4 FragColor;
|
||||
layout(set = 0, binding = 1) uniform sampler2D Source;
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 dx = vec2(params.SourceSize.z,0.0);
|
||||
vec2 dy = vec2(0.0,params.SourceSize.w);
|
||||
vec2 pos = vTexCoord;
|
||||
vec3 res0 = texture(Source,pos).rgb;
|
||||
float resr = texture(Source,pos + dx*Rx + dy*Ry).r;
|
||||
float resg = texture(Source,pos + dx*Gx + dy*Gy).g;
|
||||
float resb = texture(Source,pos + dx*Bx + dy*By).b;
|
||||
|
||||
vec3 res = vec3( res0.r*(1.0-C_STR) + resr*C_STR,
|
||||
res0.g*(1.0-C_STR) + resg*C_STR,
|
||||
res0.b*(1.0-C_STR) + resb*C_STR
|
||||
);
|
||||
FragColor.rgb = res;
|
||||
}
|
|
@ -15,7 +15,7 @@ layout(push_constant) uniform Push
|
|||
|
||||
|
||||
#pragma parameter CHR_BLUR "CHROMA RESOLUTION" 2.3 1.0 10.0 0.1
|
||||
#pragma parameter L_BLUR "LUMA RESOLUTION" 10.5 10.0 20.0 0.5
|
||||
#pragma parameter L_BLUR "LUMA RESOLUTION" 10.5 6.0 20.0 0.5
|
||||
#pragma parameter CHROMA_SATURATION "CHROMA SATURATION" 5.0 0.0 15.0 0.1
|
||||
#pragma parameter BRIGHTNESS "LUMA BRIGHTNESS" 0.55 0.0 2.0 0.01
|
||||
#pragma parameter IHUE "I SHIFT (blue to orange)" 0.0 -1.0 1.0 0.01
|
||||
|
|
Loading…
Reference in a new issue