From b27af2e1dff000f3b6b204014859dca29704edcc Mon Sep 17 00:00:00 2001 From: hunterk Date: Mon, 3 May 2021 15:13:33 -0500 Subject: [PATCH] add fubax_vr, g-sharp_resampler; cleanups for stereoscopic, dithering shaders --- dithering/g-sharp_resampler.slangp | 5 + dithering/jinc2-dedither.slangp | 5 + .../shaders/bayer-matrix-dithering.slang | 4 +- dithering/shaders/g-sharp_resampler.slang | 135 ++++++++++++ stereoscopic-3d/fubax_vr.slangp | 28 +++ ...by-side => anaglyph-to-side-by-side.slang} | 0 .../shaders/fubax_vr/Chromatic.slang | 163 ++++++++++++++ .../shaders/fubax_vr/FilmicSharpen.slang | 101 +++++++++ stereoscopic-3d/shaders/fubax_vr/VR.slang | 172 +++++++++++++++ .../shaders/fubax_vr/VR_nose.slang | 95 ++++++++ .../shaders/fubax_vr/fubax_vr_params.inc | 123 +++++++++++ .../fubax_vr/fubax_vr_shared_funcs.inc | 205 ++++++++++++++++++ stereoscopic-3d/shaders/fubax_vr/nose.png | Bin 0 -> 123216 bytes .../shaders/shutter-to-side-by-side.slang | 2 +- stereoscopic-3d/side-by-side-simple.slangp | 2 +- 15 files changed, 1036 insertions(+), 4 deletions(-) create mode 100644 dithering/g-sharp_resampler.slangp create mode 100644 dithering/jinc2-dedither.slangp create mode 100644 dithering/shaders/g-sharp_resampler.slang create mode 100644 stereoscopic-3d/fubax_vr.slangp rename stereoscopic-3d/shaders/{anaglyph-to-side-by-side => anaglyph-to-side-by-side.slang} (100%) create mode 100644 stereoscopic-3d/shaders/fubax_vr/Chromatic.slang create mode 100644 stereoscopic-3d/shaders/fubax_vr/FilmicSharpen.slang create mode 100644 stereoscopic-3d/shaders/fubax_vr/VR.slang create mode 100644 stereoscopic-3d/shaders/fubax_vr/VR_nose.slang create mode 100644 stereoscopic-3d/shaders/fubax_vr/fubax_vr_params.inc create mode 100644 stereoscopic-3d/shaders/fubax_vr/fubax_vr_shared_funcs.inc create mode 100644 stereoscopic-3d/shaders/fubax_vr/nose.png diff --git a/dithering/g-sharp_resampler.slangp b/dithering/g-sharp_resampler.slangp new file mode 100644 index 0000000..dee2804 --- /dev/null +++ b/dithering/g-sharp_resampler.slangp @@ -0,0 +1,5 @@ +shaders = 1 + +shader0 = shaders/g-sharp_resampler.slang +scale0 = 1.0 +scale_type0 = source diff --git a/dithering/jinc2-dedither.slangp b/dithering/jinc2-dedither.slangp new file mode 100644 index 0000000..0f34f73 --- /dev/null +++ b/dithering/jinc2-dedither.slangp @@ -0,0 +1,5 @@ +shaders = 1 + +shader0 = shaders/jinc2-dedither.slang +scale0 = 1.0 +scale_type0 = source diff --git a/dithering/shaders/bayer-matrix-dithering.slang b/dithering/shaders/bayer-matrix-dithering.slang index 671bb6e..c6b7041 100644 --- a/dithering/shaders/bayer-matrix-dithering.slang +++ b/dithering/shaders/bayer-matrix-dithering.slang @@ -57,7 +57,7 @@ layout(location = 0) out vec2 vTexCoord; void main() { gl_Position = global.MVP * Position; - vTexCoord = TexCoord; + vTexCoord = TexCoord * 1.00001; } #pragma stage fragment @@ -84,4 +84,4 @@ finalRGB.b = find_closest(x, y, rgb.b); float final = find_closest(x, y, grayscale); FragColor = vec4(finalRGB, 1.0); -} \ No newline at end of file +} diff --git a/dithering/shaders/g-sharp_resampler.slang b/dithering/shaders/g-sharp_resampler.slang new file mode 100644 index 0000000..b55e279 --- /dev/null +++ b/dithering/shaders/g-sharp_resampler.slang @@ -0,0 +1,135 @@ +#version 450 + +/* + G-sharp resampler - dynamic range, resizable + + Copyright (C) 2020 - 2021 guest(r) - guest.r@gmail.com + + 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. + + Anti-Ringing inspired by Hyllian + +*/ + +layout(push_constant) uniform Push +{ + vec4 SourceSize; + vec4 OriginalSize; + vec4 OutputSize; + uint FrameCount; + float SIGMA_HV; + float HSHARP0; + float HAR; + float SHAR; +} params; + +#pragma parameter HSHARP0 "Filter Range" 1.2 1.0 6.0 0.1 +#define HSHARP0 params.HSHARP0 + +#pragma parameter SIGMA_HV "Gaussian Blur Sigma" 0.75 0.1 7.0 0.05 +#define SIGMA_HV params.SIGMA_HV + +#pragma parameter SHAR "Sharpness Definition" 0.5 0.0 2.0 0.05 +#define SHAR params.SHAR + +#pragma parameter HAR "Anti-Ringing" 0.5 0.0 1.0 0.10 +#define HAR params.HAR + +layout(std140, set = 0, binding = 0) uniform UBO +{ + mat4 MVP; +} 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 = 2) uniform sampler2D Source; + +#define COMPAT_TEXTURE(c,d) texture(c,d) +#define SourceSize params.SourceSize + +float invsqrsigma_h = 1.0/(2.0*SIGMA_HV*SIGMA_HV); + +float gaussian(float x, float y) +{ + return exp(-(x*x + y*y)*invsqrsigma_h); +} + +void main() +{ + vec2 f = fract(SourceSize.xy * vTexCoord.xy); + f = 0.5 - f; + vec2 tex = floor(SourceSize.xy * vTexCoord)*SourceSize.zw + 0.5*SourceSize.zw; + vec2 dx = vec2(SourceSize.z, 0.0); + vec2 dy = vec2(0.0, SourceSize.w); + + vec3 colorx = 0.0.xxx; + vec3 colory = 0.0.xxx; + float wx, wy; + float wsumx = 0.0; + float wsumy = 0.0; + vec3 pixel; + float x; + + vec3 xcmax = 0.0.xxx; + vec3 xcmin = 1.0.xxx; + + float sharp = gaussian(HSHARP0, 0.0); + float maxsharp = 0.07; + float FPR = HSHARP0; + float fpx = 1.0; + + float LOOPSIZE = ceil(2.0*FPR); + float y = -LOOPSIZE; + + do + { + x = -LOOPSIZE; + + do + { + pixel = COMPAT_TEXTURE(Source, tex + x*dx + y*dy).rgb; + + wx = gaussian(x+f.x, y+f.y) - sharp; + fpx = (sqrt(dot(vec2(x+f.x,y+f.y),vec2(x+f.x,y+f.y)))-FPR)/FPR; + if (((x*x) + (y*y)) < 1.25*FPR) { xcmax = max(xcmax, pixel); xcmin = min(xcmin, pixel); } + if (wx < 0.0) wx = clamp(wx, mix(-maxsharp, 0.0, pow(abs(fpx), SHAR)), 0.0); + colorx = colorx + wx * pixel; + wsumx = wsumx + wx; + x = x + 1.0; + + } while (x <= LOOPSIZE); + + y = y + 1.0; + + } while (y <= LOOPSIZE); + + vec3 color = colorx/wsumx; + + color = mix(clamp(color, 0.0, 1.0), clamp(color, xcmin, xcmax), HAR); + + FragColor = vec4(color, 1.0); +} diff --git a/stereoscopic-3d/fubax_vr.slangp b/stereoscopic-3d/fubax_vr.slangp new file mode 100644 index 0000000..b7760f3 --- /dev/null +++ b/stereoscopic-3d/fubax_vr.slangp @@ -0,0 +1,28 @@ +shaders = 5 + +shader0 = ../stock.slang +scale_type0 = viewport +scale0 = 1.0 + +shader1 = shaders/fubax_vr/VR.slang +scale_type1 = viewport +scale1 = 1.0 +filter_linear1 = true + +shader2 = shaders/fubax_vr/Chromatic.slang +scale_type2 = viewport +scale2 = 1.0 +filter_linear2 = true + +shader3 = shaders/fubax_vr/FilmicSharpen.slang +scale_type3 = viewport +scale3 = 1.0 +filter_linear3 = true + +shader4 = shaders/fubax_vr/VR_nose.slang +scale_type4 = viewport +scale4 = 1.0 +filter_linear4 = true + +textures = "noseTex" +noseTex = shaders/fubax_vr/nose.png diff --git a/stereoscopic-3d/shaders/anaglyph-to-side-by-side b/stereoscopic-3d/shaders/anaglyph-to-side-by-side.slang similarity index 100% rename from stereoscopic-3d/shaders/anaglyph-to-side-by-side rename to stereoscopic-3d/shaders/anaglyph-to-side-by-side.slang diff --git a/stereoscopic-3d/shaders/fubax_vr/Chromatic.slang b/stereoscopic-3d/shaders/fubax_vr/Chromatic.slang new file mode 100644 index 0000000..eecfb69 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/Chromatic.slang @@ -0,0 +1,163 @@ +#version 450 + +/* +/// VR shader /// + +Make any game VR and any screen with lenses a VR headset. +Thanks to this shader you'll be able to correct distortions of any lens types +(DIY, experimental) and chromatic aberration. +Also if a game outputs depth pass you can have a stereo-3D vision thanks to +the parallax mapping (which needs some further improvement). + +Copyright (c) 2019 Jacob Max Fober + +This work is licensed under the Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International License. +To view a copy of this license, visit +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +If you want to use it commercially, contact me at jakub.m.fober@pm.me +If you have questions, visit https://reshade.me/forum/shader-discussion/ + +I'm author of most of equations present here, +beside Brown-Conrady distortion correction model and +Parallax Steep and Occlusion mapping which +I changed and adopted from various sources. + +Version 0.4.2 alpha +*/ + +layout(push_constant) uniform Push +{ + vec4 SourceSize; + vec4 OriginalSize; + vec4 OutputSize; + uint FrameCount; +} params; + +#include "fubax_vr_params.inc" + +#pragma stage vertex +layout(location = 0) in vec4 Position; +layout(location = 1) in vec2 TexCoord; +layout(location = 0) out vec2 texcoord; + +void main() +{ + gl_Position = global.MVP * Position; + texcoord = TexCoord; +} + +#pragma stage fragment +layout(location = 0) in vec2 texcoord; +layout(location = 0) out vec4 FragColor; +layout(set = 0, binding = 2) uniform sampler2D Source; + +#include "fubax_vr_shared_funcs.inc" + +void main() +{ + // Bypass chromatic aberration switch + if(!ChromaticAbrSwitch) + { + FragColor = vec4(texture(Source, texcoord).rgb, 1.0); + return; + } + + // Get display aspect ratio (horizontal/vertical resolution) + float rAspect = params.OutputSize.x*params.OutputSize.w; + + // Generate negative-positive stereo mask + float SideScreenSwitch = step(0.5, texcoord.x)*2.0-1.0; + + // Divide screen in two if stereo vision mode enabled + vec2 CenterCoord = StereoSwitch? StereoVision(texcoord, IPD) : texcoord; + + CenterCoord = CenterCoord*2.0-1.0; // Center coordinates + CenterCoord.x *= rAspect; // Correct aspect ratio + + float Diagonal = rAspect; + Diagonal *= StereoSwitch ? 0.5 : 1.0; + Diagonal = length(vec2(Diagonal, 1.0)); + + CenterCoord /= Diagonal; // Normalize diagonally + + // Left/right eye mask + float L = step(0.5, 1.0-texcoord.x); + float R = step(0.5, texcoord.x); + + // Offset center green + vec2 CoordGreen = ChGreenOffsetL * L + ChGreenOffsetR * R; + CoordGreen.x *= -1.0; + CoordGreen = 0.01 * CoordGreen + CenterCoord; + // Offset center blue + vec2 CoordBlue = ChBlueOffsetL * L + ChBlueOffsetR * R; + CoordBlue.x *= -1.0; + CoordBlue = 0.01 * CoordBlue + CenterCoord; + +// float RadiusGreen = dot(CoordGreen, CoordGreen); // Radius squared (techically accurate) +// float RadiusBlue = dot(CoordBlue, CoordBlue); // Radius squared (techically accurate) + float RadiusGreen = length(CoordGreen); // Radius + float RadiusBlue = length(CoordBlue); // Radius + + // Calculate radial distortion K + float correctionGreenK = (1.0+ChGreenK.x)*kRadial(RadiusGreen, ChGreenK.y, ChGreenK.z, ChGreenK.w, 0.0); + float correctionBlueK = (1.0+ChBlueK.x)*kRadial(RadiusBlue, ChBlueK.y, ChBlueK.z, ChBlueK.w, 0.0); + + // Apply chromatic aberration correction + CoordGreen = CoordGreen * correctionGreenK; + CoordBlue = CoordBlue * correctionBlueK; + + CoordGreen *= Diagonal; CoordBlue *= Diagonal; // Back to vertical normalization + CoordGreen.x /= rAspect; CoordBlue.x /= rAspect; // Back to square + + // Move origin to left top corner + CoordGreen = CoordGreen * 0.5 + 0.5; CoordBlue = CoordBlue * 0.5 + 0.5; + + // Generate border mask for green and blue channel + float MaskBlue, MaskGreen; if(StereoSwitch) + { + // Mask compensation for center cut + float CenterCut = 0.5+(0.5-IPD)*SideScreenSwitch; + + // Mask sides and center cut for blue channel + vec2 MaskCoordBlue; + MaskCoordBlue.x = CoordBlue.x*2.0 - CenterCut; // Compensate for 2 views + MaskCoordBlue.y = CoordBlue.y; + MaskBlue = BorderMaskAA(MaskCoordBlue); + + // Mask sides and center cut for green channel + vec2 MaskCoordGreen; + MaskCoordGreen.x = CoordGreen.x*2.0 - CenterCut; // Compensate for 2 views + MaskCoordGreen.y = CoordGreen.y; + MaskGreen = BorderMaskAA(MaskCoordGreen); + + // Reverse stereo coordinates to single view + CoordGreen = InvStereoVision(CoordGreen, int(SideScreenSwitch), IPD); + CoordBlue = InvStereoVision(CoordBlue, int(SideScreenSwitch), IPD); + } + else + { + MaskBlue = BorderMaskAA(CoordBlue); + MaskGreen = BorderMaskAA(CoordGreen); + }; + + vec3 Image; + // Sample image red + Image.r = texture(Source, texcoord).r; + // Sample image green + Image.g = mix( + texture(Source, CoordGreen).g, + 0.0, // Black borders + MaskGreen // Anti-aliased border mask + ); + // Sample image blue + Image.b = mix( + texture(Source, CoordBlue).b, + 0.0, // Black borders + MaskBlue // Anti-aliased border mask + ); + + // Display chromatic aberration + FragColor = vec4(Image, 1.0); +} diff --git a/stereoscopic-3d/shaders/fubax_vr/FilmicSharpen.slang b/stereoscopic-3d/shaders/fubax_vr/FilmicSharpen.slang new file mode 100644 index 0000000..3441470 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/FilmicSharpen.slang @@ -0,0 +1,101 @@ +#version 450 + +/* +/// VR shader /// + +Make any game VR and any screen with lenses a VR headset. +Thanks to this shader you'll be able to correct distortions of any lens types +(DIY, experimental) and chromatic aberration. +Also if a game outputs depth pass you can have a stereo-3D vision thanks to +the parallax mapping (which needs some further improvement). + +Copyright (c) 2019 Jacob Max Fober + +This work is licensed under the Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International License. +To view a copy of this license, visit +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +If you want to use it commercially, contact me at jakub.m.fober@pm.me +If you have questions, visit https://reshade.me/forum/shader-discussion/ + +I'm author of most of equations present here, +beside Brown-Conrady distortion correction model and +Parallax Steep and Occlusion mapping which +I changed and adopted from various sources. + +Version 0.4.2 alpha +*/ + +layout(push_constant) uniform Push +{ + vec4 SourceSize; + vec4 OriginalSize; + vec4 OutputSize; + uint FrameCount; +} params; + +#include "fubax_vr_params.inc" + +#pragma stage vertex +layout(location = 0) in vec4 Position; +layout(location = 1) in vec2 TexCoord; +layout(location = 0) out vec2 texcoord; + +void main() +{ + gl_Position = global.MVP * Position; + texcoord = TexCoord; +} + +#pragma stage fragment +layout(location = 0) in vec2 texcoord; +layout(location = 0) out vec4 FragColor; +layout(set = 0, binding = 2) uniform sampler2D Source; + +#include "fubax_vr_shared_funcs.inc" + +void main() +{ + vec2 UvCoord = texcoord; + // Bypass sharpening + if(!Sharpen) + { + FragColor = vec4(texture(Source, UvCoord).rgb, 1.0); + return; + } + + vec2 Pixel = (texcoord.xy * params.OutputSize.xy) * Offset; + // Sample display image + vec3 ImgSource = texture(Source, UvCoord).rgb; + + vec2 NorSouWesEst[4] = { + vec2(UvCoord.x, UvCoord.y + Pixel.y), + vec2(UvCoord.x, UvCoord.y - Pixel.y), + vec2(UvCoord.x + Pixel.x, UvCoord.y), + vec2(UvCoord.x - Pixel.x, UvCoord.y) + }; + + // Luma high-pass + float HighPass = 0.0; + for(int i=0; i<4; i++) + { + HighPass += Luma(texture(Source, NorSouWesEst[i]).rgb); + } + HighPass = 0.5 - 0.5 * (HighPass * 0.25 - Luma(ImgSource)); + + // Sharpen strength + HighPass = mix(0.5, HighPass, Strength * 0.01); + + // Clamping sharpen + HighPass = (Clamp != 1.0) ? max(min(HighPass, Clamp), 1.0 - Clamp) : HighPass; + + vec3 Sharpen = vec3( + Overlay(ImgSource.r, HighPass), + Overlay(ImgSource.g, HighPass), + Overlay(ImgSource.b, HighPass) + ); + + FragColor.rgb = (Preview) ? vec3(HighPass) : Sharpen; + FragColor.a = 1.0; +} diff --git a/stereoscopic-3d/shaders/fubax_vr/VR.slang b/stereoscopic-3d/shaders/fubax_vr/VR.slang new file mode 100644 index 0000000..4254918 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/VR.slang @@ -0,0 +1,172 @@ +#version 450 + +/* +/// VR shader /// + +Make any game VR and any screen with lenses a VR headset. +Thanks to this shader you'll be able to correct distortions of any lens types +(DIY, experimental) and chromatic aberration. +Also if a game outputs depth pass you can have a stereo-3D vision thanks to +the parallax mapping (which needs some further improvement). + +Copyright (c) 2019 Jacob Max Fober + +This work is licensed under the Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International License. +To view a copy of this license, visit +http://creativecommons.org/licenses/by-nc-sa/4.0/ + +If you want to use it commercially, contact me at jakub.m.fober@pm.me +If you have questions, visit https://reshade.me/forum/shader-discussion/ + +I'm author of most of equations present here, +beside Brown-Conrady distortion correction model and +Parallax Steep and Occlusion mapping which +I changed and adopted from various sources. + +Version 0.4.2 alpha +*/ + +layout(push_constant) uniform Push +{ + vec4 SourceSize; + vec4 OutputSize; + uint FrameCount; +} params; + +#include "fubax_vr_params.inc" + +#pragma stage vertex +layout(location = 0) in vec4 Position; +layout(location = 1) in vec2 TexCoord; +layout(location = 0) out vec2 texcoord; + +void main() +{ + gl_Position = global.MVP * Position; + texcoord = TexCoord * 1.00001; +} + +#pragma stage fragment +layout(location = 0) in vec2 texcoord; +layout(location = 0) out vec4 FragColor; +layout(set = 0, binding = 2) uniform sampler2D Source; + +#include "fubax_vr_shared_funcs.inc" + +void main() +{ + // Get display aspect ratio (horizontal/vertical resolution) + const float rAspect = params.OutputSize.x*params.OutputSize.w; + + // Divide screen in two + vec2 UvCoord = StereoSwitch? StereoVision(texcoord, IPD) : texcoord; + + // Generate negative-positive stereo mask + float StereoMask = step(0.5, texcoord.x)*2.0-1.0; + + // Correct lens distortion + if(PerspectiveSwitch) + { + // Center coordinates + UvCoord = UvCoord*2.0-1.0; + UvCoord.x *= rAspect; + vec2 StereoCoord = UvCoord; // Save coordinates for Brown-Conrady correction + + // Base distortion correction + if(bool(FOV)) // If FOV is not equal 0 + { + float radFOV = radians(FOV); + // Calculate radius + float Radius = length(UvCoord); + // Apply base lens correction + switch(LensType) + { + case 0: + { UvCoord *= Orthographic(radFOV, Radius); break; } + case 1: + { UvCoord *= Equisolid(radFOV, Radius); break; } + case 2: + { UvCoord *= Equidistant(radFOV, Radius); break; } + case 3: + { UvCoord *= Stereographic(radFOV, Radius); break; } + } + }; + + // Lens geometric aberration correction (Brown-Conrady model) + float Diagonal = rAspect; + Diagonal *= StereoSwitch ? 0.5 : 1.0; + Diagonal = length(vec2(Diagonal, 1.0)); + float InvDiagonal2 = 1.0 / pow(Diagonal, 2); + + StereoCoord /= Diagonal; // Normalize diagonally + float Radius2 = dot(StereoCoord, StereoCoord); // Squared radius + float correctionK = kRadial(Radius2, K.x, K.y, K.z, K.w); + // Apply negative-positive stereo mask for tangental distortion (flip side) + float SideScreenSwitch = (StereoSwitch) ? StereoMask : 1.0; + + vec2 correctionP = pTangental( + StereoCoord, + Radius2, + P.x * SideScreenSwitch, + P.y, + P.z, + 0.0 + ); + // Expand background to vertical border (but not for test grid for ease of calibration) + UvCoord /= TestGrid ? vec2(1.0) : vec2(kRadial(InvDiagonal2, K.x, K.y, K.z, K.w)); + UvCoord = UvCoord * correctionK + correctionP; // Apply lens correction + + // Scale image + UvCoord /= TestGrid ? vec2(1.0) : vec2(ImageScale); + + // Revert aspect ratio to square + UvCoord.x /= rAspect; + // Move origin back to left top corner + UvCoord = UvCoord*0.5 + vec2(0.5); + } + + // Display test grid + if(TestGrid) { + FragColor = vec4(Grid(UvCoord, rAspect), 1.0); + return; + } + +/* Disable for RetroArch since there's no depth buffer + // Create parallax effect + if(ParallaxSwitch) + { + float ParallaxDirection = ParallaxOffset*0.01; + // For stereo-vison flip direction on one side + ParallaxDirection *= StereoSwitch ? StereoMask : 1.0; + // Apply parallax effect + UvCoord = Parallax( + UvCoord, + ParallaxDirection, + ParallaxCenter, + ParallaxMaskScalar, + ParallaxSteps + ); + } +*/ + + // added by hunterk to adjust aspect ratio of the image + vec2 corrected_size = params.SourceSize.xy * vec2(img_ar.x / img_ar.y, 1.0) + * vec2(params.SourceSize.y / params.SourceSize.x, 1.0); + float full_scale = params.OutputSize.y / params.SourceSize.y; + vec2 scale = (params.OutputSize.xy / corrected_size) / full_scale; + vec2 middle = vec2(0.49999, 0.49999); + vec2 diff = UvCoord.xy - middle; + vec2 screen_coord = middle + diff * scale; + UvCoord = ((screen_coord - vec2(0.5)) * imgzoom) + vec2(0.5); + + // Sample image with black borders to display + vec3 Image = mix( + texture(Source, UvCoord).rgb, // Display image + vec3(0.0), // Black borders + BorderMaskAA(UvCoord) // Anti-aliased border mask + ); + + // Display image + FragColor = vec4(Image, 1.0); +} diff --git a/stereoscopic-3d/shaders/fubax_vr/VR_nose.slang b/stereoscopic-3d/shaders/fubax_vr/VR_nose.slang new file mode 100644 index 0000000..424e2f8 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/VR_nose.slang @@ -0,0 +1,95 @@ +#version 450 + +/* +Nose PS (c) 2019 Jacob Maximilian Fober + +Anti-nausea shader for VR + +This work is licensed under the Creative Commons +Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit +http://creativecommons.org/licenses/by-sa/4.0/. +*/ + +layout(push_constant) uniform Push +{ + vec4 SourceSize; + vec4 OriginalSize; + vec4 OutputSize; + uint FrameCount; +} params; + +#ifndef nose +#define nose 128 // Nose texture resolution +#endif + +#define mul(c,d) (d*c) + +#include "fubax_vr_params.inc" + +#pragma stage vertex +layout(location = 0) in vec4 Position; +layout(location = 1) in vec2 TexCoord; +layout(location = 0) out vec2 texcoord; + +void main() +{ + gl_Position = global.MVP * Position; + texcoord = TexCoord; +} + +#pragma stage fragment +layout(location = 0) in vec2 texcoord; +layout(location = 0) out vec4 FragColor; +layout(set = 0, binding = 2) uniform sampler2D Source; +layout(set = 0, binding = 3) uniform sampler2D noseTex; + +//#include "fubax_vr_shared_funcs.inc" +// Convert RGB to YUV +vec3 yuv(vec3 rgbImage) +{ + // RGB to YUV709 matrix + const mat3 YUV709 = + mat3( + vec3(0.2126, 0.7152, 0.0722), + vec3(-0.09991, -0.33609, 0.436), + vec3(0.615, -0.55861, -0.05639) + ); + return mul(YUV709, rgbImage); +} + +// Overlay blending mode +float Overlay(float LayerAB) +{ + float MinAB = min(LayerAB, 0.5); + float MaxAB = max(LayerAB, 0.5); + return 2.0 * (MinAB*MinAB + 2.0*MaxAB - MaxAB*MaxAB) - 1.5; +} + +void main() +{ + vec2 UvCoord = texcoord; + // Bypass sharpening + if(!Nose) + { + FragColor = vec4(texture(Source, UvCoord).rgb, 1.0); + return; + } + + // Divide screen in two (mirrored) + vec2 StereoCoord = texcoord; + StereoCoord.x = 1.0-abs(StereoCoord.x*2.0-1.0)/Scale.x; + StereoCoord.y = 1.0-(1.0-StereoCoord.y)/Scale.y; + + // Sample display image + vec3 Display = texture(Source, texcoord).rgb; + // Sample nose texture + vec4 NoseTexture = texture(noseTex, StereoCoord); + // Change skintone + NoseTexture.rgb *= mix(smoothstep(0.0, 1.0, yuv(NoseTexture.rgb).x), 1.0, Brightness); + + + // Blend nose with display image + FragColor.rgb = mix(Display, NoseTexture.rgb, NoseTexture.a); + FragColor.a = 1.0; +} diff --git a/stereoscopic-3d/shaders/fubax_vr/fubax_vr_params.inc b/stereoscopic-3d/shaders/fubax_vr/fubax_vr_params.inc new file mode 100644 index 0000000..48459b8 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/fubax_vr_params.inc @@ -0,0 +1,123 @@ +layout(std140, set = 0, binding = 0) uniform UBO +{ + mat4 MVP; + float SoloLines, TestGrid, IPD, StereoSwitch, FOV, LensType, K1, K2, + K3, K4, P1, P2, P3, ImageScale, PerspectiveSwitch, ChGreenK1, ChGreenK2, + ChGreenK3, ChGreenK4, SoloGreen, ChBlueK1, ChBlueK2, ChBlueK3, ChBlueK4, + SoloBlue, ChromaticAbrSwitch, ChGreenOffsetL_x, ChGreenOffsetL_y, + ChBlueOffsetL_x, ChBlueOffsetL_y, ChGreenOffsetR_x, ChGreenOffsetR_y, + ChBlueOffsetR_x, ChBlueOffsetR_y, Strength, Clamp, Offset, Preview, + Sharpen, Nose, Brightness, Scale_x, Scale_y, imgzoom, aspect_x, aspect_y; + /*ParallaxOffset, ParallaxCenter, ParallaxSteps, ParallaxMaskScalar, + ParallaxSwitch */ +} global; + +#ifndef MaximumParallaxSteps +#define MaximumParallaxSteps 1024 // Defefine max steps to make loop finite +#endif + +// Grid settings +#ifndef BoxAmount +#define BoxAmount 31 // Number of boxes horizontally (choose odd number) +#endif + +#ifndef thicknessA +#define thicknessA 0.25 // White grid thickness +#endif + +#ifndef thicknessB +#define thicknessB 0.125 // Yellow cross thickness +#endif + +#ifndef crossColor +#define crossColor vec3(1.0, 1.0, 0.0) // Center cross color (yellow) +#endif + +#pragma parameter TestGrid "Toggle Calibration Grid" 0.0 0.0 1.0 1.0 +#pragma parameter StereoSwitch "Toggle Stereo Vision" 1.0 0.0 1.0 1.0 +#pragma parameter PerspectiveSwitch "Toggle Lens Correction" 1.0 0.0 1.0 1.0 +//#pragma parameter ParallaxSwitch "Toggle Parallax Effect" 1.0 0.0 1.0 1.0 +#pragma parameter ChromaticAbrSwitch "Toggle Chromatic Correction" 1.0 0.0 1.0 1.0 +#pragma parameter Nose "Toggle Virtual Nose (helps nausea)" 0.0 0.0 1.0 1.0 +#pragma parameter Sharpen "Toggle Sharpening" 1.0 0.0 1.0 1.0 +#pragma parameter SoloLines "Lines (All, Horz, Vert, Rad)" 0.0 0.0 3.0 1.0 +#pragma parameter IPD "IPD (Interpupillary Distance)" 0.500 0.0 0.75 0.001 +#pragma parameter imgzoom "Image Zoom" 1.6 0.1 5.0 0.01 +#pragma parameter aspect_x "Image Aspect Ratio Numerator" 64.0 1.0 256.0 1.0 +#pragma parameter aspect_y "Image Aspect Ratio Denominator" 49.0 1.0 256. 1.0 +//#pragma parameter ParallaxOffset "Parallax Horizontal Offset" 0.355 0.0 1.0 0.001 +//#pragma parameter ParallaxCenter "Parallax Rotation Center (ZPD)" 1.0 0.0 1.0 0.001 +//#pragma parameter ParallaxSteps "Parallax Sampling Steps" 16.0 1.0 128.0 0.2 +//#pragma parameter ParallaxMaskScalar "Parallax Gap Compensation" 10.0 0.0 32.0 0.2 +#pragma parameter FOV "Lens Distortion Power" 96.0 0.0 170.0 0.1 +#pragma parameter LensType "Lens Dist Type (Ortho, Equisolid, Equidist, Stereo)" 0.0 0.0 3.0 1.0 +#pragma parameter K1 "Radial Correction #1 (Brown-Conrady Model)" 0.0 0.0 1.0 0.01 +#pragma parameter K2 "Radial Correction #2 (Brown-Conrady Model)" 0.0 0.0 1.0 0.01 +#pragma parameter K3 "Radial Correction #3 (Brown-Conrady Model)" 0.0 0.0 1.0 0.01 +#pragma parameter K4 "Radial Correction #4 (Brown-Conrady Model)" 0.0 0.0 1.0 0.01 +#pragma parameter P1 "Tangential Correction #1 (Brown-Conrady Model)" 0.0 0.0 1.0 0.001 +#pragma parameter P2 "Tangential Correction #2 (Brown-Conrady Model)" 0.0 0.0 1.0 0.001 +#pragma parameter P3 "Tangential Correction #3 (Brown-Conrady Model)" 0.0 0.0 1.0 0.001 +#pragma parameter ImageScale "Image Scale" 1.0 0.25 1.0 0.01 +#pragma parameter ChGreenK1 "Chromatic Green Correction (Zoom)" 0.0 0.0 1.0 0.001 +#pragma parameter ChGreenK2 "Chromatic Green Correction (K1)" 0.0 0.0 1.0 0.001 +#pragma parameter ChGreenK3 "Chromatic Green Correction (K2)" 0.0 0.0 1.0 0.001 +#pragma parameter ChGreenK4 "Chromatic Green Correction (K3)" 0.0 0.0 1.0 0.001 +#pragma parameter SoloGreen "Green Channel Adj Solo" 0.0 0.0 1.0 1.0 +#pragma parameter ChBlueK1 "Chromatic Blue Correction (Zoom)" 0.0 0.0 1.0 0.001 +#pragma parameter ChBlueK2 "Chromatic Blue Correction (K1)" 0.0 0.0 1.0 0.001 +#pragma parameter ChBlueK3 "Chromatic Blue Correction (K2)" 0.0 0.0 1.0 0.001 +#pragma parameter ChBlueK4 "Chromatic Blue Correction (K3)" 0.0 0.0 1.0 0.001 +#pragma parameter SoloBlue "Blue Channel Adj Solo" 0.0 0.0 1.0 1.0 +#pragma parameter ChGreenOffsetL_x "Left Green Center Offset X" 0.0 -0.2 0.2 0.001 +#pragma parameter ChGreenOffsetL_y "Left Green Center Offset Y" 0.0 -0.2 0.2 0.001 +#pragma parameter ChBlueOffsetL_x "Left Blue Center Offset X" 0.0 -0.2 0.2 0.001 +#pragma parameter ChBlueOffsetL_y "Left Blue Center Offset Y" 0.0 -0.2 0.2 0.001 +#pragma parameter ChGreenOffsetR_x "Right Green Center Offset X" 0.0 -0.2 0.2 0.001 +#pragma parameter ChGreenOffsetR_y "Right Green Center Offset Y" 0.0 -0.2 0.2 0.001 +#pragma parameter ChBlueOffsetR_x "Right Blue Center Offset X" 0.0 -0.2 0.2 0.001 +#pragma parameter ChBlueOffsetR_y "Right Blue Center Offset Y" 0.0 -0.2 0.2 0.001 +#pragma parameter Strength "Sharpen Strength" 25.0 0.0 100.0 0.5 +#pragma parameter Clamp "Sharpen Clamping" 0.65 0.5 1.0 0.001 +#pragma parameter Offset "High-pass Offset" 0.1 0.01 2.0 0.002 +#pragma parameter Preview "Preview Sharpen Layer" 0.0 0.0 1.0 1.0 +#pragma parameter Brightness "Virtual Nose Brightness" 1.0 0.0 1.0 0.01 +#pragma parameter Scale_x "Virtual Nose Scale X" 0.382 0.1 1.0 0.01 +#pragma parameter Scale_y "Virtual Nose Scale Y" 0.618 0.1 1.0 0.01 + +int SoloLines = int(global.SoloLines); +bool TestGrid = bool(global.TestGrid); +float IPD = global.IPD; +bool StereoSwitch = bool(global.StereoSwitch); +//float ParallaxOffset = global.ParallaxOffset; +//float ParallaxCenter = global.ParallaxCenter; +//int ParallaxSteps = int(global.ParallaxSteps); +//int ParallaxMaskScalar = int(global.ParallaxMaskScalar); +//bool ParallaxSwitch = bool(global.ParallaxSwitch); +int FOV = int(global.FOV); +int LensType = int(global.LensType); +vec4 K = vec4(global.K1, global.K2, global.K3, global.K4); +vec3 P = vec3(global.P1, global.P2, global.P3); +float ImageScale = global.ImageScale; +bool PerspectiveSwitch = bool(global.PerspectiveSwitch); +vec4 ChGreenK = vec4(global.ChGreenK1, global.ChGreenK2, global.ChGreenK3, + global.ChGreenK4); +bool SoloGreen = bool(global.SoloGreen); +vec4 ChBlueK = vec4(global.ChBlueK1, global.ChBlueK2, global.ChBlueK3, + global.ChBlueK4); +bool SoloBlue = bool(global.SoloBlue); +bool ChromaticAbrSwitch = bool(global.ChromaticAbrSwitch); +vec2 ChGreenOffsetL = vec2(global.ChGreenOffsetL_x, global.ChGreenOffsetL_y); +vec2 ChBlueOffsetL = vec2(global.ChBlueOffsetL_x, global.ChBlueOffsetL_y); +vec2 ChGreenOffsetR = vec2(global.ChGreenOffsetR_x, global.ChGreenOffsetR_y); +vec2 ChBlueOffsetR = vec2(global.ChBlueOffsetR_x, global.ChBlueOffsetR_y); +float Strength = global.Strength; +float Clamp = global.Clamp; +float Offset = global.Offset; +bool Preview = bool(global.Preview); +bool Sharpen = bool(global.Sharpen); +bool Nose = bool(global.Nose); +float Brightness = global.Brightness; +vec2 Scale = vec2(global.Scale_x, global.Scale_y); +float imgzoom = global.imgzoom; +vec2 img_ar = vec2(global.aspect_x, global.aspect_y); diff --git a/stereoscopic-3d/shaders/fubax_vr/fubax_vr_shared_funcs.inc b/stereoscopic-3d/shaders/fubax_vr/fubax_vr_shared_funcs.inc new file mode 100644 index 0000000..8cab660 --- /dev/null +++ b/stereoscopic-3d/shaders/fubax_vr/fubax_vr_shared_funcs.inc @@ -0,0 +1,205 @@ +// Adjust to limited RGB +vec3 tv(vec3 Input) +{ return Input*((235.0-16.0)/255.0)+16.0/255.0; } + +// Generate test grid +vec3 Grid(vec2 Coordinates, float AspectRatio) +{ +// Grid settings +#ifndef BoxAmount +#define BoxAmount 31 // Number of boxes horizontally (choose odd number) +#endif + +#ifndef thicknessA +#define thicknessA 0.25 // White grid thickness +#endif + +#ifndef thicknessB +#define thicknessB 0.125 // Yellow cross thickness +#endif + +#ifndef crossColor +#define crossColor vec3(1.0, 1.0, 0.0) // Center cross color (yellow) +#endif + + bool RadialPattern = (SoloLines == 3); + + vec2 GridCoord = Coordinates; + GridCoord.y -= 0.5; // Center coordinates vertically + GridCoord.y /= AspectRatio; // Correct aspect + GridCoord.y += 0.5; // Center at middle + + vec2 CrossUV = GridCoord; // Store center cross coordinates + + vec2 PixelSize; vec3 gridColor; + // Generate grid pattern + GridCoord = (RadialPattern) ? vec2(length(GridCoord-0.5)*1.618) : GridCoord; // Switch to radial pattern + GridCoord = abs(fract(GridCoord*BoxAmount)*2.0-1.0)*(thicknessA+1.0); + // Anti-aliased grid + PixelSize = fwidth(GridCoord.xy); + GridCoord = smoothstep(1.0-PixelSize, 1.0+PixelSize, GridCoord); + + // Combine/solo vertical and horizontal lines + switch(SoloLines) + { + case 1: + { gridColor = vec3(GridCoord.y); break; } + case 2: + { gridColor = vec3(GridCoord.x); break; } + default: + { gridColor = vec3(max(GridCoord.x, GridCoord.y)); break; } + }; + + // Generate center cross + CrossUV = 1.0-abs(CrossUV*2.0-1.0); + CrossUV = CrossUV*(thicknessB/BoxAmount+1.0); + // Anti-aliased cross + PixelSize = fwidth(CrossUV); + CrossUV = smoothstep(1.0-PixelSize, 1.0+PixelSize, CrossUV); + // Combine vertical and horizontal line + float CrossMask = max(CrossUV.y, CrossUV.x); + + // Blend grid and center cross + gridColor = mix(gridColor, ((RadialPattern) ? vec3(1.0) : crossColor), vec3(CrossMask)); + + // Solo colors + if(SoloGreen) gridColor.b = 0.0; + if(SoloBlue) gridColor.g = 0.0; + + // Reduce grid brightness + return tv(gridColor); +} + +// Divide screen into two halfs +vec2 StereoVision(vec2 Coordinates, float Center) +{ + vec2 StereoCoord = Coordinates; + StereoCoord.x = 0.25 + abs( StereoCoord.x*2.0-1.0 ) * 0.5; // Divide screen in two + StereoCoord.x -= mix(-0.25, 0.25, Center); // Change center for interpupillary distance (IPD) + // Mirror left half + float ScreenSide = step(0.5, Coordinates.x); + StereoCoord.x *= ScreenSide*2.0-1.0; + StereoCoord.x += 1.0 - ScreenSide; + return StereoCoord; +} + +// Convert stereo coordinates to mono +vec2 InvStereoVision(vec2 Coordinates, int ScreenMask, float Center) +{ + vec2 stereoCoord = Coordinates; + stereoCoord.x += Center*0.5 * ScreenMask; + return stereoCoord; +} + +// Generate border mask with anti-aliasing from UV coordinates +float BorderMaskAA(vec2 Coordinates) +{ + vec2 RaidalCoord = abs(Coordinates*2.0-1.0); + // Get pixel size in transformed coordinates (for anti-aliasing) + vec2 PixelSize = fwidth(RaidalCoord); + + // Create borders mask (with anti-aliasing) + vec2 Borders = smoothstep(1.0-PixelSize, 1.0+PixelSize, RaidalCoord); + + // Combine side and top borders + return max(Borders.x, Borders.y); +} + +/* +// Can't really use this one as RetroArch can't access the depth buffer +float GetDepth(vec2 texcoord) +{ + return ReShade::GetLinearizedDepth(texcoord); +} + + +// Horizontal parallax offset effect +vec2 Parallax(vec2 Coordinates, float Offset, float Center, int GapOffset, int Steps) +{ +// Limit amount of loop steps to make it finite +#ifndef MaximumParallaxSteps +#def MaximumParallaxSteps 64 +#endif + + // Offset per step progress + float LayerDepth = 1.0 / min(MaximumParallaxSteps, Steps); + + // Netto layer offset change + float deltaCoordinates = Offset * LayerDepth; + + vec2 ParallaxCoord = Coordinates; + // Offset image horizontally so that parallax is in the depth appointed center + ParallaxCoord.x += Offset * Center; + float CurrentDepthMapValue = GetDepth(ParallaxCoord); // Replace function + + // Steep parallax mapping + float CurrentLayerDepth = 0.0; + [loop] + while(CurrentLayerDepth < CurrentDepthMapValue) + { + // Shift coordinates horizontally in linear fasion + ParallaxCoord.x -= deltaCoordinates; + // Get depth value at current coordinates + CurrentDepthMapValue = GetDepth(ParallaxCoord); // Replace function + // Get depth of next layer + CurrentLayerDepth += LayerDepth; + continue; + } + + // Parallax Occlusion Mapping + vec2 PrevParallaxCoord = ParallaxCoord; + PrevParallaxCoord.x += deltaCoordinates; + float afterDepthValue = CurrentDepthMapValue - CurrentLayerDepth; + float beforeDepthValue = GetDepth(PrevParallaxCoord); // Replace function + // Store depth read difference for masking + float DepthDifference = beforeDepthValue - CurrentDepthMapValue; + + beforeDepthValue += LayerDepth - CurrentLayerDepth; + // Interpolate coordinates + float weight = afterDepthValue / (afterDepthValue - beforeDepthValue); + ParallaxCoord = PrevParallaxCoord * weight + ParallaxCoord * (1.0 - weight); + + // Apply gap masking (by JMF) + DepthDifference *= GapOffset * Offset * 100.0; + DepthDifference *= ReShade::PixelSize.x; // Replace function + ParallaxCoord.x += DepthDifference; + + return ParallaxCoord; +}; +*/ + +// Lens projection model (algorithm by JMF) +float Orthographic(float rFOV, float R){ return tan(asin(sin(rFOV*0.5)*R))/(tan(rFOV*0.5)*R); } +float Equisolid(float rFOV, float R){ return tan(asin(sin(rFOV*0.25)*R)*2.0)/(tan(rFOV*0.5)*R); } +float Equidistant(float rFOV, float R){ return tan(R*rFOV*0.5)/(tan(rFOV*0.5)*R); } +float Stereographic(float rFOV, float R){ return tan(atan(tan(rFOV*0.25)*R)*2.0)/(tan(rFOV*0.5)*R); } + +// Brown-Conrady radial distortion model (multiply by coordinates) +float kRadial(float R2, float K1, float K2, float K3, float K4) +{ return 1.0 + K1*R2 + K2*pow(R2,2) + K3*pow(R2,4) + K4*pow(R2,6); } + +// Brown-Conrady tangental distortion model (add to coordinates) +vec2 pTangental(vec2 Coord, float R2, float P1, float P2, float P3, float P4) +{ + return vec2( + (P1*(R2+pow(Coord.x,2)*2.0)+2.0*P2*Coord.x*Coord.y)*(1.0+P3*R2+P4*pow(R2,2)), + (P2*(R2+pow(Coord.y,2)*2.0)+2.0*P1*Coord.x*Coord.y)*(1.0+P3*R2+P4*pow(R2,2)) + ); +} + +// RGB to YUV709.luma +float Luma(vec3 Input) +{ + const vec3 Luma709 = vec3(0.2126, 0.7152, 0.0722); + return dot(Input, Luma709); +} + +// Overlay blending mode +float Overlay(float LayerA, float LayerB) +{ + float MinA = min(LayerA, 0.5); + float MinB = min(LayerB, 0.5); + float MaxA = max(LayerA, 0.5); + float MaxB = max(LayerB, 0.5); + return 2.0 * (MinA * MinB + MaxA + MaxB - MaxA * MaxB) - 1.5; +} diff --git a/stereoscopic-3d/shaders/fubax_vr/nose.png b/stereoscopic-3d/shaders/fubax_vr/nose.png new file mode 100644 index 0000000000000000000000000000000000000000..18113cf9913be2e7fcc80aecd6f67e2367d983af GIT binary patch literal 123216 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%0D**Kab_>N=lm2fAj~ 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

CV- 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