From 22b273800ea95f8ea96d1cc16d27693a4b5b6d03 Mon Sep 17 00:00:00 2001 From: Hyllian Date: Mon, 8 Jul 2024 04:22:09 -0300 Subject: [PATCH] Add geom-overlay and fix other shaders. (#3245) - Add geom-overlay.fx shader + psx.jpg texture; - Add crt-consumer.fx and delete crt-consumer.glsl; - Fix corner parameters from crt-geom.fx and geom.fx; - Fix coords from super-xbr. Now it works with more aspect ratio options. --- .../shaders/dolphinfx/crt/CRT-CONSUMER.glsl | 780 ----------------- .../reshade/Shaders/crt/crt-consumer.fx | 797 ++++++++++++++++++ .../shaders/reshade/Shaders/crt/crt-geom.fx | 79 +- .../Shaders/edge-smoothing/super-xbr.fx | 4 +- .../shaders/reshade/Shaders/misc/geom.fx | 32 +- .../reshade/Shaders/overlay/geom-overlay.fx | 415 +++++++++ .../overlay/OVERLAY_CREDITS_AND_LICENSE.md | 15 + .../shaders/reshade/Textures/overlay/psx.jpg | Bin 0 -> 487622 bytes 8 files changed, 1283 insertions(+), 839 deletions(-) delete mode 100644 data/resources/shaders/dolphinfx/crt/CRT-CONSUMER.glsl create mode 100644 data/resources/shaders/reshade/Shaders/crt/crt-consumer.fx create mode 100644 data/resources/shaders/reshade/Shaders/overlay/geom-overlay.fx create mode 100644 data/resources/shaders/reshade/Textures/overlay/OVERLAY_CREDITS_AND_LICENSE.md create mode 100644 data/resources/shaders/reshade/Textures/overlay/psx.jpg diff --git a/data/resources/shaders/dolphinfx/crt/CRT-CONSUMER.glsl b/data/resources/shaders/dolphinfx/crt/CRT-CONSUMER.glsl deleted file mode 100644 index 0eeb87076..000000000 --- a/data/resources/shaders/dolphinfx/crt/CRT-CONSUMER.glsl +++ /dev/null @@ -1,780 +0,0 @@ -// Crt-Consumer - -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - - -/* -[configuration] - - -[OptionRangeFloat] -GUIName = Pre-Scale Sharpening -OptionName = PRE_SCALE -MinValue = 1.0 -MaxValue = 4.0 -StepAmount = 0.1 -DefaultValue = 1.5 - -[OptionRangeFloat] -GUIName = Convergence X -OptionName = blurx -MinValue = -4.0 -MaxValue = 4.0 -StepAmount = 0.05 -DefaultValue = 0.25 - -[OptionRangeFloat] -GUIName = Convergence Y -OptionName = blury -MinValue = -4.0 -MaxValue = 4.0 -StepAmount = 0.05 -DefaultValue = -0.1 - -[OptionRangeFloat] -GUIName = Curvature X -OptionName = warpx -MinValue = 0.0 -MaxValue = 0.12 -StepAmount = 0.01 -DefaultValue = 0.03 - -[OptionRangeFloat] -GUIName = Curvature Y -OptionName = warpy -MinValue = 0.0 -MaxValue = 0.12 -StepAmount = 0.01 -DefaultValue = 0.04 - -[OptionRangeFloat] -GUIName = Corner size -OptionName = corner -MinValue = 0.0 -MaxValue = 0.10 -StepAmount = 0.01 -DefaultValue = 0.03 - -[OptionRangeFloat] -GUIName = Border Smoothness -OptionName = smoothness -MinValue = 100.0 -MaxValue = 600.0 -StepAmount = 5.0 -DefaultValue = 400.0 - -[OptionRangeFloat] -GUIName = Interlacing Toggle -OptionName = inter -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 1.0 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Interlacing Downscale Scanlines -OptionName = Downscale -MinValue = 1.0 -MaxValue = 8.0 -StepAmount = 1. -DefaultValue = 2.0 - -[OptionRangeFloat] -GUIName = Beam low -OptionName = scanlow -MinValue = 1.0 -MaxValue = 15.0 -StepAmount = 1.0 -DefaultValue = 6.0 - -[OptionRangeFloat] -GUIName = Beam high -OptionName = scanhigh -MinValue = 1.0 -MaxValue = 15.0 -StepAmount = 1.0 -DefaultValue = 8.0 - -[OptionRangeFloat] -GUIName = Scanlines dark -OptionName = beamlow -MinValue = 0.5 -MaxValue = 2.5 -StepAmount = 0.0 -DefaultValue = 1.45 - -[OptionRangeFloat] -GUIName = Scanlines bright -OptionName = beamhigh -MinValue = 0.5 -MaxValue = 2.5 -StepAmount = 0.0 -DefaultValue = 1.05 - -[OptionRangeFloat] -GUIName = Protect White On Masks -OptionName = preserve -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 0.01 -DefaultValue = 0.98 - -[OptionRangeFloat] -GUIName = Bright boost dark pixels -OptionName = brightboost1 -MinValue = 0.0 -MaxValue = 3.0 -StepAmount = 0.05 -DefaultValue = 1.25 - -[OptionRangeFloat] -GUIName = Bright boost bright pixels -OptionName = brightboost2 -MinValue = 0.0 -MaxValue = 3.0 -StepAmount = 0.05 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Glow pixels per axis -OptionName = glow -MinValue = 1.0 -MaxValue = 6.0 -StepAmount = 1.0 -DefaultValue = 3.0 - -[OptionRangeFloat] -GUIName = Glow quality -OptionName = quality -MinValue = 0.25 -MaxValue = 4.0 -StepAmount = 0.05 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Glow intensity -OptionName = glow_str -MinValue = 0.0001 -MaxValue = 2.0 -StepAmount = 0.05 -DefaultValue = 0.3 - -[OptionRangeFloat] -GUIName = Add Noise -OptionName = nois -MinValue = 0.0 -MaxValue = 32.0 -StepAmount = 1.0 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Post Brightness -OptionName = postbr -MinValue = 0.0 -MaxValue = 2.5 -StepAmount = 0.02 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Palette Fixes. Sega, PUAE Atari ST dark colors -OptionName = palette_fix -MinValue = 0.0 -MaxValue = 2.0 -StepAmount = 1.0 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Mask Type -OptionName = Shadowmask -MinValue = -1.0 -MaxValue = 8.0 -StepAmount = 1. -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Mask Size -OptionName = masksize -MinValue = 1.0 -MaxValue = 2.0 -StepAmount = 1.0 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Mask dark -OptionName = MaskDark -MinValue = 0.0 -MaxValue = 2.0 -StepAmount = 0.1 -DefaultValue = 0.2 - -[OptionRangeFloat] -GUIName = Mask light -OptionName = MaskLight -MinValue = 0.0 -MaxValue = 2.0 -StepAmount = 0.1 -DefaultValue = 1.5 - -[OptionRangeFloat] -GUIName = Slot Mask Strength -OptionName = slotmask -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 0.05 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Slot Mask Width -OptionName = slotwidth -MinValue = 1.0 -MaxValue = 6.0 -StepAmount = 0.5 -DefaultValue = 2.0 - -[OptionRangeFloat] -GUIName = Slot Mask Height: 2x1 or 4x1 -OptionName = double_slot -MinValue = 1.0 -MaxValue = 2.0 -StepAmount = 1.0 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Slot Mask Size -OptionName = slotms -MinValue = 1.0 -MaxValue = 2.0 -StepAmount = 1.0 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Gamma Out -OptionName = GAMMA_OUT -MinValue = 0.0 -MaxValue = 4.0 -StepAmount = 0.05 -DefaultValue = 2.25 - -[OptionRangeFloat] -GUIName = Saturation -OptionName = sat -MinValue = 0.0 -MaxValue = 2.0 -StepAmount = 0.05 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Contrast, 1.0:Off -OptionName = contrast -MinValue = 0.00 -MaxValue = 2.00 -StepAmount = 0.05 -DefaultValue = 1.0 - -[OptionRangeFloat] -GUIName = Color Temperature % -OptionName = WP -MinValue = -100.0 -MaxValue = 100.0 -StepAmount = 5. -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Red-Green Tint -OptionName = rg -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Red-Blue Tint -OptionName = rb -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Green-Red Tint -OptionName = gr -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Green-Blue Tint -OptionName = gb -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Blue-Red Tint -OptionName = br -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Blue-Green Tint -OptionName = bg -MinValue = -1.0 -MaxValue = 1.0 -StepAmount = 0.005 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Vignette On/Off -OptionName = vignette -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 1.0 -DefaultValue = 0.0 - -[OptionRangeFloat] -GUIName = Vignette Power -OptionName = vpower -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 0.01 -DefaultValue = 0.15 - -[OptionRangeFloat] -GUIName = Vignette strength -OptionName = vstr -MinValue = 0.0 -MaxValue = 50.0 -StepAmount = 1.0 -DefaultValue = 40.0 - -[OptionRangeFloat] -GUIName = Switch off shader -OptionName = alloff -MinValue = 0.0 -MaxValue = 1.0 -StepAmount = 1.0 -DefaultValue = 0.0 - - -[/configuration] -*/ - -#define iTime (float(GetTime())/2.0) -#define iTimer (float(GetTime())/60.0) - -#define SourceSize (vec4(1.0/GetInvNativePixelSize(),GetInvNativePixelSize())) - -vec2 Warp(vec2 pos) -{ - pos = pos * 2.0 - 1.0; - pos *= vec2(1.0 + (pos.y * pos.y) * warpx, 1.0 + (pos.x * pos.x) * warpy); - return pos * 0.5 + 0.5; -} - -float sw(float y, float l) -{ - float beam = mix(scanlow, scanhigh, y); - float scan = mix(beamlow, beamhigh, l); - float ex = y * scan; - return exp2(-beam * ex * ex); -} - -vec3 mask(vec2 x, vec3 col, float l) -{ - x = floor(x / masksize); - - if (Shadowmask == 0.0) - { - float m = fract(x.x * 0.4999); - if (m < 0.4999) return vec3(1.0, MaskDark, 1.0); - else return vec3(MaskDark, 1.0, MaskDark); - } - - else if (Shadowmask == 1.0) - { - vec3 Mask = vec3(MaskDark, MaskDark, MaskDark); - float line = MaskLight; - float odd = 0.0; - - if (fract(x.x / 6.0) < 0.5) odd = 1.0; - if (fract((x.y + odd) / 2.0) < 0.5) line = MaskDark; - - float m = fract(x.x / 3.0); - if (m < 0.333) Mask.b = MaskLight; - else if (m < 0.666) Mask.g = MaskLight; - else Mask.r = MaskLight; - - Mask *= line; - return Mask; - } - - else if (Shadowmask == 2.0) - { - float m = fract(x.x*0.3333); - if (m < 0.3333) return vec3(MaskDark, MaskDark, MaskLight); - if (m < 0.6666) return vec3(MaskDark, MaskLight, MaskDark); - else return vec3(MaskLight, MaskDark, MaskDark); - } - - if (Shadowmask == 3.0) - { - float m = fract(x.x * 0.5); - if (m < 0.5) return vec3(1.0, 1.0, 1.0); - else return vec3(MaskDark, MaskDark, MaskDark); - } - - else if (Shadowmask == 4.0) - { - vec3 Mask = vec3(col.rgb); - float line = MaskLight; - float odd = 0.0; - - if (fract(x.x / 4.0) < 0.5) odd = 1.0; - if (fract((x.y + odd) / 2.0) < 0.5) line = MaskDark; - - float m = fract(x.x / 2.0); - if (m < 0.5) { Mask.r = 1.0; Mask.b = 1.0; } - else Mask.g = 1.0; - - Mask *= line; - return Mask; - } - - else if (Shadowmask == 5.0) - { - vec3 Mask = vec3(1.0, 1.0, 1.0); - - if (fract(x.x / 4.0) < 0.5) - { - if (fract(x.y / 3.0) < 0.666) - { - if (fract(x.x / 2.0) < 0.5) Mask = vec3(1.0, MaskDark, 1.0); - else Mask = vec3(MaskDark, 1.0, MaskDark); - } - else Mask *= l; - } - else if (fract(x.x / 4.0) >= 0.5) - { - if (fract(x.y / 3.0) > 0.333) - { - if (fract(x.x / 2.0) < 0.5) Mask = vec3(1.0, MaskDark, 1.0); - else Mask = vec3(MaskDark, 1.0, MaskDark); - } - else Mask *= l; - } - - return Mask; - } - - else if (Shadowmask == 6.0) - { - vec3 Mask = vec3(MaskDark, MaskDark, MaskDark); - if (fract(x.x / 6.0) < 0.5) - { - if (fract(x.y / 4.0) < 0.75) - { - if (fract(x.x / 3.0) < 0.3333) Mask.r = MaskLight; - else if (fract(x.x / 3.0) < 0.6666) Mask.g = MaskLight; - else Mask.b = MaskLight; - } - else Mask * l * 0.9; - } - else if (fract(x.x / 6.0) >= 0.5) - { - if (fract(x.y / 4.0) >= 0.5 || fract(x.y / 4.0) < 0.25) - { - if (fract(x.x / 3.0) < 0.3333) Mask.r = MaskLight; - else if (fract(x.x / 3.0) < 0.6666) Mask.g = MaskLight; - else Mask.b = MaskLight; - } - else Mask * l * 0.9; - } - return Mask; - } - - else if (Shadowmask == 7.0) - { - float m = fract(x.x * 0.3333); - - if (m < 0.3333) return vec3(MaskDark, MaskLight, MaskLight * col.b); //Cyan - if (m < 0.6666) return vec3(MaskLight * col.r, MaskDark, MaskLight); //Magenta - else return vec3(MaskLight, MaskLight * col.g, MaskDark); //Yellow - } - - else if (Shadowmask == 8.0) - { - vec3 Mask = vec3(MaskDark, MaskDark, MaskDark); - - float bright = MaskLight; - float left = 0.0; - if (fract(x.x / 6.0) < 0.5) left = 1.0; - - float m = fract(x.x / 3.0); - if (m < 0.333) Mask.b = 0.9; - else if (m < 0.666) Mask.g = 0.9; - else Mask.r = 0.9; - - if (mod(x.y, 2.0) == 1.0 && left == 1.0 || mod(x.y, 2.0) == 0.0 && left == 0.0) - Mask *= bright; - - return Mask; - } - - else return vec3(1.0, 1.0, 1.0); -} - -float SlotMask(vec2 pos, vec3 c) -{ - if (slotmask == 0.0) return 1.0; - - pos = floor(pos / slotms); - float mx = pow(max(max(c.r, c.g), c.b), 1.33); - float mlen = slotwidth * 2.0; - float px = fract(pos.x / mlen); - float py = floor(fract(pos.y / (2.0 * double_slot)) * 2.0 * double_slot); - float slot_dark = mix(1.0 - slotmask, 1.0 - 0.80 * slotmask, mx); - float slot = 1.0 + 0.7 * slotmask * (1.0 - mx); - - if (py == 0.0 && px < 0.5) slot = slot_dark; - else if (py == double_slot && px >= 0.5) slot = slot_dark; - - return slot; -} - -mat4 contrastMatrix(float contrast) -{ - float t = (1.0 - contrast) / 2.0; - - return mat4(contrast, 0, 0, 0, - 0, contrast, 0, 0, - 0, 0, contrast, 0, - t, t, t, 1); -} - -mat3 vign(float l) -{ -// vec2 vpos = vTexCoord; - vec2 vpos = GetCoordinates(); - vpos *= 1.0 - vpos.xy; - - float vig = vpos.x * vpos.y * vstr; - vig = min(pow(vig, vpower), 1.0); - if (vignette == 0.0) vig = 1.0; - - return mat3(vig, 0, 0, - 0, vig, 0, - 0, 0, vig); -} - -vec3 saturation(vec3 textureColor) -{ - float luminance = length(textureColor.rgb) * 0.5775; - - vec3 luminanceWeighting = vec3(0.4, 0.5, 0.1); - if (luminance < 0.5) luminanceWeighting.rgb = (luminanceWeighting.rgb * luminanceWeighting.rgb) - + (luminanceWeighting.rgb * luminanceWeighting.rgb); - - luminance = dot(textureColor.rgb, luminanceWeighting); - vec3 greyScaleColor = vec3(luminance, luminance, luminance); - - vec3 res = vec3(mix(greyScaleColor, textureColor.rgb, sat)); - return res; -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////// - -vec3 glow0 (vec2 texcoord, vec3 col) -{ - - // the more quality, the smaller the offset and better quality, less visible glow too - vec2 size = SourceSize.zw/quality; - - vec3 c01; - vec3 sum = vec3(0.0); - - // glow = pixels per axis, the more the slower! - - for (float x = -glow; x <= glow; x = x+1.0) - { - - // multiply texture, the more far away the less pronounced - float factor = 1.0/glow; - for (float y = -glow; y <= glow; y = y+1.0) - { - - vec2 offset = vec2(x, y) * size; - - c01 = SampleLocation(texcoord + offset).rgb*factor; c01 = c01*c01; - - sum += c01; - } - } - - return (glow_str * sum / (glow * glow )) ; -} - -/////////////////////////////////////////////////////////////////////////////////////////////////////////// - -float noise(vec2 co) -{ - return fract(sin(iTimer * dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); -} - -float corner0(vec2 coord) -{ - coord = (coord - vec2(0.5, 0.5)) * 1.0 + vec2(0.5, 0.5); - coord = min(coord, vec2(1.0, 1.0) - coord) * vec2(1.0, SourceSize.y / SourceSize.x); - - vec2 cdist = vec2(corner, corner); - coord = (cdist - min(coord, cdist)); - float dist = sqrt(dot(coord, coord)); - - return clamp((cdist.x - dist) * smoothness, 0.0, 1.0); -} - -const mat3 D65_to_XYZ = mat3( - 0.4306190, 0.2220379, 0.0201853, - 0.3415419, 0.7066384, 0.1295504, - 0.1783091, 0.0713236, 0.9390944); - -const mat3 XYZ_to_D65 = mat3( - 3.0628971, -0.9692660, 0.0678775, - -1.3931791, 1.8760108, -0.2288548, - -0.4757517, 0.0415560, 1.0693490); - -const mat3 D50_to_XYZ = mat3( - 0.4552773, 0.2323025, 0.0145457, - 0.3675500, 0.7077956, 0.1049154, - 0.1413926, 0.0599019, 0.7057489); - -const mat3 XYZ_to_D50 = mat3( - 2.9603944, -0.9787684, 0.0844874, - -1.4678519, 1.9161415, -0.2545973, - -0.4685105, 0.0334540, 1.4216174); - -void main() -{ - vec2 vTexCoord = GetCoordinates(); - vec2 pos = Warp(vTexCoord.xy); - vec2 tex_size = 1.0 / GetInvNativePixelSize(); - vec2 OutputSize = GetWindowSize(); - - - vec2 pC4 = (pos + 0.5/tex_size); - vec2 fp = fract(pos * tex_size); - if (inter < 0.5 && tex_size.y > 400.0){ fp.y = fract(pos.y * tex_size.y*1.0/Downscale);} - - vec4 res = vec4(1.0); - - if (alloff == 1.0) - res = SampleLocation(pC4); - else - { - - vec2 texel = pos * tex_size; - vec2 texel_floored = floor(texel); - - float scale = PRE_SCALE; - float region_range = 0.5 - 0.5 / scale; - - // Figure out where in the texel to sample to get correct pre-scaled bilinear. - // Uses the hardware bilinear interpolator to avoid having to sample 4 times manually. - - vec2 center_dist = fp - 0.5; - - vec2 fpp = (center_dist - clamp(center_dist, -region_range, region_range)) * scale + 0.5; - - vec2 mod_texel = texel_floored + fpp; - vec2 coords = mod_texel / SourceSize.xy; - - vec3 sample1 = SampleLocation(vec2(coords.x + blurx*SourceSize.z, coords.y - blury*SourceSize.w)).rgb; - vec3 sample2 = SampleLocation(coords).rgb; - vec3 sample3 = SampleLocation(vec2(coords.x - blurx*SourceSize.z, coords.y + blury*SourceSize.w )).rgb; - - vec3 color = vec3(sample1.r * 0.5 + sample2.r * 0.5, - sample1.g * 0.25 + sample2.g * 0.5 + sample3.g * 0.25, - sample2.b * 0.5 + sample3.b * 0.5); - if (palette_fix != 0.0) - { - if (palette_fix == 1.0) color = color* 1.0667; - else if (palette_fix == 2.0) color = color * 2.0; - } - - //COLOR TEMPERATURE FROM GUEST.R-DR.VENOM - if (WP != 0.0) - { - vec3 warmer = D50_to_XYZ * color; - warmer = XYZ_to_D65 * warmer; - - vec3 cooler = D65_to_XYZ * color; - cooler = XYZ_to_D50 * cooler; - - float m = abs(WP) / 100.0; - vec3 comp = (WP < 0.0) ? cooler : warmer; - comp = clamp(comp, 0.0, 1.0); - - color = vec3(mix(color, comp, m)); - } - - mat3 hue = mat3 (1., rg, rb, //red tint - gr, 1., gb, //green tint - br, bg, 1.); //blue tint - - color = hue * color; - - color = (2.0*pow(color,vec3(2.8))) - pow(color,vec3(3.6)); - - float lum = color.r * 0.3 + color.g * 0.6 + color.b * 0.1; - - float f = fract(fp.y -0.5); - - if (inter > 0.5 && tex_size.y > 400.0) color = color; - else - {color = color * sw(f,lum) + color * sw (1.0-f,lum);} - - float lum1 = color.r * 0.3 + color.g * 0.6 + color.b * 0.1; - - - color *= mix(mask((vTexCoord * OutputSize.xy), color,lum1), vec3(1.0), lum1*preserve); - - - if (slotmask != 0.0) color *= SlotMask((vTexCoord * OutputSize.xy) * 1.0001, color); - - color *= mix(brightboost1, brightboost2, max(max(color.r, color.g), color.b)); - - - - color = pow(color,vec3(1.0 / GAMMA_OUT)); - if (glow_str != 0.0) color += glow0(coords,color); - - if (sat != 1.0) color = saturation(color); - if (corner != 0.0) color *= corner0(pC4); - if (nois != 0.0) color *= 1.0 + noise(coords * 2.0) / nois; - - color *= mix(1.0, postbr, lum); - res = vec4(color, 1.0); - if (contrast != 1.0) res = contrastMatrix(contrast) * res; - if (inter > 0.5 && SourceSize.y > 400.0 && fract(iTime) < 0.5) res = res * 0.95; - res.rgb *= vign(lum); - - } - - SetOutput(res); -} diff --git a/data/resources/shaders/reshade/Shaders/crt/crt-consumer.fx b/data/resources/shaders/reshade/Shaders/crt/crt-consumer.fx new file mode 100644 index 000000000..25a61de2d --- /dev/null +++ b/data/resources/shaders/reshade/Shaders/crt/crt-consumer.fx @@ -0,0 +1,797 @@ +#include "ReShade.fxh" + + +/* + CRT-Consumer + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + + + +uniform float PRE_SCALE < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 4.0; + ui_step = 0.1; + ui_label = "Pre-Scale Sharpening"; +> = 1.5; + +uniform float blurx < + ui_type = "drag"; + ui_min = -4.0; + ui_max = 4.0; + ui_step = 0.05; + ui_label = "Convergence X"; +> = 0.25; + +uniform float blury < + ui_type = "drag"; + ui_min = -4.0; + ui_max = 4.0; + ui_step = 0.05; + ui_label = "Convergence Y"; +> = -0.1; + +uniform float warpx < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 0.12; + ui_step = 0.01; + ui_label = " Curvature X"; +> = 0.03; + +uniform float warpy < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 0.12; + ui_step = 0.01; + ui_label = " Curvature Y"; +> = 0.04; + +uniform float corner < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 0.10; + ui_step = 0.01; + ui_label = " Corner size"; +> = 0.03; + +uniform float smoothness < + ui_type = "drag"; + ui_min = 100.0; + ui_max = 600.0; + ui_step = 5.0; + ui_label = " Border Smoothness"; +> = 400.0; + +uniform bool inter < + ui_type = "radio"; + ui_label = "Interlacing Toggle"; +> = true; + +uniform float Downscale < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 8.0; + ui_step = 1.; + ui_label = "Interlacing Downscale Scanlines"; +> = 2.0; + +uniform float scanlow < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 15.0; + ui_step = 1.0; + ui_label = "Beam low"; +> = 6.0; + +uniform float scanhigh < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 15.0; + ui_step = 1.0; + ui_label = "Beam high"; +> = 8.0; + +uniform float beamlow < + ui_type = "drag"; + ui_min = 0.5; + ui_max = 2.5; + ui_step = 0.0; + ui_label = "Scanlines dark"; +> = 1.45; + +uniform float beamhigh < + ui_type = "drag"; + ui_min = 0.5; + ui_max = 2.5; + ui_step = 0.0; + ui_label = "Scanlines bright"; +> = 1.05; + +uniform float preserve < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 1.0; + ui_step = 0.01; + ui_label = "Protect White On Masks"; +> = 0.98; + +uniform float brightboost1 < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 3.0; + ui_step = 0.05; + ui_label = "Bright boost dark pixels"; +> = 1.25; + +uniform float brightboost2 < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 3.0; + ui_step = 0.05; + ui_label = "Bright boost bright pixels"; +> = 1.0; + +uniform float glow < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 6.0; + ui_step = 1.0; + ui_label = "Glow pixels per axis"; +> = 3.0; + +uniform float quality < + ui_type = "drag"; + ui_min = 0.25; + ui_max = 4.0; + ui_step = 0.05; + ui_label = "Glow quality"; +> = 1.0; + +uniform float glow_str < + ui_type = "drag"; + ui_min = 0.0001; + ui_max = 2.0; + ui_step = 0.05; + ui_label = "Glow intensity"; +> = 0.3; + +uniform float nois < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 32.0; + ui_step = 1.0; + ui_label = "Add Noise"; +> = 0.0; + +uniform float postbr < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 2.5; + ui_step = 0.02; + ui_label = "Post Brightness"; +> = 1.0; + +uniform float palette_fix < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 2.0; + ui_step = 1.0; + ui_label = "Palette Fixes. Sega, PUAE Atari ST dark colors"; +> = 0.0; + +uniform float Shadowmask < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 8.0; + ui_step = 1.; + ui_label = "Mask Type"; +> = 0.0; + +uniform float masksize < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 2.0; + ui_step = 1.0; + ui_label = "Mask Size"; +> = 1.0; + +uniform float MaskDark < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 2.0; + ui_step = 0.1; + ui_label = "Mask dark"; +> = 0.2; + +uniform float MaskLight < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 2.0; + ui_step = 0.1; + ui_label = "Mask light"; +> = 1.5; + +uniform float slotmask < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 1.0; + ui_step = 0.05; + ui_label = "Slot Mask Strength"; +> = 0.0; + +uniform float slotwidth < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 6.0; + ui_step = 0.5; + ui_label = "Slot Mask Width"; +> = 2.0; + +uniform float double_slot < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 2.0; + ui_step = 1.0; + ui_label = "Slot Mask Height: 2x1 or 4x1"; +> = 1.0; + +uniform float slotms < + ui_type = "drag"; + ui_min = 1.0; + ui_max = 2.0; + ui_step = 1.0; + ui_label = "Slot Mask Size"; +> = 1.0; + +uniform float GAMMA_OUT < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 4.0; + ui_step = 0.05; + ui_label = "Gamma Out"; +> = 2.25; + +uniform float sat < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 2.0; + ui_step = 0.05; + ui_label = "Saturation"; +> = 1.0; + +uniform float contrast < + ui_type = "drag"; + ui_min = 0.00; + ui_max = 2.00; + ui_step = 0.05; + ui_label = "Contrast, 1.0:Off"; +> = 1.0; + +uniform float WP < + ui_type = "drag"; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 5.; + ui_label = "Color Temperature %"; +> = 0.0; + +uniform float rg < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Red-Green Tint"; +> = 0.0; + +uniform float rb < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Red-Blue Tint"; +> = 0.0; + +uniform float gr < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Green-Red Tint"; +> = 0.0; + +uniform float gb < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Green-Blue Tint"; +> = 0.0; + +uniform float br < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Blue-Red Tint"; +> = 0.0; + +uniform float bg < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Blue-Green Tint"; +> = 0.0; + +uniform bool vignette < + ui_type = "radio"; + ui_label = "Vignette On/Off"; +> = false; + +uniform float vpower < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 1.0; + ui_step = 0.01; + ui_label = "Vignette Power"; +> = 0.15; + +uniform float vstr < + ui_type = "drag"; + ui_min = 0.0; + ui_max = 50.0; + ui_step = 1.0; + ui_label = "Vignette strength"; +> = 40.0; + +uniform bool alloff < + ui_type = "radio"; + ui_label = "Switch off shader"; +> = false; + + +uniform float FrameCount < source = "framecount"; >; +uniform float2 BufferToViewportRatio < source = "buffer_to_viewport_ratio"; >; +uniform float2 NormalizedNativePixelSize < source = "normalized_native_pixel_size"; >; +uniform float2 ViewportSize < source = "viewportsize"; >; +uniform float ViewportX < source = "viewportx"; >; +uniform float ViewportY < source = "viewporty"; >; +uniform float ViewportWidth < source = "viewportwidth"; >; +uniform float ViewportHeight < source = "viewportheight"; >; +uniform float2 ViewportOffset < source = "viewportoffset"; >; +uniform float BufferWidth < source = "bufferwidth"; >; +uniform float BufferHeight < source = "bufferheight"; >; +uniform float NativeWidth < source = "nativewidth"; >; +uniform float NativeHeight < source = "nativeheight"; >; +uniform float InternalWidth < source = "internalwidth"; >; +uniform float InternalHeight < source = "internalheight"; >; + +sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=CLAMP;AddressV=CLAMP;AddressW=CLAMP;MagFilter=POINT;MinFilter=POINT;}; + +#define iTime (float(FrameCount)/2.0) +#define iTimer (float(FrameCount)/60.0) + +#define SourceSize (float4(1.0/NormalizedNativePixelSize,NormalizedNativePixelSize)) +#define OutputSize (ViewportSize*BufferToViewportRatio) + +float2 Warp(float2 pos) +{ + pos = pos * 2.0 - 1.0; + pos *= float2(1.0 + (pos.y * pos.y) * warpx, 1.0 + (pos.x * pos.x) * warpy); + return pos * 0.5 + 0.5; +} + +float sw(float y, float l) +{ + float beam = lerp(scanlow, scanhigh, y); + float scan = lerp(beamlow, beamhigh, l); + float ex = y * scan; + return exp2(-beam * ex * ex); +} + +float3 mask(float2 x, float3 col, float l) +{ + x = floor(x / masksize); + + if (Shadowmask == 0.0) + { + float m = frac(x.x * 0.4999); + if (m < 0.4999) return float3(1.0, MaskDark, 1.0); + else return float3(MaskDark, 1.0, MaskDark); + } + + else if (Shadowmask == 1.0) + { + float3 Mask = float3(MaskDark, MaskDark, MaskDark); + float line = MaskLight; + float odd = 0.0; + + if (frac(x.x / 6.0) < 0.5) odd = 1.0; + if (frac((x.y + odd) / 2.0) < 0.5) line = MaskDark; + + float m = frac(x.x / 3.0); + if (m < 0.333) Mask.b = MaskLight; + else if (m < 0.666) Mask.g = MaskLight; + else Mask.r = MaskLight; + + Mask *= line; + return Mask; + } + + else if (Shadowmask == 2.0) + { + float m = frac(x.x*0.3333); + if (m < 0.3333) return float3(MaskDark, MaskDark, MaskLight); + if (m < 0.6666) return float3(MaskDark, MaskLight, MaskDark); + else return float3(MaskLight, MaskDark, MaskDark); + } + + if (Shadowmask == 3.0) + { + float m = frac(x.x * 0.5); + if (m < 0.5) return float3(1.0, 1.0, 1.0); + else return float3(MaskDark, MaskDark, MaskDark); + } + + else if (Shadowmask == 4.0) + { + float3 Mask = float3(col.rgb); + float line = MaskLight; + float odd = 0.0; + + if (frac(x.x / 4.0) < 0.5) odd = 1.0; + if (frac((x.y + odd) / 2.0) < 0.5) line = MaskDark; + + float m = frac(x.x / 2.0); + if (m < 0.5) { Mask.r = 1.0; Mask.b = 1.0; } + else Mask.g = 1.0; + + Mask *= line; + return Mask; + } + + else if (Shadowmask == 5.0) + { + float3 Mask = float3(1.0, 1.0, 1.0); + + if (frac(x.x / 4.0) < 0.5) + { + if (frac(x.y / 3.0) < 0.666) + { + if (frac(x.x / 2.0) < 0.5) Mask = float3(1.0, MaskDark, 1.0); + else Mask = float3(MaskDark, 1.0, MaskDark); + } + else Mask *= l; + } + else if (frac(x.x / 4.0) >= 0.5) + { + if (frac(x.y / 3.0) > 0.333) + { + if (frac(x.x / 2.0) < 0.5) Mask = float3(1.0, MaskDark, 1.0); + else Mask = float3(MaskDark, 1.0, MaskDark); + } + else Mask *= l; + } + + return Mask; + } + + else if (Shadowmask == 6.0) + { + float3 Mask = float3(MaskDark, MaskDark, MaskDark); + if (frac(x.x / 6.0) < 0.5) + { + if (frac(x.y / 4.0) < 0.75) + { + if (frac(x.x / 3.0) < 0.3333) Mask.r = MaskLight; + else if (frac(x.x / 3.0) < 0.6666) Mask.g = MaskLight; + else Mask.b = MaskLight; + } + else Mask * l * 0.9; + } + else if (frac(x.x / 6.0) >= 0.5) + { + if (frac(x.y / 4.0) >= 0.5 || frac(x.y / 4.0) < 0.25) + { + if (frac(x.x / 3.0) < 0.3333) Mask.r = MaskLight; + else if (frac(x.x / 3.0) < 0.6666) Mask.g = MaskLight; + else Mask.b = MaskLight; + } + else Mask * l * 0.9; + } + return Mask; + } + + else if (Shadowmask == 7.0) + { + float m = frac(x.x * 0.3333); + + if (m < 0.3333) return float3(MaskDark, MaskLight, MaskLight * col.b); //Cyan + if (m < 0.6666) return float3(MaskLight * col.r, MaskDark, MaskLight); //Magenta + else return float3(MaskLight, MaskLight * col.g, MaskDark); //Yellow + } + + else if (Shadowmask == 8.0) + { + float3 Mask = float3(MaskDark, MaskDark, MaskDark); + + float bright = MaskLight; + float left = 0.0; + if (frac(x.x / 6.0) < 0.5) left = 1.0; + + float m = frac(x.x / 3.0); + if (m < 0.333) Mask.b = 0.9; + else if (m < 0.666) Mask.g = 0.9; + else Mask.r = 0.9; + + if ((x.y % 2.0) == 1.0 && left == 1.0 || (x.y % 2.0) == 0.0 && left == 0.0) + Mask *= bright; + + return Mask; + } + + else return float3(1.0, 1.0, 1.0); +} + +float SlotMask(float2 pos, float3 c) +{ + if (slotmask == 0.0) return 1.0; + + pos = floor(pos / slotms); + float mx = pow(max(max(c.r, c.g), c.b), 1.33); + float mlen = slotwidth * 2.0; + float px = frac(pos.x / mlen); + float py = floor(frac(pos.y / (2.0 * double_slot)) * 2.0 * double_slot); + float slot_dark = lerp(1.0 - slotmask, 1.0 - 0.80 * slotmask, mx); + float slot = 1.0 + 0.7 * slotmask * (1.0 - mx); + + if (py == 0.0 && px < 0.5) slot = slot_dark; + else if (py == double_slot && px >= 0.5) slot = slot_dark; + + return slot; +} + +float4x4 contrastMatrix(float contrast) +{ + float t = (1.0 - contrast) / 2.0; + + return float4x4(contrast, 0, 0, 0, + 0, contrast, 0, 0, + 0, 0, contrast, 0, + t, t, t, 1); +} + +float3x3 vign(float l, float2 tex) +{ + float2 vpos = tex; + vpos *= 1.0 - vpos.xy; + + float vig = vpos.x * vpos.y * vstr; + vig = min(pow(vig, vpower), 1.0); + if (vignette == false) vig = 1.0; + + return float3x3(vig, 0, 0, + 0, vig, 0, + 0, 0, vig); +} + +float3 saturation(float3 textureColor) +{ + float luminance = length(textureColor.rgb) * 0.5775; + + float3 luminanceWeighting = float3(0.4, 0.5, 0.1); + if (luminance < 0.5) luminanceWeighting.rgb = (luminanceWeighting.rgb * luminanceWeighting.rgb) + + (luminanceWeighting.rgb * luminanceWeighting.rgb); + + luminance = dot(textureColor.rgb, luminanceWeighting); + float3 greyScaleColor = float3(luminance, luminance, luminance); + + float3 res = float3(lerp(greyScaleColor, textureColor.rgb, sat)); + return res; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////////////// + +float3 glow0 (float2 texcoord, float3 col) +{ + + // the more quality, the smaller the offset and better quality, less visible glow too + float2 size = SourceSize.zw/quality; + + float3 c01; + float3 sum = float3(0.0, 0.0, 0.0); + + // glow = pixels per axis, the more the slower! + + for (float x = -glow; x <= glow; x = x+1.0) + { + + // multiply texture, the more far away the less pronounced + float factor = 1.0/glow; + for (float y = -glow; y <= glow; y = y+1.0) + { + + float2 offset = float2(x, y) * size; + + c01 = tex2D(sBackBuffer, texcoord + offset).rgb*factor; c01 = c01*c01; + + sum += c01; + } + } + + return (glow_str * sum / (glow * glow )) ; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////////////// + +float noise(float2 co) +{ + return frac(sin(iTimer * dot(co.xy ,float2(12.9898,78.233))) * 43758.5453); +} + +float corner0(float2 coord) +{ + coord = (coord - float2(0.5, 0.5)) * 1.0 + float2(0.5, 0.5); + coord = min(coord, float2(1.0, 1.0) - coord) * float2(1.0, SourceSize.y / SourceSize.x); + + float2 cdist = float2(corner, corner); + coord = (cdist - min(coord, cdist)); + float dist = sqrt(dot(coord, coord)); + + return clamp((cdist.x - dist) * smoothness, 0.0, 1.0); +} + +static const float3x3 D65_to_XYZ = float3x3( + 0.4306190, 0.2220379, 0.0201853, + 0.3415419, 0.7066384, 0.1295504, + 0.1783091, 0.0713236, 0.9390944); + +static const float3x3 XYZ_to_D65 = float3x3( + 3.0628971, -0.9692660, 0.0678775, + -1.3931791, 1.8760108, -0.2288548, + -0.4757517, 0.0415560, 1.0693490); + +static const float3x3 D50_to_XYZ = float3x3( + 0.4552773, 0.2323025, 0.0145457, + 0.3675500, 0.7077956, 0.1049154, + 0.1413926, 0.0599019, 0.7057489); + +static const float3x3 XYZ_to_D50 = float3x3( + 2.9603944, -0.9787684, 0.0844874, + -1.4678519, 1.9161415, -0.2545973, + -0.4685105, 0.0334540, 1.4216174); + + +float4 PS_CRT_CONSUMER(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD0) : SV_Target +{ + float2 pos = Warp(vTexCoord.xy); + float2 tex_size = SourceSize.xy; + + float2 pC4 = (pos + 0.5/tex_size); + float2 fp = frac(pos * tex_size); + if (inter == false && tex_size.y > 400.0){ fp.y = frac(pos.y * tex_size.y*1.0/Downscale);} + + float4 res = float4(1.0, 1.0, 1.0, 1.0); + + if (alloff == true) + res = tex2D(sBackBuffer, pC4); + else + { + + float2 texel = pos * tex_size; + float2 texel_floored = floor(texel); + + float scale = PRE_SCALE; + float region_range = 0.5 - 0.5 / scale; + + // Figure out where in the texel to sample to get correct pre-scaled bilinear. + // Uses the hardware bilinear interpolator to avoid having to sample 4 times manually. + + float2 center_dist = fp - 0.5; + + float2 fpp = (center_dist - clamp(center_dist, -region_range, region_range)) * scale + 0.5; + + float2 mod_texel = texel_floored + fpp; + float2 coords = mod_texel / SourceSize.xy; + + float3 sample1 = tex2D(sBackBuffer, float2(coords.x + blurx*SourceSize.z, coords.y - blury*SourceSize.w)).rgb; + float3 sample2 = tex2D(sBackBuffer, coords).rgb; + float3 sample3 = tex2D(sBackBuffer, float2(coords.x - blurx*SourceSize.z, coords.y + blury*SourceSize.w )).rgb; + + float3 color = float3(sample1.r * 0.5 + sample2.r * 0.5, + sample1.g * 0.25 + sample2.g * 0.5 + sample3.g * 0.25, + sample2.b * 0.5 + sample3.b * 0.5); + if (palette_fix != 0.0) + { + if (palette_fix == 1.0) color = color* 1.0667; + else if (palette_fix == 2.0) color = color * 2.0; + } + + //COLOR TEMPERATURE FROM GUEST.R-DR.VENOM + if (WP != 0.0) + { + float3 warmer = mul(color, D50_to_XYZ); + warmer = mul(warmer, XYZ_to_D65); + + float3 cooler = mul(color, D65_to_XYZ); + cooler = mul(cooler, XYZ_to_D50); + + float m = abs(WP) / 100.0; + float3 comp = (WP < 0.0) ? cooler : warmer; + comp = clamp(comp, 0.0, 1.0); + + color = float3(lerp(color, comp, m)); + } + + float3x3 hue = float3x3 (1., rg, rb, //red tint + gr, 1., gb, //green tint + br, bg, 1.); //blue tint + + color = mul(color, hue); + + color = (2.0*pow(color,float3(2.8, 2.8, 2.8))) - pow(color,float3(3.6, 3.6, 3.6)); + + float lum = color.r * 0.3 + color.g * 0.6 + color.b * 0.1; + + float f = frac(fp.y -0.5); + + if (inter == true && tex_size.y > 400.0) color = color; + else + {color = color * sw(f,lum) + color * sw (1.0-f,lum);} + + float lum1 = color.r * 0.3 + color.g * 0.6 + color.b * 0.1; + + + color *= lerp(mask((vTexCoord * OutputSize.xy), color,lum1), float3(1.0, 1.0, 1.0), lum1*preserve); + + + if (slotmask != 0.0) color *= SlotMask((vTexCoord * OutputSize.xy) * 1.0001, color); + + color *= lerp(brightboost1, brightboost2, max(max(color.r, color.g), color.b)); + + + + color = pow(color,float3(1.0 / GAMMA_OUT, 1.0 / GAMMA_OUT, 1.0 / GAMMA_OUT)); + if (glow_str != 0.0) color += glow0(coords,color); + + if (sat != 1.0) color = saturation(color); + if (corner != 0.0) color *= corner0(pC4); + if (nois != 0.0) color *= 1.0 + noise(coords * 2.0) / nois; + + color *= lerp(1.0, postbr, lum); + res = float4(color, 1.0); + if (contrast != 1.0) res = mul(res, contrastMatrix(contrast)); + if (inter == true && SourceSize.y > 400.0 && frac(iTime) < 0.5) res = res * 0.95; + res.rgb = mul(res.rgb, vign(lum, vTexCoord)); + + } + + return res; +} + + + +technique CRT_CONSUMER +{ + pass + { + VertexShader = PostProcessVS; + PixelShader = PS_CRT_CONSUMER; + } +} diff --git a/data/resources/shaders/reshade/Shaders/crt/crt-geom.fx b/data/resources/shaders/reshade/Shaders/crt/crt-geom.fx index ff82558cc..807fffdd2 100644 --- a/data/resources/shaders/reshade/Shaders/crt/crt-geom.fx +++ b/data/resources/shaders/reshade/Shaders/crt/crt-geom.fx @@ -52,16 +52,13 @@ uniform bool CURVATURE < ui_category = "Curvature"; ui_type = "radio"; ui_label = "CRTGeom Curvature Toggle"; -> = 1.0; +> = true; -uniform float invert_aspect < - ui_type = "drag"; +uniform bool invert_aspect < + ui_type = "radio"; ui_category = "Curvature"; - ui_min = 0.0; - ui_max = 1.0; - ui_step = 1.0; ui_label = "CRTGeom Curvature Aspect Inversion"; -> = 0.0; +> = false; uniform float R < ui_type = "drag"; @@ -93,8 +90,8 @@ uniform float cornersmooth < uniform float x_tilt < ui_type = "drag"; ui_category = "Curvature"; - ui_min = -0.5; - ui_max = 0.5; + ui_min = -1.0; + ui_max = 1.0; ui_step = 0.05; ui_label = "CRTGeom Horizontal Tilt"; > = 0.0; @@ -102,8 +99,8 @@ uniform float x_tilt < uniform float y_tilt < ui_type = "drag"; ui_category = "Curvature"; - ui_min = -0.5; - ui_max = 0.5; + ui_min = -1.0; + ui_max = 1.0; ui_step = 0.05; ui_label = "CRTGeom Vertical Tilt"; > = 0.0; @@ -125,19 +122,19 @@ uniform float overscan_y < > = 100.0; uniform float centerx < - ui_type = "drag"; - ui_min = -9.99; - ui_max = 9.99; - ui_step = 0.01; - ui_label = "Image Center X"; + ui_type = "drag"; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; + ui_label = "Image Center X"; > = 0.00; uniform float centery < - ui_type = "drag"; - ui_min = -9.99; - ui_max = 9.99; - ui_step = 0.01; - ui_label = "Image Center Y"; + ui_type = "drag"; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; + ui_label = "Image Center Y"; > = 0.00; uniform float DOTMASK < @@ -164,13 +161,10 @@ uniform float scanline_weight < ui_label = "CRTGeom Scanline Weight"; > = 0.3; -uniform float vertical_scanlines < - ui_type = "drag"; - ui_min = 0.0; - ui_max = 1.0; - ui_step = 1.0; +uniform bool vertical_scanlines < + ui_type = "radio"; ui_label = "CRTGeom Vertical Scanlines"; -> = 0.0; +> = false; uniform float lum < ui_type = "drag"; @@ -191,13 +185,15 @@ uniform float interlace_detect < uniform float FrameCount < source = "framecount"; >; -uniform float2 BufferViewportRatio < source = "buffer_to_viewport_ratio"; >; +uniform float2 BufferToViewportRatio < source = "buffer_to_viewport_ratio"; >; uniform float2 InternalPixelSize < source = "internal_pixel_size"; >; uniform float2 NativePixelSize < source = "native_pixel_size"; >; uniform float2 NormalizedInternalPixelSize < source = "normalized_internal_pixel_size"; >; uniform float2 NormalizedNativePixelSize < source = "normalized_native_pixel_size"; >; uniform float UpscaleMultiplier < source = "upscale_multiplier"; >; uniform float2 ViewportSize < source = "viewportsize"; >; +uniform float ViewportWidth < source = "viewportwidth"; >; +uniform float ViewportHeight < source = "viewportheight"; >; sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=BORDER;AddressV=BORDER;AddressW=BORDER;MagFilter=POINT;MinFilter=POINT;}; @@ -222,7 +218,7 @@ sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=BORDER;AddressV=BO #endif // aspect ratio -#define aspect (invert_aspect>0.5?float2(0.75,1.0):float2(1.0,0.75)) +#define aspect (invert_aspect==true?float2(ViewportHeight/ViewportWidth,1.0):float2(1.0,ViewportHeight/ViewportWidth)) #define overscan (float2(1.01,1.01)); @@ -311,7 +307,7 @@ void VS_CRT_Geom(in uint id : SV_VertexID, out float4 position : SV_Position, ou texcoord = Warp(texcoord - float2(centerx,centery)/100.0); float2 SourceSize = 1.0/NormalizedNativePixelSize; - float2 OutputSize = ViewportSize*BufferViewportRatio; + float2 OutputSize = ViewportSize*BufferToViewportRatio; // Precalculate a bunch of useful values we'll need in the fragment // shader. @@ -319,7 +315,7 @@ void VS_CRT_Geom(in uint id : SV_VertexID, out float4 position : SV_Position, ou vVARS.cosangle = cos(float2(x_tilt, y_tilt)); vVARS.stretch = vs_maxscale(vVARS.sinangle, vVARS.cosangle); - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) { vVARS.TextureSize = float2(SHARPER * SourceSize.x, SourceSize.y); @@ -350,7 +346,7 @@ float intersect(float2 xy, float2 sinangle, float2 cosangle) float A = dot(xy,xy) + d*d; float B, C; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) { B = 2.0*(R*(dot(xy,sinangle) - d*cosangle.x*cosangle.y) - d*d); C = d*d + 2.0*R*d*cosangle.x*cosangle.y; @@ -387,7 +383,7 @@ float2 fwtrans(float2 uv, float2 sinangle, float2 cosangle) float x = 1.0 - cos(r/R); float D; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) D = d/R + x*cosangle.x*cosangle.y + dot(uv,sinangle); else D = d/R + x*cosangle.y*cosangle.x + dot(uv,sinangle); @@ -397,7 +393,7 @@ float2 fwtrans(float2 uv, float2 sinangle, float2 cosangle) float3 maxscale(float2 sinangle, float2 cosangle) { - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) { float2 c = bkwtrans(-R * sinangle / (1.0 + R/d*cosangle.x*cosangle.y), sinangle, cosangle); float2 a = float2(0.5, 0.5)*aspect; @@ -464,13 +460,12 @@ float2 transform(float2 coord, float2 sinangle, float2 cosangle, float3 stretch) float corner(float2 coord) { - coord = (coord - float2(0.5, 0.5)) * float2(overscan_x / 100.0, overscan_y / 100.0) + float2(0.5, 0.5); coord = min(coord, float2(1.0, 1.0) - coord) * aspect; float2 cdist = float2(cornersize, cornersize); coord = (cdist - min(coord, cdist)); float dist = sqrt(dot(coord, coord)); - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) return clamp((cdist.x - dist)*cornersmooth, 0.0, 1.0); else return clamp((cdist.y - dist)*cornersmooth, 0.0, 1.0); @@ -508,17 +503,17 @@ float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_ // Texture coordinates of the texel containing the active pixel. float2 xy; - if (CURVATURE > 0.5) + if (CURVATURE == true) xy = transform(vTexCoord, vVARS.sinangle, vVARS.cosangle, vVARS.stretch); else xy = vTexCoord; - float cval = corner(xy); + float cval = corner((xy-float2(0.5,0.5)) * BufferToViewportRatio + float2(0.5,0.5)); // Of all the pixels that are mapped onto the texel we are // currently rendering, which pixel are we currently rendering? float2 ilvec; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) ilvec = float2(0.0, vVARS.ilfac.y * interlace_detect > 1.5 ? (float(FrameCount) % 2.0) : 0.0); else ilvec = float2(vVARS.ilfac.x * interlace_detect > 1.5 ? (float(FrameCount) % 2.0) : 0.0, 0.0); @@ -533,7 +528,7 @@ float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_ // of various neighbour texels in a scanline on the current // pixel. float4 coeffs; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) coeffs = PI * float4(1.0 + uv_ratio.x, uv_ratio.x, 1.0 - uv_ratio.x, 2.0 - uv_ratio.x); else coeffs = PI * float4(1.0 + uv_ratio.y, uv_ratio.y, 1.0 - uv_ratio.y, 2.0 - uv_ratio.y); @@ -551,7 +546,7 @@ float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_ // scanlines at the horizontal location of the current pixel, // using the Lanczos coefficients above. float4 col, col2; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) { col = clamp( mul(coeffs, float4x4( @@ -600,7 +595,7 @@ float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_ // Calculate the influence of the current and next scanlines on // the current pixel. float4 weights, weights2; - if(vertical_scanlines < 0.5) + if(vertical_scanlines == false) { weights = scanlineWeights(uv_ratio.y, col); weights2 = scanlineWeights(1.0 - uv_ratio.y, col2); diff --git a/data/resources/shaders/reshade/Shaders/edge-smoothing/super-xbr.fx b/data/resources/shaders/reshade/Shaders/edge-smoothing/super-xbr.fx index 72402560a..1f6cb5278 100644 --- a/data/resources/shaders/reshade/Shaders/edge-smoothing/super-xbr.fx +++ b/data/resources/shaders/reshade/Shaders/edge-smoothing/super-xbr.fx @@ -184,7 +184,9 @@ float3 super_xbr(float wp[6], float4 P0, float4 B, float4 C, float4 P1, float4 float4 PS_BackBufferY(float4 pos: SV_Position, float2 vTexCoord : TEXCOORD) : SV_Target { - float3 color = tex2D(ReShade::BackBuffer, vTexCoord.xy).rgb; + float2 tc = (floor(vTexCoord / NormalizedNativePixelSize)+float2(0.5,0.5)) * NormalizedNativePixelSize; + + float3 color = tex2D(ReShade::BackBuffer, tc).rgb; return float4(color, luma(color)); } diff --git a/data/resources/shaders/reshade/Shaders/misc/geom.fx b/data/resources/shaders/reshade/Shaders/misc/geom.fx index 61db0dc6d..1fc96565a 100644 --- a/data/resources/shaders/reshade/Shaders/misc/geom.fx +++ b/data/resources/shaders/reshade/Shaders/misc/geom.fx @@ -76,16 +76,16 @@ uniform float geom_cornersmooth < uniform float geom_x_tilt < ui_type = "drag"; - ui_min = -0.5; - ui_max = 0.5; + ui_min = -1.0; + ui_max = 1.0; ui_step = 0.05; ui_label = "Geom Horizontal Tilt"; > = 0.0; uniform float geom_y_tilt < ui_type = "drag"; - ui_min = -0.5; - ui_max = 0.5; + ui_min = -1.0; + ui_max = 1.0; ui_step = 0.05; ui_label = "Geom Vertical Tilt"; > = 0.0; @@ -108,17 +108,17 @@ uniform float geom_overscan_y < uniform float centerx < ui_type = "drag"; - ui_min = -9.99; - ui_max = 9.99; - ui_step = 0.01; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; ui_label = "Image Center X"; > = 0.00; uniform float centery < ui_type = "drag"; - ui_min = -9.99; - ui_max = 9.99; - ui_step = 0.01; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; ui_label = "Image Center Y"; > = 0.00; @@ -147,9 +147,11 @@ uniform float geom_monitor_gamma < > = 2.2; -uniform float2 BufferViewportRatio < source = "buffer_to_viewport_ratio"; >; +uniform float2 BufferToViewportRatio < source = "buffer_to_viewport_ratio"; >; uniform float2 NormalizedNativePixelSize < source = "normalized_native_pixel_size"; >; uniform float2 ViewportSize < source = "viewportsize"; >; +uniform float ViewportWidth < source = "viewportwidth"; >; +uniform float ViewportHeight < source = "viewportheight"; >; sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=BORDER;AddressV=BORDER;AddressW=BORDER;MagFilter=LINEAR;MinFilter=LINEAR;}; @@ -174,7 +176,7 @@ sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=BORDER;AddressV=BO #endif // aspect ratio -#define aspect (geom_invert_aspect==true?float2(0.75,1.0):float2(1.0,0.75)) +#define aspect (geom_invert_aspect==true?float2(ViewportHeight/ViewportWidth,1.0):float2(1.0,ViewportHeight/ViewportWidth)) #define overscan (float2(1.01,1.01)); @@ -259,8 +261,7 @@ void VS_CRT_Geom(in uint id : SV_VertexID, out float4 position : SV_Position, ou // center screen texcoord = Warp(texcoord - float2(centerx,centery)/100.0); -// float2 SourceSize = 1.0/NormalizedNativePixelSize; - float2 SourceSize = ViewportSize*BufferViewportRatio; + float2 SourceSize = 1.0/NormalizedNativePixelSize; // Precalculate a bunch of useful values we'll need in the fragment // shader. @@ -336,7 +337,6 @@ float2 transform(float2 coord, float2 sinangle, float2 cosangle, float3 stretch) float corner(float2 coord) { - coord = (coord - float2(0.5, 0.5)) * float2(geom_overscan_x / 100.0, geom_overscan_y / 100.0) + float2(0.5, 0.5); coord = min(coord, float2(1.0, 1.0) - coord) * aspect; float2 cdist = float2(geom_cornersize, geom_cornersize); coord = (cdist - min(coord, cdist)); @@ -360,7 +360,7 @@ float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_ else xy = vTexCoord; - float cval = corner(xy); + float cval = corner((xy-float2(0.5,0.5)) * BufferToViewportRatio + float2(0.5,0.5)); float2 uv_ratio = frac((xy * vVARS.TextureSize - float2(0.5, 0.5)) / vVARS.TextureSize); diff --git a/data/resources/shaders/reshade/Shaders/overlay/geom-overlay.fx b/data/resources/shaders/reshade/Shaders/overlay/geom-overlay.fx new file mode 100644 index 000000000..b41888a77 --- /dev/null +++ b/data/resources/shaders/reshade/Shaders/overlay/geom-overlay.fx @@ -0,0 +1,415 @@ +#include "ReShade.fxh" + +/* + Geom Shader - a modified CRT-Geom without CRT features made to be appended/integrated + into any other shaders and provide curvature/warping/oversampling features. + + Adapted by Hyllian (2024). +*/ + + +/* + CRT-interlaced + + Copyright (C) 2010-2012 cgwg, Themaister and DOLLS + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + (cgwg gave their consent to have the original version of this shader + distributed under the GPL in this message: + + http://board.byuu.org/viewtopic.php?p=26075#p26075 + + "Feel free to distribute my shaders under the GPL. After all, the + barrel distortion code was taken from the Curvature shader, which is + under the GPL." + ) + This shader variant is pre-configured with screen curvature +*/ + + + +uniform bool geom_curvature < + ui_type = "radio"; + ui_label = "Geom Curvature Toggle"; + ui_category = "Curvature"; + ui_tooltip = "This shader only works with Aspect Ratio: Stretch to Fill."; +> = true; + +uniform float geom_R < + ui_type = "drag"; + ui_min = 0.1; + ui_max = 10.0; + ui_step = 0.1; + ui_label = "Geom Curvature Radius"; +> = 10.0; + +uniform float geom_d < + ui_type = "drag"; + ui_min = 0.1; + ui_max = 10.0; + ui_step = 0.1; + ui_label = "Geom Distance"; +> = 10.0; + +uniform bool geom_invert_aspect < + ui_type = "radio"; + ui_label = "Geom Curvature Aspect Inversion"; +> = 0.0; + +uniform float geom_cornersize < + ui_type = "drag"; + ui_min = 0.001; + ui_max = 1.0; + ui_step = 0.005; + ui_label = "Geom Corner Size"; +> = 0.006; + +uniform float geom_cornersmooth < + ui_type = "drag"; + ui_min = 80.0; + ui_max = 2000.0; + ui_step = 100.0; + ui_label = "Geom Corner Smoothness"; +> = 200.0; + +uniform float geom_x_tilt < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.05; + ui_label = "Geom Horizontal Tilt"; +> = 0.0; + +uniform float geom_y_tilt < + ui_type = "drag"; + ui_min = -1.0; + ui_max = 1.0; + ui_step = 0.05; + ui_label = "Geom Vertical Tilt"; +> = 0.0; + +uniform float geom_overscan_x < + ui_type = "drag"; + ui_min = -125.0; + ui_max = 125.0; + ui_step = 0.5; + ui_label = "Geom Horiz. Overscan %"; +> = 48.5; + +uniform float geom_overscan_y < + ui_type = "drag"; + ui_min = -125.0; + ui_max = 125.0; + ui_step = 0.5; + ui_label = "Geom Vert. Overscan %"; +> = 64.5; + +uniform float centerx < + ui_type = "drag"; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; + ui_label = "Image Center X"; +> = 0.0; + +uniform float centery < + ui_type = "drag"; + ui_min = -100.0; + ui_max = 100.0; + ui_step = 0.1; + ui_label = "Image Center Y"; +> = -8.8; + +uniform float geom_lum < + ui_type = "drag"; + ui_min = 0.5; + ui_max = 2.0; + ui_step = 0.01; + ui_label = "Geom Luminance"; +> = 1.0; + +uniform float geom_target_gamma < + ui_type = "drag"; + ui_min = 0.1; + ui_max = 5.0; + ui_step = 0.1; + ui_label = "Geom Target Gamma"; +> = 2.4; + +uniform float geom_monitor_gamma < + ui_type = "drag"; + ui_min = 0.1; + ui_max = 5.0; + ui_step = 0.1; + ui_label = "Geom Monitor Gamma"; +> = 2.2; + + +uniform float2 BufferToViewportRatio < source = "buffer_to_viewport_ratio"; >; +uniform float2 NormalizedNativePixelSize < source = "normalized_native_pixel_size"; >; +uniform float2 ViewportSize < source = "viewportsize"; >; +uniform float ViewportX < source = "viewportx"; >; +uniform float ViewportY < source = "viewporty"; >; +uniform float ViewportWidth < source = "viewportwidth"; >; +uniform float ViewportHeight < source = "viewportheight"; >; +uniform float2 ViewportOffset < source = "viewportoffset"; >; + +sampler2D sBackBuffer{Texture=ReShade::BackBufferTex;AddressU=BORDER;AddressV=BORDER;AddressW=BORDER;MagFilter=LINEAR;MinFilter=LINEAR;}; + +texture tOverlay < source = "overlay/psx.jpg"; > +{ + Width = BUFFER_WIDTH; + Height = BUFFER_HEIGHT; + MipLevels = 1; +}; + +sampler sOverlay { Texture = tOverlay; AddressU = BORDER; AddressV = BORDER; MinFilter = LINEAR; MagFilter = LINEAR;}; + +// Comment the next line to disable interpolation in linear gamma (and +// gain speed). +#define LINEAR_PROCESSING + +// Enable 3x oversampling of the beam profile; improves moire effect caused by scanlines+curvature +#define OVERSAMPLE + +// Use the older, purely gaussian beam profile; uncomment for speed +//#define USEGAUSSIAN + +// Macros. +#define FIX(c) max(abs(c), 1e-5); +#define PI 3.141592653589 + +#ifdef LINEAR_PROCESSING +# define TEX2D(c) pow(tex2D(sBackBuffer, (c)), float4(geom_target_gamma,geom_target_gamma,geom_target_gamma,geom_target_gamma)) +#else +# define TEX2D(c) tex2D(sBackBuffer, (c)) +#endif + +// aspect ratio +#define aspect (geom_invert_aspect==true?float2(ViewportHeight/ViewportWidth,1.0):float2(1.0,ViewportHeight/ViewportWidth)) +#define overscan (float2(1.01,1.01)); + + +struct ST_VertexOut +{ + float2 sinangle : TEXCOORD1; + float2 cosangle : TEXCOORD2; + float3 stretch : TEXCOORD3; + float2 TextureSize : TEXCOORD4; +}; + + +float vs_intersect(float2 xy, float2 sinangle, float2 cosangle) +{ + float A = dot(xy,xy) + geom_d*geom_d; + float B = 2.0*(geom_R*(dot(xy,sinangle)-geom_d*cosangle.x*cosangle.y)-geom_d*geom_d); + float C = geom_d*geom_d + 2.0*geom_R*geom_d*cosangle.x*cosangle.y; + + return (-B-sqrt(B*B-4.0*A*C))/(2.0*A); +} + +float2 vs_bkwtrans(float2 xy, float2 sinangle, float2 cosangle) +{ + float c = vs_intersect(xy, sinangle, cosangle); + float2 point = (float2(c, c)*xy - float2(-geom_R, -geom_R)*sinangle) / float2(geom_R, geom_R); + float2 poc = point/cosangle; + + float2 tang = sinangle/cosangle; + float A = dot(tang, tang) + 1.0; + float B = -2.0*dot(poc, tang); + float C = dot(poc, poc) - 1.0; + + float a = (-B + sqrt(B*B - 4.0*A*C))/(2.0*A); + float2 uv = (point - a*sinangle)/cosangle; + float r = FIX(geom_R*acos(a)); + + return uv*r/sin(r/geom_R); +} + +float2 vs_fwtrans(float2 uv, float2 sinangle, float2 cosangle) +{ + float r = FIX(sqrt(dot(uv,uv))); + uv *= sin(r/geom_R)/r; + float x = 1.0-cos(r/geom_R); + float D = geom_d/geom_R + x*cosangle.x*cosangle.y+dot(uv,sinangle); + + return geom_d*(uv*cosangle-x*sinangle)/D; +} + +float3 vs_maxscale(float2 sinangle, float2 cosangle) +{ + float2 c = vs_bkwtrans(-geom_R * sinangle / (1.0 + geom_R/geom_d*cosangle.x*cosangle.y), sinangle, cosangle); + float2 a = float2(0.5,0.5)*aspect; + + float2 lo = float2(vs_fwtrans(float2(-a.x, c.y), sinangle, cosangle).x, + vs_fwtrans(float2( c.x, -a.y), sinangle, cosangle).y)/aspect; + + float2 hi = float2(vs_fwtrans(float2(+a.x, c.y), sinangle, cosangle).x, + vs_fwtrans(float2( c.x, +a.y), sinangle, cosangle).y)/aspect; + + return float3((hi+lo)*aspect*0.5,max(hi.x-lo.x,hi.y-lo.y)); +} + + + + +// Vertex shader generating a triangle covering the entire screen +void VS_CRT_Geom(in uint id : SV_VertexID, out float4 position : SV_Position, out float2 texcoord : TEXCOORD, out ST_VertexOut vVARS) +{ + texcoord.x = (id == 2) ? 2.0 : 0.0; + texcoord.y = (id == 1) ? 2.0 : 0.0; + position = float4(texcoord * float2(2.0, -2.0) + float2(-1.0, 1.0), 0.0, 1.0); + + float2 SourceSize = 1.0/NormalizedNativePixelSize; + + // Precalculate a bunch of useful values we'll need in the fragment + // shader. + vVARS.sinangle = sin(float2(geom_x_tilt, geom_y_tilt)); + vVARS.cosangle = cos(float2(geom_x_tilt, geom_y_tilt)); + vVARS.stretch = vs_maxscale(vVARS.sinangle, vVARS.cosangle); + vVARS.TextureSize = float2(SourceSize.x, SourceSize.y); +} + + + +float intersect(float2 xy, float2 sinangle, float2 cosangle) +{ + float A = dot(xy,xy) + geom_d*geom_d; + float B, C; + + B = 2.0*(geom_R*(dot(xy,sinangle) - geom_d*cosangle.x*cosangle.y) - geom_d*geom_d); + C = geom_d*geom_d + 2.0*geom_R*geom_d*cosangle.x*cosangle.y; + + return (-B-sqrt(B*B - 4.0*A*C))/(2.0*A); +} + +float2 bkwtrans(float2 xy, float2 sinangle, float2 cosangle) +{ + float c = intersect(xy, sinangle, cosangle); + float2 point = (float2(c, c)*xy - float2(-geom_R, -geom_R)*sinangle) / float2(geom_R, geom_R); + float2 poc = point/cosangle; + float2 tang = sinangle/cosangle; + + float A = dot(tang, tang) + 1.0; + float B = -2.0*dot(poc, tang); + float C = dot(poc, poc) - 1.0; + + float a = (-B + sqrt(B*B - 4.0*A*C)) / (2.0*A); + float2 uv = (point - a*sinangle) / cosangle; + float r = FIX(geom_R*acos(a)); + + return uv*r/sin(r/geom_R); +} + +float2 fwtrans(float2 uv, float2 sinangle, float2 cosangle) +{ + float r = FIX(sqrt(dot(uv, uv))); + uv *= sin(r/geom_R)/r; + float x = 1.0 - cos(r/geom_R); + float D; + + D = geom_d/geom_R + x*cosangle.x*cosangle.y + dot(uv,sinangle); + + return geom_d*(uv*cosangle - x*sinangle)/D; +} + +float3 maxscale(float2 sinangle, float2 cosangle) +{ + float2 c = bkwtrans(-geom_R * sinangle / (1.0 + geom_R/geom_d*cosangle.x*cosangle.y), sinangle, cosangle); + float2 a = float2(0.5, 0.5)*aspect; + + float2 lo = float2(fwtrans(float2(-a.x, c.y), sinangle, cosangle).x, + fwtrans(float2( c.x, -a.y), sinangle, cosangle).y)/aspect; + float2 hi = float2(fwtrans(float2(+a.x, c.y), sinangle, cosangle).x, + fwtrans(float2( c.x, +a.y), sinangle, cosangle).y)/aspect; + + return float3((hi+lo)*aspect*0.5,max(hi.x-lo.x, hi.y-lo.y)); +} + +float2 transform(float2 coord, float2 sinangle, float2 cosangle, float3 stretch) +{ + coord = (coord - float2(0.5, 0.5))*aspect*stretch.z + stretch.xy; + + return (bkwtrans(coord, sinangle, cosangle) / + float2(geom_overscan_x / 100.0, geom_overscan_y / 100.0)/aspect + float2(0.5, 0.5)); +} + +float corner(float2 coord) +{ + coord = min(coord, float2(1.0, 1.0) - coord) * aspect; + float2 cdist = float2(geom_cornersize, geom_cornersize); + coord = (cdist - min(coord, cdist)); + float dist = sqrt(dot(coord, coord)); + + return clamp((cdist.x - dist)*geom_cornersmooth, 0.0, 1.0); +} + +float fwidth(float value){ + return abs(ddx(value)) + abs(ddy(value)); +} + + +// Code snippet borrowed from crt-cyclon. (credits to DariusG) +float2 Warp(float2 pos) +{ + pos = pos*2.0 - 1.0; + pos *= float2(1.0 + pos.y*pos.y*0, 1.0 + pos.x*pos.x*0); + pos = pos*0.5 + 0.5; + + return pos; +} + +float4 PS_CRT_Geom(float4 vpos: SV_Position, float2 vTexCoord : TEXCOORD, in ST_VertexOut vVARS) : SV_Target +{ + // Texture coordinates of the texel containing the active pixel. + float2 xy; + + if (geom_curvature == true) + xy = transform(vTexCoord, vVARS.sinangle, vVARS.cosangle, vVARS.stretch); + else + xy = vTexCoord; + + // center screen + xy = Warp(xy - float2(centerx,centery)/100.0); + + float cval = corner((xy-float2(0.5,0.5)) * BufferToViewportRatio + float2(0.5,0.5)); + + float2 uv_ratio = frac((xy * vVARS.TextureSize - float2(0.5, 0.5)) / vVARS.TextureSize); + + float4 col = TEX2D(xy); + +#ifndef LINEAR_PROCESSING + col = pow(col , float4(geom_target_gamma, geom_target_gamma, geom_target_gamma, geom_target_gamma)); +#endif + + col.rgb *= (geom_lum * step(0.0, uv_ratio.y)); + + float3 mul_res = col.rgb * float3(cval, cval, cval); + + // Convert the image gamma for display on our output device. + mul_res = pow(mul_res, float3(1.0 / geom_monitor_gamma, 1.0 / geom_monitor_gamma, 1.0 / geom_monitor_gamma)); + + float4 overlay = tex2D(sOverlay, vTexCoord); + + float2 top_left = (float2(ViewportX, ViewportY) - ViewportOffset)/ViewportSize; + float2 bottom_right = (float2(ViewportX + ViewportWidth, ViewportY + ViewportHeight) - ViewportOffset)/ViewportSize; + + if (xy.x < top_left.x || xy.x > bottom_right.x || xy.y < top_left.y || xy.y > bottom_right.y) + mul_res = overlay.rgb; + + return float4(mul_res, 1.0); +} + + +technique CRT_Geom +{ + pass + { + VertexShader = VS_CRT_Geom; + PixelShader = PS_CRT_Geom; + } +} diff --git a/data/resources/shaders/reshade/Textures/overlay/OVERLAY_CREDITS_AND_LICENSE.md b/data/resources/shaders/reshade/Textures/overlay/OVERLAY_CREDITS_AND_LICENSE.md new file mode 100644 index 000000000..bd322c094 --- /dev/null +++ b/data/resources/shaders/reshade/Textures/overlay/OVERLAY_CREDITS_AND_LICENSE.md @@ -0,0 +1,15 @@ +# To Use + +Choose Aspect Ratio: Stretch to Fill. + +# Psx.jpg Credits + +To the Author: SOQUEROEU. + +The "psx.jpg" background was edited from the one obtained from "Soqueroeu TV Backgrounds 2.0" repository: https://github.com/soqueroeu/Soqueroeu-TV-Backgrounds_V2.0/tree/main. + +The material is free to use according to the agreement below: + +## AGREEMENT + +This pack is free. You should not pay for anything related to this graphics pack and shader preset. You may distribute and reproduce part from this content, as long as you give credit to the authors involved. You may not profit from the sale of products that contain material in this package without the author's prior permission. diff --git a/data/resources/shaders/reshade/Textures/overlay/psx.jpg b/data/resources/shaders/reshade/Textures/overlay/psx.jpg new file mode 100644 index 0000000000000000000000000000000000000000..378e2f60135110c3ab57b3123d930732b968e80c GIT binary patch literal 487622 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 M7e^IQa%&I&*^ice)Bpeg literal 0 HcmV?d00001