mirror of
https://github.com/italicsjenga/slang-shaders.git
synced 2024-11-22 07:41:31 +11:00
Replace "Original" texture with stock reference pass (#343)
* update shaders that use Original to use a reference pass instead for append/prepend readiness * remove some extraneous files * fix super-xbr preset that was already broken apparently
This commit is contained in:
parent
a97ff81c25
commit
c10a40e656
|
@ -1,13 +1,16 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
|
|
||||||
shader0 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang
|
shader0 = ../stock.slang
|
||||||
alias0 = MMJ_BlurPass_H
|
alias0 = MMJ_MP_refpass
|
||||||
|
|
||||||
shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang
|
shader1 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_H.slang
|
||||||
alias1 = MMJ_BlurPass_V
|
alias1 = MMJ_BlurPass_H
|
||||||
|
|
||||||
shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang
|
shader2 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Blur_V.slang
|
||||||
alias2 = MMJ_OutlinePass
|
alias2 = MMJ_BlurPass_V
|
||||||
|
|
||||||
shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang
|
shader3 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Outline.slang
|
||||||
alias3 = MMJ_ColorPass
|
alias3 = MMJ_OutlinePass
|
||||||
|
|
||||||
|
shader4 = shaders/MMJ_Cel/MMJ_Cel_Shader_MP_Color.slang
|
||||||
|
alias4 = MMJ_ColorPass
|
||||||
|
|
|
@ -56,7 +56,7 @@ void main()
|
||||||
#pragma stage fragment
|
#pragma stage fragment
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Original;
|
layout(set = 0, binding = 2) uniform sampler2D MMJ_MP_refpass;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D MMJ_OutlinePass;
|
layout(set = 0, binding = 3) uniform sampler2D MMJ_OutlinePass;
|
||||||
|
|
||||||
vec3 RGB2HSL(vec3 cRGB)
|
vec3 RGB2HSL(vec3 cRGB)
|
||||||
|
@ -143,7 +143,7 @@ vec3 colorAdjust(vec3 cRGB)
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec3 cOriginal = texture(Original, vTexCoord).rgb;
|
vec3 cOriginal = texture(MMJ_MP_refpass, vTexCoord).rgb;
|
||||||
vec3 cOutline = texture(MMJ_OutlinePass, vTexCoord).rgb;
|
vec3 cOutline = texture(MMJ_OutlinePass, vTexCoord).rgb;
|
||||||
|
|
||||||
vec3 cNew = cOriginal;
|
vec3 cNew = cOriginal;
|
||||||
|
|
|
@ -1,26 +1,33 @@
|
||||||
shaders = "4"
|
shaders = "5"
|
||||||
shader0 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang
|
|
||||||
filter_linear0 = "false"
|
shader0 = ../stock.slang
|
||||||
float_framebuffer0 = "false"
|
alias0 = crt_interlaced_halation_refpass
|
||||||
scale_type_x0 = "source"
|
|
||||||
scale_x0 = "1.000000"
|
shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass0.slang
|
||||||
scale_type_y0 = "source"
|
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass1.slang
|
|
||||||
filter_linear1 = "false"
|
filter_linear1 = "false"
|
||||||
float_framebuffer1 = "false"
|
float_framebuffer1 = "false"
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang
|
|
||||||
|
shader2 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass1.slang
|
||||||
filter_linear2 = "false"
|
filter_linear2 = "false"
|
||||||
float_framebuffer2 = "false"
|
float_framebuffer2 = "false"
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_x2 = "3.000000"
|
scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "3.000000"
|
scale_y2 = "1.000000"
|
||||||
shader3 = ../stock.slang
|
|
||||||
filter_linear3 = "true"
|
shader3 = shaders/crt-interlaced-halation/crt-interlaced-halation-pass2.slang
|
||||||
float_framebuffer3 = "false"
|
filter_linear3 = "false"
|
||||||
|
float_framebuffer3 = "false"
|
||||||
|
scale_type_x3 = "source"
|
||||||
|
scale_x3 = "3.000000"
|
||||||
|
scale_type_y3 = "source"
|
||||||
|
scale_y3 = "3.000000"
|
||||||
|
|
||||||
|
shader4 = ../stock.slang
|
||||||
|
filter_linear4 = "true"
|
||||||
|
float_framebuffer4 = "false"
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,18 @@
|
||||||
shaders = "6"
|
shaders = "7"
|
||||||
|
|
||||||
shader0 = "shaders/crt-easymode-halation/linearize.slang"
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = "true"
|
alias0 = glow_trails_refpass
|
||||||
srgb_framebuffer0 = "true"
|
|
||||||
scale_type_x0 = "source"
|
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
|
||||||
scale_y0 = "1.000000"
|
|
||||||
alias0 = ORIG_LINEARIZED
|
|
||||||
|
|
||||||
shader1 = "shaders/crt-easymode-halation/blur_horiz.slang"
|
shader1 = "shaders/crt-easymode-halation/linearize.slang"
|
||||||
filter_linear1 = "false"
|
filter_linear1 = "true"
|
||||||
srgb_framebuffer1 = "true"
|
srgb_framebuffer1 = "true"
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
|
alias1 = ORIG_LINEARIZED
|
||||||
|
|
||||||
shader2 = "shaders/crt-easymode-halation/blur_vert.slang"
|
shader2 = "shaders/crt-easymode-halation/blur_horiz.slang"
|
||||||
filter_linear2 = "false"
|
filter_linear2 = "false"
|
||||||
srgb_framebuffer2 = "true"
|
srgb_framebuffer2 = "true"
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
|
@ -25,19 +20,27 @@ scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "1.000000"
|
scale_y2 = "1.000000"
|
||||||
|
|
||||||
shader3 = "shaders/crt-easymode-halation/threshold.slang"
|
shader3 = "shaders/crt-easymode-halation/blur_vert.slang"
|
||||||
filter_linear3 = "false"
|
filter_linear3 = "false"
|
||||||
srgb_framebuffer3 = "true"
|
srgb_framebuffer3 = "true"
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_x3 = "1.000000"
|
scale_x3 = "1.000000"
|
||||||
scale_type_y3 = "source"
|
scale_type_y3 = "source"
|
||||||
scale_y3 = "1.000000"
|
scale_y3 = "1.000000"
|
||||||
alias3 = GlowPass
|
|
||||||
|
|
||||||
shader4 = "shaders/crt-lottes-multipass/bloompass.slang"
|
shader4 = "shaders/crt-easymode-halation/threshold.slang"
|
||||||
filter_linear4 = "true"
|
filter_linear4 = "false"
|
||||||
alias4 = BloomPass
|
srgb_framebuffer4 = "true"
|
||||||
srgb_framebuffer4 = true
|
scale_type_x4 = "source"
|
||||||
|
scale_x4 = "1.000000"
|
||||||
|
scale_type_y4 = "source"
|
||||||
|
scale_y4 = "1.000000"
|
||||||
|
alias4 = GlowPass
|
||||||
|
|
||||||
shader5 = "shaders/crt-lottes-multipass/scanpass-glow.slang"
|
shader5 = "shaders/crt-lottes-multipass/bloompass.slang"
|
||||||
filter_linear5 = "true"
|
filter_linear5 = "true"
|
||||||
|
alias5 = BloomPass
|
||||||
|
srgb_framebuffer5 = true
|
||||||
|
|
||||||
|
shader6 = "shaders/crt-lottes-multipass/scanpass-glow.slang"
|
||||||
|
filter_linear6 = "true"
|
||||||
|
|
|
@ -1,165 +1,168 @@
|
||||||
shaders = "20"
|
shaders = "21"
|
||||||
|
|
||||||
shader0 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = "false"
|
alias0 = maximus_refpass
|
||||||
srgb_framebuffer0 = "true"
|
|
||||||
scale_type0 = "source"
|
|
||||||
scale0 = "1.0"
|
|
||||||
|
|
||||||
shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
shader1 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
||||||
filter_linear1 = "true"
|
filter_linear1 = "false"
|
||||||
wrap_mode1 = "clamp_to_border"
|
|
||||||
alias1 = "ORIG_LINEARIZED"
|
|
||||||
srgb_framebuffer1 = "true"
|
srgb_framebuffer1 = "true"
|
||||||
scale_type1 = "source"
|
scale_type1 = "source"
|
||||||
scale1 = "1.0"
|
scale1 = "1.0"
|
||||||
|
|
||||||
shader2 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
shader2 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
||||||
filter_linear2 = "true"
|
filter_linear2 = "true"
|
||||||
wrap_mode2 = "clamp_to_border"
|
wrap_mode2 = "clamp_to_border"
|
||||||
|
alias2 = "ORIG_LINEARIZED"
|
||||||
srgb_framebuffer2 = "true"
|
srgb_framebuffer2 = "true"
|
||||||
scale_type_x2 = "source"
|
scale_type2 = "source"
|
||||||
scale_type_y2 = "source"
|
scale2 = "1.0"
|
||||||
scale_x2 = "1.0"
|
|
||||||
scale_y2 = "3.0"
|
|
||||||
|
|
||||||
shader3 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
||||||
filter_linear3 = "true"
|
filter_linear3 = "true"
|
||||||
alias3 = "VERTICAL_SCANLINES"
|
wrap_mode3 = "clamp_to_border"
|
||||||
srgb_framebuffer3 = "true"
|
srgb_framebuffer3 = "true"
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_type_y3 = "viewport"
|
scale_type_y3 = "source"
|
||||||
scale_x3 = "1.0"
|
scale_x3 = "1.0"
|
||||||
scale_y3 = "1.95"
|
scale_y3 = "3.0"
|
||||||
|
|
||||||
shader4 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
shader4 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear4 = "true"
|
filter_linear4 = "true"
|
||||||
wrap_mode4 = "clamp_to_border"
|
alias4 = "VERTICAL_SCANLINES"
|
||||||
srgb_framebuffer4 = "true"
|
srgb_framebuffer4 = "true"
|
||||||
scale_type_x4 = "absolute"
|
scale_type_x4 = "source"
|
||||||
scale_type_y4 = "absolute"
|
scale_type_y4 = "viewport"
|
||||||
scale_x4 = "320"
|
scale_x4 = "1.0"
|
||||||
scale_y4 = "240"
|
scale_y4 = "1.95"
|
||||||
|
|
||||||
shader5 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader5 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
||||||
filter_linear5 = "true"
|
filter_linear5 = "true"
|
||||||
alias5 = "BLOOM_APPROX"
|
wrap_mode5 = "clamp_to_border"
|
||||||
srgb_framebuffer5 = "true"
|
srgb_framebuffer5 = "true"
|
||||||
scale_type5 = "source"
|
scale_type_x5 = "absolute"
|
||||||
scale5 = "1.0"
|
scale_type_y5 = "absolute"
|
||||||
|
scale_x5 = "320"
|
||||||
|
scale_y5 = "240"
|
||||||
|
|
||||||
shader6 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
shader6 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear6 = "true"
|
filter_linear6 = "true"
|
||||||
wrap_mode6 = "clamp_to_border"
|
alias6 = "BLOOM_APPROX"
|
||||||
srgb_framebuffer6 = "true"
|
srgb_framebuffer6 = "true"
|
||||||
scale_type6 = "source"
|
scale_type6 = "source"
|
||||||
scale6 = "1.0"
|
scale6 = "1.0"
|
||||||
|
|
||||||
shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
||||||
filter_linear7 = "true"
|
filter_linear7 = "true"
|
||||||
wrap_mode7 = "clamp_to_border"
|
wrap_mode7 = "clamp_to_border"
|
||||||
alias7 = "HALATION_BLUR"
|
|
||||||
srgb_framebuffer7 = "true"
|
srgb_framebuffer7 = "true"
|
||||||
scale_type7 = "source"
|
scale_type7 = "source"
|
||||||
scale7 = "1.0"
|
scale7 = "1.0"
|
||||||
|
|
||||||
shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
||||||
filter_linear8 = "true"
|
filter_linear8 = "true"
|
||||||
wrap_mode8 = "clamp_to_border"
|
wrap_mode8 = "clamp_to_border"
|
||||||
srgb_framebuffer8 = "false"
|
alias8 = "HALATION_BLUR"
|
||||||
scale_type_x8 = "absolute"
|
srgb_framebuffer8 = "true"
|
||||||
scale_type_y8 = "viewport"
|
scale_type8 = "source"
|
||||||
scale_x8 = "128"
|
scale8 = "1.0"
|
||||||
scale_y8 = "0.975"
|
|
||||||
|
|
||||||
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
||||||
filter_linear9 = "false"
|
filter_linear9 = "true"
|
||||||
wrap_mode9 = "clamp_to_border"
|
wrap_mode9 = "clamp_to_border"
|
||||||
alias9 = "MASK_RESIZE"
|
srgb_framebuffer9 = "false"
|
||||||
srgb_framebuffer9 = "true"
|
scale_type_x9 = "absolute"
|
||||||
scale_type_x9 = "viewport"
|
scale_type_y9 = "viewport"
|
||||||
scale_type_y9 = "source"
|
scale_x9 = "128"
|
||||||
scale_x9 = "0.73125"
|
scale_y9 = "0.975"
|
||||||
scale_y9 = "1.0"
|
|
||||||
|
|
||||||
shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
||||||
filter_linear10 = "true"
|
filter_linear10 = "false"
|
||||||
wrap_mode10 = "clamp_to_edge"
|
wrap_mode10 = "clamp_to_border"
|
||||||
alias10 = "MASKED_SCANLINES"
|
alias10 = "MASK_RESIZE"
|
||||||
srgb_framebuffer10 = "true"
|
srgb_framebuffer10 = "true"
|
||||||
scale_type10 = "source"
|
scale_type_x10 = "viewport"
|
||||||
scale10 = "1.0"
|
scale_type_y10 = "source"
|
||||||
|
scale_x10 = "0.73125"
|
||||||
|
scale_y10 = "1.0"
|
||||||
|
|
||||||
shader11 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
shader11 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
||||||
filter_linear11 = "true"
|
filter_linear11 = "true"
|
||||||
wrap_mode11 = "clamp_to_border"
|
wrap_mode11 = "clamp_to_edge"
|
||||||
alias11 = "BRIGHTPASS"
|
alias11 = "MASKED_SCANLINES"
|
||||||
srgb_framebuffer11 = "true"
|
srgb_framebuffer11 = "true"
|
||||||
scale_type11 = "source"
|
scale_type11 = "source"
|
||||||
scale11 = "1.0"
|
scale11 = "1.0"
|
||||||
|
|
||||||
shader12 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
shader12 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
||||||
filter_linear12 = "true"
|
filter_linear12 = "true"
|
||||||
wrap_mode12 = "clamp_to_border"
|
wrap_mode12 = "clamp_to_border"
|
||||||
|
alias12 = "BRIGHTPASS"
|
||||||
srgb_framebuffer12 = "true"
|
srgb_framebuffer12 = "true"
|
||||||
scale_type12 = "source"
|
scale_type12 = "source"
|
||||||
scale12 = "1.0"
|
scale12 = "1.0"
|
||||||
|
|
||||||
shader13 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
shader13 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
||||||
filter_linear13 = "true"
|
filter_linear13 = "true"
|
||||||
wrap_mode13 = "clamp_to_border"
|
wrap_mode13 = "clamp_to_border"
|
||||||
srgb_framebuffer13 = "true"
|
srgb_framebuffer13 = "true"
|
||||||
scale_type13 = "source"
|
scale_type13 = "source"
|
||||||
scale13 = "1.0"
|
scale13 = "1.0"
|
||||||
|
|
||||||
shader14 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
shader14 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
||||||
filter_linear14 = "true"
|
filter_linear14 = "true"
|
||||||
alias14 = "LAST_PASS"
|
wrap_mode14 = "clamp_to_border"
|
||||||
mipmap_input14 = "true"
|
|
||||||
srgb_framebuffer14 = "true"
|
srgb_framebuffer14 = "true"
|
||||||
scale_type14 = "source"
|
scale_type14 = "source"
|
||||||
scale14 = "1.0"
|
scale14 = "1.0"
|
||||||
|
|
||||||
shader15 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
shader15 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
||||||
filter_linear15 = "true"
|
filter_linear15 = "true"
|
||||||
alias15 = "BORDER_REFLECTION"
|
alias15 = "LAST_PASS"
|
||||||
wrap_mode15 = "clamp_to_border"
|
mipmap_input15 = "true"
|
||||||
srgb_framebuffer15 = "false"
|
srgb_framebuffer15 = "true"
|
||||||
scale_type_x15 = "absolute"
|
scale_type15 = "source"
|
||||||
scale_type_y15 = "absolute"
|
scale15 = "1.0"
|
||||||
scale_x15 = "160"
|
|
||||||
scale_y15 = "120"
|
|
||||||
|
|
||||||
shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
||||||
filter_linear16 = "false"
|
filter_linear16 = "true"
|
||||||
|
alias16 = "BORDER_REFLECTION"
|
||||||
wrap_mode16 = "clamp_to_border"
|
wrap_mode16 = "clamp_to_border"
|
||||||
alias16 = "BGPASS1"
|
|
||||||
srgb_framebuffer16 = "false"
|
srgb_framebuffer16 = "false"
|
||||||
scale_type_x16 = "absolute"
|
scale_type_x16 = "absolute"
|
||||||
scale_type_y16 = "absolute"
|
scale_type_y16 = "absolute"
|
||||||
scale_x16 = "1.0"
|
scale_x16 = "160"
|
||||||
scale_y16 = "100.0"
|
scale_y16 = "120"
|
||||||
|
|
||||||
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
||||||
filter_linear17 = "false"
|
filter_linear17 = "false"
|
||||||
wrap_mode17 = "clamp_to_border"
|
wrap_mode17 = "clamp_to_border"
|
||||||
alias17 = "BGPASS2"
|
alias17 = "BGPASS1"
|
||||||
srgb_framebuffer17 = "false"
|
srgb_framebuffer17 = "false"
|
||||||
scale_type17 = "absolute"
|
scale_type_x17 = "absolute"
|
||||||
scale17 = "1.0"
|
scale_type_y17 = "absolute"
|
||||||
|
scale_x17 = "1.0"
|
||||||
|
scale_y17 = "100.0"
|
||||||
|
|
||||||
shader18 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
||||||
filter_linear18 = "true"
|
filter_linear18 = "false"
|
||||||
wrap_mode18 = "clamp_to_border"
|
wrap_mode18 = "clamp_to_border"
|
||||||
scale_type18 = "viewport"
|
alias18 = "BGPASS2"
|
||||||
|
srgb_framebuffer18 = "false"
|
||||||
|
scale_type18 = "absolute"
|
||||||
scale18 = "1.0"
|
scale18 = "1.0"
|
||||||
|
|
||||||
shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
shader19 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
||||||
filter_linear19 = "true"
|
filter_linear19 = "true"
|
||||||
wrap_mode19 = "clamp_to_border"
|
wrap_mode19 = "clamp_to_border"
|
||||||
scale_type19 = "source"
|
scale_type19 = "viewport"
|
||||||
scale19 = "1.0"
|
scale19 = "1.0"
|
||||||
|
|
||||||
|
shader20 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
||||||
|
filter_linear20 = "true"
|
||||||
|
wrap_mode20 = "clamp_to_border"
|
||||||
|
scale_type20 = "source"
|
||||||
|
scale20 = "1.0"
|
||||||
|
|
||||||
crt_gamma = "1.7"
|
crt_gamma = "1.7"
|
||||||
lcd_gamma = "1.2"
|
lcd_gamma = "1.2"
|
||||||
diffusion_weight = "0.3"
|
diffusion_weight = "0.3"
|
||||||
|
|
|
@ -1,165 +1,168 @@
|
||||||
shaders = "20"
|
shaders = "21"
|
||||||
|
|
||||||
shader0 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = "false"
|
alias0 = maximus_refpass
|
||||||
srgb_framebuffer0 = "true"
|
|
||||||
scale_type0 = "source"
|
|
||||||
scale0 = "0.5"
|
|
||||||
|
|
||||||
shader1 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
shader1 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
||||||
filter_linear1 = "true"
|
filter_linear1 = "false"
|
||||||
wrap_mode1 = "clamp_to_border"
|
|
||||||
alias1 = "ORIG_LINEARIZED"
|
|
||||||
srgb_framebuffer1 = "true"
|
srgb_framebuffer1 = "true"
|
||||||
scale_type1 = "source"
|
scale_type1 = "source"
|
||||||
scale1 = "1.0"
|
scale1 = "0.5"
|
||||||
|
|
||||||
shader2 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
shader2 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
||||||
filter_linear2 = "true"
|
filter_linear2 = "true"
|
||||||
wrap_mode2 = "clamp_to_border"
|
wrap_mode2 = "clamp_to_border"
|
||||||
|
alias2 = "ORIG_LINEARIZED"
|
||||||
srgb_framebuffer2 = "true"
|
srgb_framebuffer2 = "true"
|
||||||
scale_type_x2 = "source"
|
scale_type2 = "source"
|
||||||
scale_type_y2 = "source"
|
scale2 = "1.0"
|
||||||
scale_x2 = "1.0"
|
|
||||||
scale_y2 = "3.0"
|
|
||||||
|
|
||||||
shader3 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader3 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
||||||
filter_linear3 = "true"
|
filter_linear3 = "true"
|
||||||
alias3 = "VERTICAL_SCANLINES"
|
wrap_mode3 = "clamp_to_border"
|
||||||
srgb_framebuffer3 = "true"
|
srgb_framebuffer3 = "true"
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_type_y3 = "viewport"
|
scale_type_y3 = "source"
|
||||||
scale_x3 = "1.0"
|
scale_x3 = "1.0"
|
||||||
scale_y3 = "1.95"
|
scale_y3 = "3.0"
|
||||||
|
|
||||||
shader4 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
shader4 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear4 = "true"
|
filter_linear4 = "true"
|
||||||
wrap_mode4 = "clamp_to_border"
|
alias4 = "VERTICAL_SCANLINES"
|
||||||
srgb_framebuffer4 = "true"
|
srgb_framebuffer4 = "true"
|
||||||
scale_type_x4 = "absolute"
|
scale_type_x4 = "source"
|
||||||
scale_type_y4 = "absolute"
|
scale_type_y4 = "viewport"
|
||||||
scale_x4 = "320"
|
scale_x4 = "1.0"
|
||||||
scale_y4 = "240"
|
scale_y4 = "1.95"
|
||||||
|
|
||||||
shader5 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader5 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
||||||
filter_linear5 = "true"
|
filter_linear5 = "true"
|
||||||
alias5 = "BLOOM_APPROX"
|
wrap_mode5 = "clamp_to_border"
|
||||||
srgb_framebuffer5 = "true"
|
srgb_framebuffer5 = "true"
|
||||||
scale_type5 = "source"
|
scale_type_x5 = "absolute"
|
||||||
scale5 = "1.0"
|
scale_type_y5 = "absolute"
|
||||||
|
scale_x5 = "320"
|
||||||
|
scale_y5 = "240"
|
||||||
|
|
||||||
shader6 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
shader6 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear6 = "true"
|
filter_linear6 = "true"
|
||||||
wrap_mode6 = "clamp_to_border"
|
alias6 = "BLOOM_APPROX"
|
||||||
srgb_framebuffer6 = "true"
|
srgb_framebuffer6 = "true"
|
||||||
scale_type6 = "source"
|
scale_type6 = "source"
|
||||||
scale6 = "1.0"
|
scale6 = "1.0"
|
||||||
|
|
||||||
shader7 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
shader7 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
||||||
filter_linear7 = "true"
|
filter_linear7 = "true"
|
||||||
wrap_mode7 = "clamp_to_border"
|
wrap_mode7 = "clamp_to_border"
|
||||||
alias7 = "HALATION_BLUR"
|
|
||||||
srgb_framebuffer7 = "true"
|
srgb_framebuffer7 = "true"
|
||||||
scale_type7 = "source"
|
scale_type7 = "source"
|
||||||
scale7 = "1.0"
|
scale7 = "1.0"
|
||||||
|
|
||||||
shader8 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
shader8 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
||||||
filter_linear8 = "true"
|
filter_linear8 = "true"
|
||||||
wrap_mode8 = "clamp_to_border"
|
wrap_mode8 = "clamp_to_border"
|
||||||
srgb_framebuffer8 = "false"
|
alias8 = "HALATION_BLUR"
|
||||||
scale_type_x8 = "absolute"
|
srgb_framebuffer8 = "true"
|
||||||
scale_type_y8 = "viewport"
|
scale_type8 = "source"
|
||||||
scale_x8 = "128"
|
scale8 = "1.0"
|
||||||
scale_y8 = "0.975"
|
|
||||||
|
|
||||||
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
shader9 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
||||||
filter_linear9 = "false"
|
filter_linear9 = "true"
|
||||||
wrap_mode9 = "clamp_to_border"
|
wrap_mode9 = "clamp_to_border"
|
||||||
alias9 = "MASK_RESIZE"
|
srgb_framebuffer9 = "false"
|
||||||
srgb_framebuffer9 = "true"
|
scale_type_x9 = "absolute"
|
||||||
scale_type_x9 = "viewport"
|
scale_type_y9 = "viewport"
|
||||||
scale_type_y9 = "source"
|
scale_x9 = "128"
|
||||||
scale_x9 = "0.73125"
|
scale_y9 = "0.975"
|
||||||
scale_y9 = "1.0"
|
|
||||||
|
|
||||||
shader10 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
shader10 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
||||||
filter_linear10 = "true"
|
filter_linear10 = "false"
|
||||||
wrap_mode10 = "clamp_to_edge"
|
wrap_mode10 = "clamp_to_border"
|
||||||
alias10 = "MASKED_SCANLINES"
|
alias10 = "MASK_RESIZE"
|
||||||
srgb_framebuffer10 = "true"
|
srgb_framebuffer10 = "true"
|
||||||
scale_type10 = "source"
|
scale_type_x10 = "viewport"
|
||||||
scale10 = "1.0"
|
scale_type_y10 = "source"
|
||||||
|
scale_x10 = "0.73125"
|
||||||
|
scale_y10 = "1.0"
|
||||||
|
|
||||||
shader11 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
shader11 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
||||||
filter_linear11 = "true"
|
filter_linear11 = "true"
|
||||||
wrap_mode11 = "clamp_to_border"
|
wrap_mode11 = "clamp_to_edge"
|
||||||
alias11 = "BRIGHTPASS"
|
alias11 = "MASKED_SCANLINES"
|
||||||
srgb_framebuffer11 = "true"
|
srgb_framebuffer11 = "true"
|
||||||
scale_type11 = "source"
|
scale_type11 = "source"
|
||||||
scale11 = "1.0"
|
scale11 = "1.0"
|
||||||
|
|
||||||
shader12 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
shader12 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
||||||
filter_linear12 = "true"
|
filter_linear12 = "true"
|
||||||
wrap_mode12 = "clamp_to_border"
|
wrap_mode12 = "clamp_to_border"
|
||||||
|
alias12 = "BRIGHTPASS"
|
||||||
srgb_framebuffer12 = "true"
|
srgb_framebuffer12 = "true"
|
||||||
scale_type12 = "source"
|
scale_type12 = "source"
|
||||||
scale12 = "1.0"
|
scale12 = "1.0"
|
||||||
|
|
||||||
shader13 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
shader13 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
||||||
filter_linear13 = "true"
|
filter_linear13 = "true"
|
||||||
wrap_mode13 = "clamp_to_border"
|
wrap_mode13 = "clamp_to_border"
|
||||||
srgb_framebuffer13 = "true"
|
srgb_framebuffer13 = "true"
|
||||||
scale_type13 = "source"
|
scale_type13 = "source"
|
||||||
scale13 = "1.0"
|
scale13 = "1.0"
|
||||||
|
|
||||||
shader14 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
shader14 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
||||||
filter_linear14 = "true"
|
filter_linear14 = "true"
|
||||||
alias14 = "LAST_PASS"
|
wrap_mode14 = "clamp_to_border"
|
||||||
mipmap_input14 = "true"
|
|
||||||
srgb_framebuffer14 = "true"
|
srgb_framebuffer14 = "true"
|
||||||
scale_type14 = "source"
|
scale_type14 = "source"
|
||||||
scale14 = "1.0"
|
scale14 = "1.0"
|
||||||
|
|
||||||
shader15 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
shader15 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
||||||
filter_linear15 = "true"
|
filter_linear15 = "true"
|
||||||
alias15 = "BORDER_REFLECTION"
|
alias15 = "LAST_PASS"
|
||||||
wrap_mode15 = "clamp_to_border"
|
mipmap_input15 = "true"
|
||||||
srgb_framebuffer15 = "false"
|
srgb_framebuffer15 = "true"
|
||||||
scale_type_x15 = "absolute"
|
scale_type15 = "source"
|
||||||
scale_type_y15 = "absolute"
|
scale15 = "1.0"
|
||||||
scale_x15 = "160"
|
|
||||||
scale_y15 = "120"
|
|
||||||
|
|
||||||
shader16 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
shader16 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
||||||
filter_linear16 = "false"
|
filter_linear16 = "true"
|
||||||
|
alias16 = "BORDER_REFLECTION"
|
||||||
wrap_mode16 = "clamp_to_border"
|
wrap_mode16 = "clamp_to_border"
|
||||||
alias16 = "BGPASS1"
|
|
||||||
srgb_framebuffer16 = "false"
|
srgb_framebuffer16 = "false"
|
||||||
scale_type_x16 = "absolute"
|
scale_type_x16 = "absolute"
|
||||||
scale_type_y16 = "absolute"
|
scale_type_y16 = "absolute"
|
||||||
scale_x16 = "1.0"
|
scale_x16 = "160"
|
||||||
scale_y16 = "100.0"
|
scale_y16 = "120"
|
||||||
|
|
||||||
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
shader17 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
||||||
filter_linear17 = "false"
|
filter_linear17 = "false"
|
||||||
wrap_mode17 = "clamp_to_border"
|
wrap_mode17 = "clamp_to_border"
|
||||||
alias17 = "BGPASS2"
|
alias17 = "BGPASS1"
|
||||||
srgb_framebuffer17 = "false"
|
srgb_framebuffer17 = "false"
|
||||||
scale_type17 = "absolute"
|
scale_type_x17 = "absolute"
|
||||||
scale17 = "1.0"
|
scale_type_y17 = "absolute"
|
||||||
|
scale_x17 = "1.0"
|
||||||
|
scale_y17 = "100.0"
|
||||||
|
|
||||||
shader18 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
shader18 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
||||||
filter_linear18 = "true"
|
filter_linear18 = "false"
|
||||||
wrap_mode18 = "clamp_to_border"
|
wrap_mode18 = "clamp_to_border"
|
||||||
scale_type18 = "viewport"
|
alias18 = "BGPASS2"
|
||||||
|
srgb_framebuffer18 = "false"
|
||||||
|
scale_type18 = "absolute"
|
||||||
scale18 = "1.0"
|
scale18 = "1.0"
|
||||||
|
|
||||||
shader19 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
shader19 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
||||||
filter_linear19 = "true"
|
filter_linear19 = "true"
|
||||||
wrap_mode19 = "clamp_to_border"
|
wrap_mode19 = "clamp_to_border"
|
||||||
scale_type19 = "source"
|
scale_type19 = "viewport"
|
||||||
scale19 = "1.0"
|
scale19 = "1.0"
|
||||||
|
|
||||||
|
shader20 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
||||||
|
filter_linear20 = "true"
|
||||||
|
wrap_mode20 = "clamp_to_border"
|
||||||
|
scale_type20 = "source"
|
||||||
|
scale20 = "1.0"
|
||||||
|
|
||||||
crt_gamma = "1.7"
|
crt_gamma = "1.7"
|
||||||
lcd_gamma = "1.2"
|
lcd_gamma = "1.2"
|
||||||
diffusion_weight = "0.3"
|
diffusion_weight = "0.3"
|
||||||
|
|
|
@ -1,191 +1,194 @@
|
||||||
shaders = "23"
|
shaders = "24"
|
||||||
|
|
||||||
shader0 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang"
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = "false"
|
alias0 = maximus_refpass
|
||||||
srgb_framebuffer0 = "true"
|
|
||||||
scale_type0 = "source"
|
|
||||||
scale_x0 = "4.0"
|
|
||||||
scale_y0 = "1.0"
|
|
||||||
|
|
||||||
shader1 = "shaders/crt-maximus-royale/src/ntsc_pass1.slang"
|
shader1 = "shaders/crt-maximus-royale/src/horizontal_ringing.slang"
|
||||||
filter_linear1 = "false"
|
filter_linear1 = "false"
|
||||||
frame_count_mod1 = "2"
|
srgb_framebuffer1 = "true"
|
||||||
float_framebuffer1 = "true"
|
scale_type1 = "source"
|
||||||
scale_type_x1 = "source"
|
|
||||||
scale_type_y1 = "source"
|
|
||||||
scale_x1 = "4.0"
|
scale_x1 = "4.0"
|
||||||
scale_y1 = "1.0"
|
scale_y1 = "1.0"
|
||||||
|
|
||||||
shader2 = "shaders/crt-maximus-royale/src/ntsc_pass2.slang"
|
shader2 = "shaders/crt-maximus-royale/src/ntsc_pass1.slang"
|
||||||
filter_linear2 = "false"
|
filter_linear2 = "false"
|
||||||
|
frame_count_mod2 = "2"
|
||||||
|
float_framebuffer2 = "true"
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_x2 = "0.25"
|
scale_x2 = "4.0"
|
||||||
scale_y2 = "1.0"
|
scale_y2 = "1.0"
|
||||||
|
|
||||||
shader3 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
shader3 = "shaders/crt-maximus-royale/src/ntsc_pass2.slang"
|
||||||
filter_linear3 = "false"
|
filter_linear3 = "false"
|
||||||
srgb_framebuffer3 = "true"
|
scale_type_x3 = "source"
|
||||||
scale_type3 = "source"
|
scale_type_y3 = "source"
|
||||||
scale3 = "1.0"
|
scale_x3 = "0.25"
|
||||||
|
scale_y3 = "1.0"
|
||||||
|
|
||||||
shader4 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
shader4 = "shaders/crt-maximus-royale/src/H_blur.slang"
|
||||||
filter_linear4 = "true"
|
filter_linear4 = "false"
|
||||||
wrap_mode4 = "clamp_to_border"
|
|
||||||
alias4 = "ORIG_LINEARIZED"
|
|
||||||
srgb_framebuffer4 = "true"
|
srgb_framebuffer4 = "true"
|
||||||
scale_type4 = "source"
|
scale_type4 = "source"
|
||||||
scale4 = "1.0"
|
scale4 = "1.0"
|
||||||
|
|
||||||
shader5 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
shader5 = "shaders/crt-royale/src/crt-royale-first-pass-linearize-crt-gamma-bob-fields.slang"
|
||||||
filter_linear5 = "true"
|
filter_linear5 = "true"
|
||||||
wrap_mode5 = "clamp_to_border"
|
wrap_mode5 = "clamp_to_border"
|
||||||
|
alias5 = "ORIG_LINEARIZED"
|
||||||
srgb_framebuffer5 = "true"
|
srgb_framebuffer5 = "true"
|
||||||
scale_type_x5 = "source"
|
scale_type5 = "source"
|
||||||
scale_type_y5 = "source"
|
scale5 = "1.0"
|
||||||
scale_x5 = "1.0"
|
|
||||||
scale_y5 = "6.0"
|
|
||||||
|
|
||||||
shader6 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader6 = "shaders/crt-royale/src/crt-royale-scanlines-vertical-interlacing.slang"
|
||||||
filter_linear6 = "true"
|
filter_linear6 = "true"
|
||||||
alias6 = "VERTICAL_SCANLINES"
|
wrap_mode6 = "clamp_to_border"
|
||||||
srgb_framebuffer6 = "true"
|
srgb_framebuffer6 = "true"
|
||||||
scale_type_x6 = "source"
|
scale_type_x6 = "source"
|
||||||
scale_type_y6 = "viewport"
|
scale_type_y6 = "source"
|
||||||
scale_x6 = "1.0"
|
scale_x6 = "1.0"
|
||||||
scale_y6 = "1.95"
|
scale_y6 = "6.0"
|
||||||
|
|
||||||
shader7 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
shader7 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear7 = "true"
|
filter_linear7 = "true"
|
||||||
wrap_mode7 = "clamp_to_border"
|
alias7 = "VERTICAL_SCANLINES"
|
||||||
srgb_framebuffer7 = "true"
|
srgb_framebuffer7 = "true"
|
||||||
scale_type_x7 = "absolute"
|
scale_type_x7 = "source"
|
||||||
scale_type_y7 = "absolute"
|
scale_type_y7 = "viewport"
|
||||||
scale_x7 = "320"
|
scale_x7 = "1.0"
|
||||||
scale_y7 = "240"
|
scale_y7 = "1.95"
|
||||||
|
|
||||||
shader8 = "shaders/crt-maximus-royale/src/resize.slang"
|
shader8 = "shaders/crt-royale/src/crt-royale-bloom-approx.slang"
|
||||||
filter_linear8 = "true"
|
filter_linear8 = "true"
|
||||||
alias8 = "BLOOM_APPROX"
|
|
||||||
wrap_mode8 = "clamp_to_border"
|
wrap_mode8 = "clamp_to_border"
|
||||||
srgb_framebuffer8 = "true"
|
srgb_framebuffer8 = "true"
|
||||||
scale_type8 = "source"
|
scale_type_x8 = "absolute"
|
||||||
scale8 = "1.0"
|
scale_type_y8 = "absolute"
|
||||||
|
scale_x8 = "320"
|
||||||
|
scale_y8 = "240"
|
||||||
|
|
||||||
shader9 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
shader9 = "shaders/crt-maximus-royale/src/resize.slang"
|
||||||
filter_linear9 = "true"
|
filter_linear9 = "true"
|
||||||
|
alias9 = "BLOOM_APPROX"
|
||||||
wrap_mode9 = "clamp_to_border"
|
wrap_mode9 = "clamp_to_border"
|
||||||
srgb_framebuffer9 = "true"
|
srgb_framebuffer9 = "true"
|
||||||
scale_type9 = "source"
|
scale_type9 = "source"
|
||||||
scale9 = "1.0"
|
scale9 = "1.0"
|
||||||
|
|
||||||
shader10 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
shader10 = "../blurs/shaders/royale/blur9fast-vertical.slang"
|
||||||
filter_linear10 = "true"
|
filter_linear10 = "true"
|
||||||
wrap_mode10 = "clamp_to_border"
|
wrap_mode10 = "clamp_to_border"
|
||||||
alias10 = "HALATION_BLUR"
|
srgb_framebuffer10 = "true"
|
||||||
srgb_framebuffer10 = "false"
|
|
||||||
scale_type10 = "source"
|
scale_type10 = "source"
|
||||||
scale10 = "1.0"
|
scale10 = "1.0"
|
||||||
|
|
||||||
shader11 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
shader11 = "../blurs/shaders/royale/blur9fast-horizontal.slang"
|
||||||
filter_linear11 = "true"
|
filter_linear11 = "true"
|
||||||
wrap_mode11 = "clamp_to_border"
|
wrap_mode11 = "clamp_to_border"
|
||||||
|
alias11 = "HALATION_BLUR"
|
||||||
srgb_framebuffer11 = "false"
|
srgb_framebuffer11 = "false"
|
||||||
scale_type_x11 = "absolute"
|
scale_type11 = "source"
|
||||||
scale_type_y11 = "viewport"
|
scale11 = "1.0"
|
||||||
scale_x11 = "128"
|
|
||||||
scale_y11 = "0.975"
|
|
||||||
|
|
||||||
shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
shader12 = "shaders/crt-royale/src/crt-royale-mask-resize-vertical.slang"
|
||||||
filter_linear12 = "false"
|
filter_linear12 = "true"
|
||||||
wrap_mode12 = "clamp_to_border"
|
wrap_mode12 = "clamp_to_border"
|
||||||
alias12 = "MASK_RESIZE"
|
srgb_framebuffer12 = "false"
|
||||||
srgb_framebuffer12 = "true"
|
scale_type_x12 = "absolute"
|
||||||
scale_type_x12 = "viewport"
|
scale_type_y12 = "viewport"
|
||||||
scale_type_y12 = "source"
|
scale_x12 = "128"
|
||||||
scale_x12 = "0.73125"
|
scale_y12 = "0.975"
|
||||||
scale_y12 = "2.0"
|
|
||||||
|
|
||||||
shader13 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
shader13 = "shaders/crt-royale/src/crt-royale-mask-resize-horizontal.slang"
|
||||||
filter_linear13 = "true"
|
filter_linear13 = "false"
|
||||||
wrap_mode13 = "clamp_to_edge"
|
wrap_mode13 = "clamp_to_border"
|
||||||
alias13 = "MASKED_SCANLINES"
|
alias13 = "MASK_RESIZE"
|
||||||
srgb_framebuffer13 = "true"
|
srgb_framebuffer13 = "true"
|
||||||
scale_type13 = "source"
|
scale_type_x13 = "viewport"
|
||||||
scale13 = "1.0"
|
scale_type_y13 = "source"
|
||||||
|
scale_x13 = "0.73125"
|
||||||
|
scale_y13 = "2.0"
|
||||||
|
|
||||||
shader14 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
shader14 = "shaders/crt-royale/src/crt-royale-scanlines-horizontal-apply-mask.slang"
|
||||||
filter_linear14 = "true"
|
filter_linear14 = "true"
|
||||||
wrap_mode14 = "clamp_to_border"
|
wrap_mode14 = "clamp_to_edge"
|
||||||
alias14 = "BRIGHTPASS"
|
alias14 = "MASKED_SCANLINES"
|
||||||
srgb_framebuffer14 = "true"
|
srgb_framebuffer14 = "true"
|
||||||
scale_type14 = "source"
|
scale_type14 = "source"
|
||||||
scale14 = "1.0"
|
scale14 = "1.0"
|
||||||
|
|
||||||
shader15 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
shader15 = "shaders/crt-royale/src/crt-royale-brightpass.slang"
|
||||||
filter_linear15 = "true"
|
filter_linear15 = "true"
|
||||||
wrap_mode15 = "clamp_to_border"
|
wrap_mode15 = "clamp_to_border"
|
||||||
|
alias15 = "BRIGHTPASS"
|
||||||
srgb_framebuffer15 = "true"
|
srgb_framebuffer15 = "true"
|
||||||
scale_type15 = "source"
|
scale_type15 = "source"
|
||||||
scale15 = "1.0"
|
scale15 = "1.0"
|
||||||
|
|
||||||
shader16 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
shader16 = "shaders/crt-royale/src/crt-royale-bloom-vertical.slang"
|
||||||
filter_linear16 = "true"
|
filter_linear16 = "true"
|
||||||
wrap_mode16 = "clamp_to_border"
|
wrap_mode16 = "clamp_to_border"
|
||||||
srgb_framebuffer16 = "true"
|
srgb_framebuffer16 = "true"
|
||||||
scale_type16 = "source"
|
scale_type16 = "source"
|
||||||
scale16 = "1.0"
|
scale16 = "1.0"
|
||||||
|
|
||||||
shader17 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
shader17 = "shaders/crt-royale/src/crt-royale-bloom-horizontal-reconstitute.slang"
|
||||||
filter_linear17 = "true"
|
filter_linear17 = "true"
|
||||||
alias17 = "LAST_PASS"
|
wrap_mode17 = "clamp_to_border"
|
||||||
mipmap_input17 = "false"
|
|
||||||
srgb_framebuffer17 = "true"
|
srgb_framebuffer17 = "true"
|
||||||
scale_type_x17 = "source"
|
scale_type17 = "source"
|
||||||
scale_type_y17 = "source"
|
scale17 = "1.0"
|
||||||
scale_x17 = "1.0"
|
|
||||||
scale_y17 = "0.5"
|
|
||||||
|
|
||||||
shader18 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
shader18 = "shaders/crt-royale/src/crt-royale-geometry-aa-last-pass.slang"
|
||||||
filter_linear18 = "true"
|
filter_linear18 = "true"
|
||||||
alias18 = "BORDER_REFLECTION"
|
alias18 = "LAST_PASS"
|
||||||
wrap_mode18 = "clamp_to_border"
|
mipmap_input18 = "false"
|
||||||
srgb_framebuffer18 = "false"
|
srgb_framebuffer18 = "true"
|
||||||
scale_type_x18 = "absolute"
|
scale_type_x18 = "source"
|
||||||
scale_type_y18 = "absolute"
|
scale_type_y18 = "source"
|
||||||
scale_x18 = "160"
|
scale_x18 = "1.0"
|
||||||
scale_y18 = "120"
|
scale_y18 = "0.5"
|
||||||
|
|
||||||
shader19 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
shader19 = "shaders/crt-maximus-royale/src/crt_reflect.slang"
|
||||||
filter_linear19 = "false"
|
filter_linear19 = "true"
|
||||||
|
alias19 = "BORDER_REFLECTION"
|
||||||
wrap_mode19 = "clamp_to_border"
|
wrap_mode19 = "clamp_to_border"
|
||||||
alias19 = "BGPASS1"
|
|
||||||
srgb_framebuffer19 = "false"
|
srgb_framebuffer19 = "false"
|
||||||
scale_type_x19 = "absolute"
|
scale_type_x19 = "absolute"
|
||||||
scale_type_y19 = "absolute"
|
scale_type_y19 = "absolute"
|
||||||
scale_x19 = "1.0"
|
scale_x19 = "160"
|
||||||
scale_y19 = "100.0"
|
scale_y19 = "120"
|
||||||
|
|
||||||
shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
shader20 = "shaders/crt-maximus-royale/src/BGcolor_pass1.slang"
|
||||||
filter_linear20 = "false"
|
filter_linear20 = "false"
|
||||||
wrap_mode20 = "clamp_to_border"
|
wrap_mode20 = "clamp_to_border"
|
||||||
alias20 = "BGPASS2"
|
alias20 = "BGPASS1"
|
||||||
srgb_framebuffer20 = "false"
|
srgb_framebuffer20 = "false"
|
||||||
scale_type20 = "absolute"
|
scale_type_x20 = "absolute"
|
||||||
scale20 = "1.0"
|
scale_type_y20 = "absolute"
|
||||||
|
scale_x20 = "1.0"
|
||||||
|
scale_y20 = "100.0"
|
||||||
|
|
||||||
shader21 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
shader21 = "shaders/crt-maximus-royale/src/BGcolor_pass2.slang"
|
||||||
filter_linear21 = "true"
|
filter_linear21 = "false"
|
||||||
wrap_mode21 = "clamp_to_border"
|
wrap_mode21 = "clamp_to_border"
|
||||||
scale_type21 = "viewport"
|
alias21 = "BGPASS2"
|
||||||
|
srgb_framebuffer21 = "false"
|
||||||
|
scale_type21 = "absolute"
|
||||||
scale21 = "1.0"
|
scale21 = "1.0"
|
||||||
|
|
||||||
shader22 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
shader22 = "shaders/crt-maximus-royale/src/imgborder.slang"
|
||||||
filter_linear22 = "true"
|
filter_linear22 = "true"
|
||||||
wrap_mode22 = "clamp_to_border"
|
wrap_mode22 = "clamp_to_border"
|
||||||
scale_type22 = "source"
|
scale_type22 = "viewport"
|
||||||
scale22 = "1.0"
|
scale22 = "1.0"
|
||||||
|
|
||||||
|
shader23 = "shaders/crt-maximus-royale/src/tv_reflection.slang"
|
||||||
|
filter_linear23 = "true"
|
||||||
|
wrap_mode23 = "clamp_to_border"
|
||||||
|
scale_type23 = "source"
|
||||||
|
scale23 = "1.0"
|
||||||
|
|
||||||
crt_gamma = "1.7"
|
crt_gamma = "1.7"
|
||||||
lcd_gamma = "1.2"
|
lcd_gamma = "1.2"
|
||||||
diffusion_weight = "0.3"
|
diffusion_weight = "0.3"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
layout(push_constant) uniform Push
|
layout(push_constant) uniform Push
|
||||||
{
|
{
|
||||||
vec4 SourceSize;
|
vec4 SourceSize;
|
||||||
vec4 OriginalSize;
|
vec4 crt_interlaced_halation_refpassSize;
|
||||||
vec4 OutputSize;
|
vec4 OutputSize;
|
||||||
uint FrameCount;
|
uint FrameCount;
|
||||||
} params;
|
} params;
|
||||||
|
@ -66,9 +66,9 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
#define PI 3.141592653589
|
#define PI 3.141592653589
|
||||||
|
|
||||||
#ifdef LINEAR_PROCESSING
|
#ifdef LINEAR_PROCESSING
|
||||||
# define TEX2D(c) pow(texture(Original, (c)), vec4(CRTgamma))
|
# define TEX2D(c) pow(texture(crt_interlaced_halation_refpass, (c)), vec4(CRTgamma))
|
||||||
#else
|
#else
|
||||||
# define TEX2D(c) texture(Original, (c))
|
# define TEX2D(c) texture(crt_interlaced_halation_refpass, (c))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -204,10 +204,10 @@ void main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The size of one texel, in texture-coordinates.
|
// The size of one texel, in texture-coordinates.
|
||||||
one = ilfac / params.OriginalSize.xy;
|
one = ilfac / params.crt_interlaced_halation_refpassSize.xy;
|
||||||
|
|
||||||
// Resulting X pixel-coordinate of the pixel we're drawing.
|
// Resulting X pixel-coordinate of the pixel we're drawing.
|
||||||
mod_factor = vTexCoord.x * params.OriginalSize.x * params.OutputSize.x / params.OriginalSize.x;
|
mod_factor = vTexCoord.x * params.crt_interlaced_halation_refpassSize.x * params.OutputSize.x / params.crt_interlaced_halation_refpassSize.x;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma stage fragment
|
#pragma stage fragment
|
||||||
|
@ -220,7 +220,7 @@ layout(location = 5) in vec2 sinangle;
|
||||||
layout(location = 6) in vec2 cosangle;
|
layout(location = 6) in vec2 cosangle;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D crt_interlaced_halation_refpass;
|
||||||
|
|
||||||
#define mul(a, b) (b * a)
|
#define mul(a, b) (b * a)
|
||||||
|
|
||||||
|
|
|
@ -48,11 +48,11 @@ void main()
|
||||||
#pragma stage fragment
|
#pragma stage fragment
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Original;
|
layout(set = 0, binding = 2) uniform sampler2D maximus_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec3 BColor = vec3(0.0).rgb;
|
vec3 BColor = vec3(0.0).rgb;
|
||||||
if ((params.bgMode > 1.0) || (params.ledMode == 3.0)) for (float i = 0.02; i <= 1.0; i += 0.02) BColor += texture(Original, vec2(i,vTexCoord.y)).rgb;
|
if ((params.bgMode > 1.0) || (params.ledMode == 3.0)) for (float i = 0.02; i <= 1.0; i += 0.02) BColor += texture(maximus_refpass, vec2(i,vTexCoord.y)).rgb;
|
||||||
FragColor = vec4(BColor/50, 1.0).rgba;
|
FragColor = vec4(BColor/50, 1.0).rgba;
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ layout(location = 1) in vec2 screen_coord;
|
||||||
layout(location = 2) in vec2 resize_coord;
|
layout(location = 2) in vec2 resize_coord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D maximus_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -126,7 +126,7 @@ if (LightsCoordScale.x > -0.05 && LightsCoordScale.x < 1.05 && LightsCoordScale.
|
||||||
|
|
||||||
if (LightsCoord.x > 0.0 && LightsCoord.x < 1.0 && LightsCoord.y > 0.0 && LightsCoord.y < 1.0) { newLightsCoord = LightsCoordScale; }
|
if (LightsCoord.x > 0.0 && LightsCoord.x < 1.0 && LightsCoord.y > 0.0 && LightsCoord.y < 1.0) { newLightsCoord = LightsCoordScale; }
|
||||||
|
|
||||||
vec4 lightSource = texture(Original, newLightsCoord).rgba;
|
vec4 lightSource = texture(maximus_refpass, newLightsCoord).rgba;
|
||||||
|
|
||||||
FragColor = lightSource; //final output
|
FragColor = lightSource; //final output
|
||||||
}
|
}
|
|
@ -37,11 +37,11 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D glow_trails_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 trails = texture(Source, vTexCoord).rgba;
|
vec4 trails = texture(Source, vTexCoord).rgba;
|
||||||
vec4 current = pow(texture(Original, vTexCoord).rgba, vec4(2.2));
|
vec4 current = pow(texture(glow_trails_refpass, vTexCoord).rgba, vec4(2.2));
|
||||||
FragColor = vec4(pow(current + vec4(clamp(trails.r - current.r, 0.0, 1.0) * params.trail_bright), vec4(1.0 / 2.2)));
|
FragColor = vec4(pow(current + vec4(clamp(trails.r - current.r, 0.0, 1.0) * params.trail_bright), vec4(1.0 / 2.2)));
|
||||||
}
|
}
|
|
@ -52,7 +52,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D vt220_refpass;
|
||||||
|
|
||||||
#define iTime (float(params.FrameCount) / 60.0)
|
#define iTime (float(params.FrameCount) / 60.0)
|
||||||
const vec3 iMouse = vec3(0.0);
|
const vec3 iMouse = vec3(0.0);
|
||||||
|
@ -294,10 +294,10 @@ void main()
|
||||||
vec2 uvC, uvS, uvE;
|
vec2 uvC, uvS, uvE;
|
||||||
uvC = getCurves(fragCoord, uvC, uvS, uvE);
|
uvC = getCurves(fragCoord, uvC, uvS, uvE);
|
||||||
|
|
||||||
vec3 sample_image = (global.ntsc_toggle > 0.5) ? texture(Source, vec2(uvC.x, 1.0-uvC.y)).rgb : texture(Original, vec2(uvC.x, 1.0-uvC.y)).rgb;
|
vec3 sample_image = (global.ntsc_toggle > 0.5) ? texture(Source, vec2(uvC.x, 1.0-uvC.y)).rgb : texture(vt220_refpass, vec2(uvC.x, 1.0-uvC.y)).rgb;
|
||||||
|
|
||||||
vec4 image = vec4(sample_image * corner(uvC) * mask_weights(gl_FragCoord.xy, global.mask_strength, mask_picker), 1.0);
|
vec4 image = vec4(sample_image * corner(uvC) * mask_weights(gl_FragCoord.xy, global.mask_strength, mask_picker), 1.0);
|
||||||
image.rgb = pow(image.rgb, vec3(2.5/2.2)); //CRT-like gamma correction
|
image.rgb = pow(image.rgb, vec3(2.5/2.2)); //CRT-like gamma correction
|
||||||
image.rgb = scanline(image.rgb, uvC.xy); //apply scanlines
|
image.rgb = scanline(image.rgb, uvC.xy); //apply scanlines
|
||||||
FragColor = (global.ntsc_toggle > 0.5) ? bezelGen(Source, fragCoord.xy, image) : bezelGen(Original, fragCoord.xy, image); //apply bezel
|
FragColor = (global.ntsc_toggle > 0.5) ? bezelGen(Source, fragCoord.xy, image) : bezelGen(vt220_refpass, fragCoord.xy, image); //apply bezel
|
||||||
}
|
}
|
|
@ -1,21 +1,24 @@
|
||||||
shaders = 3
|
shaders = 4
|
||||||
|
|
||||||
shader0 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang
|
shader0 = ../stock.slang
|
||||||
scale_type0 = source
|
alias0 = vt220_refpass
|
||||||
scale_x0 = 4.0
|
|
||||||
filter_linear0 = false
|
|
||||||
scale_y0 = 1.0
|
|
||||||
float_framebuffer0 = true
|
|
||||||
|
|
||||||
shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang
|
shader1 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass1.slang
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale_x1 = 0.5
|
scale_x1 = 4.0
|
||||||
scale_y1 = 1.0
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
|
scale_y1 = 1.0
|
||||||
|
float_framebuffer1 = true
|
||||||
|
|
||||||
shader2 = shaders/vt220/vt220.slang
|
shader2 = ../ntsc/shaders/ntsc-adaptive/ntsc-pass2.slang
|
||||||
mipmap_input2 = true
|
scale_type2 = source
|
||||||
wrap_mode2 = mirrored_repeat
|
scale_x2 = 0.5
|
||||||
|
scale_y2 = 1.0
|
||||||
|
filter_linear2 = false
|
||||||
|
|
||||||
|
shader3 = shaders/vt220/vt220.slang
|
||||||
|
mipmap_input3 = true
|
||||||
|
wrap_mode3 = mirrored_repeat
|
||||||
|
|
||||||
parameters = "quality"
|
parameters = "quality"
|
||||||
quality = 1.0
|
quality = 1.0
|
||||||
|
|
|
@ -1,26 +1,29 @@
|
||||||
shaders = 5
|
shaders = 6
|
||||||
|
|
||||||
shader0 = shaders/mdapt/passes/mdapt-pass0.slang
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = mdapt_refpass
|
||||||
scale_type0 = source
|
|
||||||
scale0 = 1.0
|
|
||||||
|
|
||||||
shader1 = shaders/mdapt/passes/mdapt-pass1.slang
|
shader1 = shaders/mdapt/passes/mdapt-pass0.slang
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 1.0
|
scale1 = 1.0
|
||||||
|
|
||||||
shader2 = shaders/mdapt/passes/mdapt-pass2.slang
|
shader2 = shaders/mdapt/passes/mdapt-pass1.slang
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type2 = source
|
scale_type2 = source
|
||||||
scale2 = 1.0
|
scale2 = 1.0
|
||||||
|
|
||||||
shader3 = shaders/mdapt/passes/mdapt-pass3.slang
|
shader3 = shaders/mdapt/passes/mdapt-pass2.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type3 = source
|
scale_type3 = source
|
||||||
scale3 = 1.0
|
scale3 = 1.0
|
||||||
|
|
||||||
shader4 = shaders/mdapt/passes/mdapt-pass4.slang
|
shader4 = shaders/mdapt/passes/mdapt-pass3.slang
|
||||||
filter_linear4 = false
|
filter_linear4 = false
|
||||||
scale_type4 = source
|
scale_type4 = source
|
||||||
scale4 = 1.0
|
scale4 = 1.0
|
||||||
|
|
||||||
|
shader5 = shaders/mdapt/passes/mdapt-pass4.slang
|
||||||
|
filter_linear5 = false
|
||||||
|
scale_type5 = source
|
||||||
|
scale5 = 1.0
|
||||||
|
|
|
@ -22,7 +22,7 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
} global;
|
} global;
|
||||||
|
|
||||||
#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
||||||
#define TEXt0(dx,dy) texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
#define TEXt0(dx,dy) texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
||||||
|
|
||||||
bool eq(vec3 A, vec3 B){
|
bool eq(vec3 A, vec3 B){
|
||||||
return (A == B);
|
return (A == B);
|
||||||
|
@ -63,7 +63,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D mdapt_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,10 +45,10 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D mdapt_refpass;
|
||||||
|
|
||||||
//#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
//#define TEX(dx,dy) texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
||||||
//#define TEXt0(dx,dy) texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
//#define TEXt0(dx,dy) texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw)
|
||||||
|
|
||||||
vec4 TEX(float dx, float dy){
|
vec4 TEX(float dx, float dy){
|
||||||
if(params.linear_gamma > 0.5) return pow(texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2));
|
if(params.linear_gamma > 0.5) return pow(texture(Source, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2));
|
||||||
|
@ -56,8 +56,8 @@ vec4 TEX(float dx, float dy){
|
||||||
}
|
}
|
||||||
|
|
||||||
vec4 TEXt0(float dx, float dy){
|
vec4 TEXt0(float dx, float dy){
|
||||||
if(params.linear_gamma > 0.5) return pow(texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2));
|
if(params.linear_gamma > 0.5) return pow(texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw), vec4(2.2));
|
||||||
else return texture(Original, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw);
|
else return texture(mdapt_refpass, vTexCoord+vec2((dx),(dy))*params.SourceSize.zw);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool eq(vec3 A, vec3 B){
|
bool eq(vec3 A, vec3 B){
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
# This shader requires 16:9 aspect ratio
|
# This shader requires 16:9 aspect ratio
|
||||||
# and integer scaling OFF
|
# and integer scaling OFF
|
||||||
|
|
||||||
shaders = 2
|
shaders = 3
|
||||||
|
|
||||||
shader0 = ../sabr/shaders/sabr-v3.0.slang
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = ds_hybrid_view_refpass
|
||||||
scale_type0 = source
|
|
||||||
scale0 = 2.0
|
|
||||||
alias0 = Ref
|
|
||||||
|
|
||||||
shader1 = shaders/ds-hybrid-view.slang
|
shader1 = ../sabr/shaders/sabr-v3.0.slang
|
||||||
filter_linear1 = true
|
filter_linear1 = false
|
||||||
|
scale_type1 = source
|
||||||
|
scale1 = 2.0
|
||||||
|
alias1 = Ref
|
||||||
|
|
||||||
|
shader2 = shaders/ds-hybrid-view.slang
|
||||||
|
filter_linear2 = true
|
||||||
|
|
|
@ -34,7 +34,7 @@ shader5 = ../scalefx/shaders/scalefx-pass4.slang
|
||||||
filter_linear5 = false
|
filter_linear5 = false
|
||||||
scale_type5 = source
|
scale_type5 = source
|
||||||
scale5 = 3.0
|
scale5 = 3.0
|
||||||
alias5 = Ref
|
alias5 = ds_hybrid_view_refpass
|
||||||
|
|
||||||
shader6 = shaders/ds-hybrid-view.slang
|
shader6 = shaders/ds-hybrid-view.slang
|
||||||
filter_linear6 = true
|
filter_linear6 = true
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
layout(push_constant) uniform Push
|
layout(push_constant) uniform Push
|
||||||
{
|
{
|
||||||
vec4 OriginalSize;
|
vec4 ds_hybrid_view_refpassSize;
|
||||||
vec4 OutputSize;
|
vec4 OutputSize;
|
||||||
float screen_toggle;
|
float screen_toggle;
|
||||||
float show_both_screens;
|
float show_both_screens;
|
||||||
|
@ -43,9 +43,9 @@ void main()
|
||||||
{
|
{
|
||||||
gl_Position = (global.MVP * Position);
|
gl_Position = (global.MVP * Position);
|
||||||
// screen gap setting increases fb size; modulo at original res to compensate
|
// screen gap setting increases fb size; modulo at original res to compensate
|
||||||
float screen_gap = mod(params.OriginalSize.y, 192.0);
|
float screen_gap = mod(params.ds_hybrid_view_refpassSize.y, 192.0);
|
||||||
ScaledScreenGap = screen_gap * params.OriginalSize.w;
|
ScaledScreenGap = screen_gap * params.ds_hybrid_view_refpassSize.w;
|
||||||
HalfScaledScreenGap = (screen_gap * 0.5) * params.OriginalSize.w;
|
HalfScaledScreenGap = (screen_gap * 0.5) * params.ds_hybrid_view_refpassSize.w;
|
||||||
VerticalAlignmentAdjustment = -0.25 + ((screen_gap * 0.5) * params.OutputSize.w);
|
VerticalAlignmentAdjustment = -0.25 + ((screen_gap * 0.5) * params.OutputSize.w);
|
||||||
vTexCoord = TexCoord * 1.00001;
|
vTexCoord = TexCoord * 1.00001;
|
||||||
vTexCoord *= vec2(1.333, 0.5 - HalfScaledScreenGap);
|
vTexCoord *= vec2(1.333, 0.5 - HalfScaledScreenGap);
|
||||||
|
@ -57,7 +57,7 @@ layout(location = 1) in float ScaledScreenGap;
|
||||||
layout(location = 2) in float HalfScaledScreenGap;
|
layout(location = 2) in float HalfScaledScreenGap;
|
||||||
layout(location = 3) in float VerticalAlignmentAdjustment;
|
layout(location = 3) in float VerticalAlignmentAdjustment;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Original;
|
layout(set = 0, binding = 2) uniform sampler2D ds_hybrid_view_refpass;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Source;
|
layout(set = 0, binding = 3) uniform sampler2D Source;
|
||||||
|
|
||||||
vec2 ignoreScreenGap(vec2 coord)
|
vec2 ignoreScreenGap(vec2 coord)
|
||||||
|
@ -75,5 +75,5 @@ void main()
|
||||||
vec2 bigCoord = vTexCoord + vec2(0., (params.screen_toggle > 0.5) ? 0.5 + HalfScaledScreenGap : 0.);
|
vec2 bigCoord = vTexCoord + vec2(0., (params.screen_toggle > 0.5) ? 0.5 + HalfScaledScreenGap : 0.);
|
||||||
vec2 smallCoord = vTexCoord * vec2(3.) + vec2(-3., VerticalAlignmentAdjustment);
|
vec2 smallCoord = vTexCoord * vec2(3.) + vec2(-3., VerticalAlignmentAdjustment);
|
||||||
FragColor = texture(Source, bigCoord);
|
FragColor = texture(Source, bigCoord);
|
||||||
FragColor += ((params.filter_small > 0.5) ? texture(Source, ignoreScreenGap(smallCoord)) : texture(Original, ignoreScreenGap(smallCoord))) * vec4(showWhichScreens(smallCoord.y));
|
FragColor += ((params.filter_small > 0.5) ? texture(Source, ignoreScreenGap(smallCoord)) : texture(ds_hybrid_view_refpass, ignoreScreenGap(smallCoord))) * vec4(showWhichScreens(smallCoord.y));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
shaders = 2
|
shaders = 3
|
||||||
shader0 = shader-files/hq2x-halphon.slang
|
|
||||||
shader1 = ../stock.slang
|
|
||||||
|
|
||||||
filter_linear0 = false
|
shader0 = ../stock.slang
|
||||||
scale_type0 = source
|
alias0 = hqx_refpass
|
||||||
scale0 = 2.0
|
|
||||||
|
shader1 = shaders/hq2x-halphon.slang
|
||||||
|
shader2 = ../stock.slang
|
||||||
|
|
||||||
|
filter_linear1 = false
|
||||||
|
scale_type1 = source
|
||||||
|
scale1 = 2.0
|
||||||
|
|
|
@ -1,23 +1,26 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
shader0 = shader-files/pass1.slang
|
|
||||||
shader1 = shader-files/hq2x.slang
|
|
||||||
|
|
||||||
filter_linear0 = false
|
shader0 = ../stock.slang
|
||||||
scale_type0 = source
|
alias0 = hqx_refpass
|
||||||
scale0 = 1.0
|
shader1 = shaders/pass1.slang
|
||||||
|
shader2 = shaders/hq2x.slang
|
||||||
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 2.0
|
scale1 = 1.0
|
||||||
|
|
||||||
shader2 = ../cubic/shaders/bicubic-x.slang
|
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = viewport
|
scale_type2 = source
|
||||||
scale_type_y2 = source
|
scale2 = 2.0
|
||||||
scale2 = 1.0
|
|
||||||
|
|
||||||
shader3 = ../cubic/shaders/bicubic-y.slang
|
shader3 = ../cubic/shaders/bicubic-x.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
|
scale_type_x3 = viewport
|
||||||
|
scale_type_y3 = source
|
||||||
|
scale3 = 1.0
|
||||||
|
|
||||||
|
shader4 = ../cubic/shaders/bicubic-y.slang
|
||||||
|
filter_linear4 = false
|
||||||
|
|
||||||
textures = LUT
|
textures = LUT
|
||||||
LUT = resources/hq2x.png
|
LUT = resources/hq2x.png
|
||||||
|
|
|
@ -1,23 +1,26 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
shader0 = shader-files/pass1.slang
|
|
||||||
shader1 = shader-files/hq3x.slang
|
|
||||||
|
|
||||||
filter_linear0 = false
|
shader0 = ../stock.slang
|
||||||
scale_type0 = source
|
alias0 = hqx_refpass
|
||||||
scale0 = 1.0
|
shader1 = shaders/pass1.slang
|
||||||
|
shader2 = shaders/hq3x.slang
|
||||||
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 3.0
|
scale1 = 1.0
|
||||||
|
|
||||||
shader2 = ../cubic/shaders/b-spline-x.slang
|
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = viewport
|
scale_type2 = source
|
||||||
scale_type_y2 = source
|
scale2 = 3.0
|
||||||
scale2 = 1.0
|
|
||||||
|
|
||||||
shader3 = ../cubic/shaders/b-spline-y.slang
|
shader3 = ../cubic/shaders/b-spline-x.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
|
scale_type_x3 = viewport
|
||||||
|
scale_type_y3 = source
|
||||||
|
scale3 = 1.0
|
||||||
|
|
||||||
|
shader4 = ../cubic/shaders/b-spline-y.slang
|
||||||
|
filter_linear4 = false
|
||||||
|
|
||||||
|
|
||||||
textures = LUT
|
textures = LUT
|
||||||
|
|
|
@ -1,23 +1,26 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
shader0 = shader-files/pass1.slang
|
|
||||||
shader1 = shader-files/hq4x.slang
|
|
||||||
|
|
||||||
filter_linear0 = false
|
shader0 = ../stock.slang
|
||||||
scale_type0 = source
|
alias0 = hqx_refpass
|
||||||
scale0 = 1.0
|
shader1 = shaders/pass1.slang
|
||||||
|
shader2 = shaders/hq4x.slang
|
||||||
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 4.0
|
scale1 = 1.0
|
||||||
|
|
||||||
shader2 = ../cubic/shaders/b-spline-x.slang
|
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = viewport
|
scale_type2 = source
|
||||||
scale_type_y2 = source
|
scale2 = 4.0
|
||||||
scale2 = 1.0
|
|
||||||
|
|
||||||
shader3 = ../cubic/shaders/b-spline-y.slang
|
shader3 = ../cubic/shaders/b-spline-x.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
|
scale_type_x3 = viewport
|
||||||
|
scale_type_y3 = source
|
||||||
|
scale3 = 1.0
|
||||||
|
|
||||||
|
shader4 = ../cubic/shaders/b-spline-y.slang
|
||||||
|
filter_linear4 = false
|
||||||
|
|
||||||
textures = LUT
|
textures = LUT
|
||||||
LUT = resources/hq4x.png
|
LUT = resources/hq4x.png
|
||||||
|
|
|
@ -36,7 +36,7 @@ layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D LUT;
|
layout(set = 0, binding = 3) uniform sampler2D LUT;
|
||||||
layout(set = 0, binding = 4) uniform sampler2D Original;
|
layout(set = 0, binding = 4) uniform sampler2D hqx_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -46,10 +46,10 @@ void main()
|
||||||
float dx = registers.SourceSize.z;
|
float dx = registers.SourceSize.z;
|
||||||
float dy = registers.SourceSize.w;
|
float dy = registers.SourceSize.w;
|
||||||
|
|
||||||
vec3 p1 = texture(Original, vTexCoord).rgb;
|
vec3 p1 = texture(hqx_refpass, vTexCoord).rgb;
|
||||||
vec3 p2 = texture(Original, vTexCoord + vec2(dx, dy) * quad).rgb;
|
vec3 p2 = texture(hqx_refpass, vTexCoord + vec2(dx, dy) * quad).rgb;
|
||||||
vec3 p3 = texture(Original, vTexCoord + vec2(dx, 0.0) * quad).rgb;
|
vec3 p3 = texture(hqx_refpass, vTexCoord + vec2(dx, 0.0) * quad).rgb;
|
||||||
vec3 p4 = texture(Original, vTexCoord + vec2(0.0, dy) * quad).rgb;
|
vec3 p4 = texture(hqx_refpass, vTexCoord + vec2(0.0, dy) * quad).rgb;
|
||||||
vec3 pixels[4];
|
vec3 pixels[4];
|
||||||
pixels[0] = p1.xyz;
|
pixels[0] = p1.xyz;
|
||||||
pixels[1] = p2.xyz;
|
pixels[1] = p2.xyz;
|
|
@ -1,23 +1,26 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
|
|
||||||
shader0 = ../stock.slang
|
shader0 = ../stock.slang
|
||||||
scale_x0 = "640.0"
|
alias0 = artifact_colors_refpass
|
||||||
scale_type_x0 = absolute
|
|
||||||
|
|
||||||
shader1 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang
|
shader1 = ../stock.slang
|
||||||
scale1 = 1.0
|
scale_x1 = "640.0"
|
||||||
scale_type1 = source
|
scale_type_x1 = absolute
|
||||||
filter_linear1 = false
|
|
||||||
alias1 = Pass1
|
|
||||||
|
|
||||||
shader2 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang
|
shader2 = ../ntsc/shaders/artifact-colors/artifact-colors0.slang
|
||||||
scale2 = 1.0
|
scale2 = 1.0
|
||||||
scale_type2 = source
|
scale_type2 = source
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
alias2 = Pass2
|
alias2 = Pass1
|
||||||
float_framebuffer2 = true
|
|
||||||
|
|
||||||
shader3 = ../ntsc/shaders/artifact-colors/artifact-colors2.slang
|
shader3 = ../ntsc/shaders/artifact-colors/artifact-colors1.slang
|
||||||
scale3 = 1.0
|
scale3 = 1.0
|
||||||
scale_type3 = source
|
scale_type3 = source
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
|
alias3 = Pass2
|
||||||
|
float_framebuffer3 = true
|
||||||
|
|
||||||
|
shader4 = ../ntsc/shaders/artifact-colors/artifact-colors2.slang
|
||||||
|
scale4 = 1.0
|
||||||
|
scale_type4 = source
|
||||||
|
filter_linear4 = false
|
||||||
|
|
|
@ -52,7 +52,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D artifact_colors_refpass;
|
||||||
layout(set = 0, binding = 4) uniform sampler2D Pass2;
|
layout(set = 0, binding = 4) uniform sampler2D Pass2;
|
||||||
layout(set = 0, binding = 5) uniform sampler2D Pass1;
|
layout(set = 0, binding = 5) uniform sampler2D Pass1;
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ void main()
|
||||||
FragColor = vec4(color, 0.);
|
FragColor = vec4(color, 0.);
|
||||||
|
|
||||||
#elif(VIEW_MODE == RGB)
|
#elif(VIEW_MODE == RGB)
|
||||||
FragColor = texture(Original, uv / params.SourceSize.xy);
|
FragColor = texture(artifact_colors_refpass, uv / params.SourceSize.xy);
|
||||||
|
|
||||||
#elif(VIEW_MODE == LUMA)
|
#elif(VIEW_MODE == LUMA)
|
||||||
FragColor = vec4(luma);
|
FragColor = vec4(luma);
|
||||||
|
|
|
@ -1,69 +1,65 @@
|
||||||
shaders = 15
|
shaders = 16
|
||||||
|
|
||||||
shader0 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = mdapt_refpass
|
||||||
scale_type0 = source
|
|
||||||
scale0 = 1.0
|
|
||||||
|
|
||||||
shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang
|
shader1 = ../dithering/shaders/mdapt/passes/mdapt-pass0.slang
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 1.0
|
scale1 = 1.0
|
||||||
|
|
||||||
shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang
|
shader2 = ../dithering/shaders/mdapt/passes/mdapt-pass1.slang
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type2 = source
|
scale_type2 = source
|
||||||
scale2 = 1.0
|
scale2 = 1.0
|
||||||
|
|
||||||
shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang
|
shader3 = ../dithering/shaders/mdapt/passes/mdapt-pass2.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type3 = source
|
scale_type3 = source
|
||||||
scale3 = 1.0
|
scale3 = 1.0
|
||||||
|
|
||||||
shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
|
shader4 = ../dithering/shaders/mdapt/passes/mdapt-pass3.slang
|
||||||
filter_linear4 = false
|
filter_linear4 = false
|
||||||
scale_type4 = source
|
scale_type4 = source
|
||||||
scale4 = 1.0
|
scale4 = 1.0
|
||||||
|
|
||||||
shader5 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
|
shader5 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
|
||||||
filter_linear4 = false
|
filter_linear5 = false
|
||||||
scale_type4 = source
|
scale_type5 = source
|
||||||
scale4 = 1.0
|
scale5 = 1.0
|
||||||
|
|
||||||
shader6 = "../denoisers/shaders/fast-bilateral.slang"
|
shader6 = ../dithering/shaders/mdapt/passes/mdapt-pass4.slang
|
||||||
filter_linear6 = "false"
|
filter_linear6 = false
|
||||||
wrap_mode6 = "clamp_to_edge"
|
scale_type6 = source
|
||||||
scale_type_x6 = "source"
|
scale6 = 1.0
|
||||||
scale_x6 = "1.000000"
|
|
||||||
scale_type_y6 = "source"
|
|
||||||
scale_y6 = "1.000000"
|
|
||||||
|
|
||||||
shader7 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
shader7 = "../denoisers/shaders/fast-bilateral.slang"
|
||||||
filter_linear7 = "false"
|
filter_linear7 = "false"
|
||||||
wrap_mode7 = "clamp_to_edge"
|
wrap_mode7 = "clamp_to_edge"
|
||||||
scale_type_x7 = "source"
|
scale_type_x7 = "source"
|
||||||
scale_x7 = "1.000000"
|
scale_x7 = "1.000000"
|
||||||
scale_type_y7 = "source"
|
scale_type_y7 = "source"
|
||||||
scale_y7 = "1.000000"
|
scale_y7 = "1.000000"
|
||||||
|
alias7 = XbrSource
|
||||||
|
|
||||||
shader8 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
|
shader8 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
||||||
filter_linear8 = "false"
|
filter_linear8 = "false"
|
||||||
wrap_mode8 = "clamp_to_edge"
|
wrap_mode8 = "clamp_to_edge"
|
||||||
scale_type_x8 = "source"
|
scale_type_x8 = "source"
|
||||||
scale_x8 = "2.000000"
|
scale_x8 = "1.000000"
|
||||||
scale_type_y8 = "source"
|
scale_type_y8 = "source"
|
||||||
scale_y8 = "2.000000"
|
scale_y8 = "1.000000"
|
||||||
alias8 = "PassPrev2"
|
|
||||||
|
|
||||||
shader9 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
shader9 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
|
||||||
filter_linear9 = "false"
|
filter_linear9 = "false"
|
||||||
wrap_mode9 = "clamp_to_edge"
|
wrap_mode9 = "clamp_to_edge"
|
||||||
scale_type_x9 = "source"
|
scale_type_x9 = "source"
|
||||||
scale_x9 = "1.000000"
|
scale_x9 = "2.000000"
|
||||||
scale_type_y9 = "source"
|
scale_type_y9 = "source"
|
||||||
scale_y9 = "1.000000"
|
scale_y9 = "2.000000"
|
||||||
|
alias9 = "PassPrev2"
|
||||||
|
|
||||||
shader10 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
shader10 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
||||||
filter_linear10 = "false"
|
filter_linear10 = "false"
|
||||||
wrap_mode10 = "clamp_to_edge"
|
wrap_mode10 = "clamp_to_edge"
|
||||||
scale_type_x10 = "source"
|
scale_type_x10 = "source"
|
||||||
|
@ -71,25 +67,33 @@ scale_x10 = "1.000000"
|
||||||
scale_type_y10 = "source"
|
scale_type_y10 = "source"
|
||||||
scale_y10 = "1.000000"
|
scale_y10 = "1.000000"
|
||||||
|
|
||||||
shader11 = "../xbr/shaders/super-xbr/super-xbr-pass1b.slang"
|
shader11 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
||||||
filter_linear11 = "false"
|
filter_linear11 = "false"
|
||||||
wrap_mode11 = "clamp_to_edge"
|
wrap_mode11 = "clamp_to_edge"
|
||||||
scale_type_x11 = "source"
|
scale_type_x11 = "source"
|
||||||
scale_x11 = "2.000000"
|
scale_x11 = "1.000000"
|
||||||
scale_type_y11 = "source"
|
scale_type_y11 = "source"
|
||||||
scale_y11 = "2.000000"
|
scale_y11 = "1.000000"
|
||||||
|
|
||||||
shader12 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
shader12 = "../xbr/shaders/super-xbr/super-xbr-pass1b.slang"
|
||||||
filter_linear12 = "false"
|
filter_linear12 = "false"
|
||||||
wrap_mode12 = "clamp_to_edge"
|
wrap_mode12 = "clamp_to_edge"
|
||||||
scale_type_x12 = "source"
|
scale_type_x12 = "source"
|
||||||
scale_x12 = "1.000000"
|
scale_x12 = "2.000000"
|
||||||
scale_type_y12 = "source"
|
scale_type_y12 = "source"
|
||||||
scale_y12 = "1.000000"
|
scale_y12 = "2.000000"
|
||||||
|
|
||||||
shader13 = ../stock.slang
|
shader13 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
||||||
|
filter_linear13 = "false"
|
||||||
|
wrap_mode13 = "clamp_to_edge"
|
||||||
|
scale_type_x13 = "source"
|
||||||
|
scale_x13 = "1.000000"
|
||||||
|
scale_type_y13 = "source"
|
||||||
|
scale_y13 = "1.000000"
|
||||||
|
|
||||||
shader14 = ../scanlines/shaders/scanline.slang
|
shader14 = ../stock.slang
|
||||||
filter_linear14 = false
|
|
||||||
scale_type14 = source
|
shader15 = ../scanlines/shaders/scanline.slang
|
||||||
scale14 = 1.0
|
filter_linear15 = false
|
||||||
|
scale_type15 = source
|
||||||
|
scale15 = 1.0
|
||||||
|
|
|
@ -1,49 +1,52 @@
|
||||||
shaders = 8
|
shaders = 9
|
||||||
|
|
||||||
shader0 = shaders/old/scalefx-pass0.slang
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = scalefx_old_refpass
|
||||||
scale_type0 = source
|
|
||||||
scale0 = 1.0
|
|
||||||
alias0 = sfxp0
|
|
||||||
|
|
||||||
shader1 = shaders/old/scalefx-pass1.slang
|
shader1 = shaders/old/scalefx-pass0.slang
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = source
|
scale_type1 = source
|
||||||
scale1 = 1.0
|
scale1 = 1.0
|
||||||
alias1 = sfxp1
|
alias1 = sfxp0
|
||||||
|
|
||||||
shader2 = shaders/old/scalefx-pass2.slang
|
shader2 = shaders/old/scalefx-pass1.slang
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type2 = source
|
scale_type2 = source
|
||||||
scale2 = 1.0
|
scale2 = 1.0
|
||||||
alias2 = sfxp2
|
alias2 = sfxp1
|
||||||
|
|
||||||
shader3 = shaders/old/scalefx-pass3.slang
|
shader3 = shaders/old/scalefx-pass2.slang
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type3 = source
|
scale_type3 = source
|
||||||
scale3 = 3.0
|
scale3 = 1.0
|
||||||
alias3 = sfxp3
|
alias3 = sfxp2
|
||||||
|
|
||||||
shader4 = shaders/old/scalefx-pass0.slang
|
shader4 = shaders/old/scalefx-pass3.slang
|
||||||
filter_linear4 = false
|
filter_linear4 = false
|
||||||
scale_type4 = source
|
scale_type4 = source
|
||||||
scale4 = 1.0
|
scale4 = 3.0
|
||||||
alias4 = sfxp4
|
alias4 = sfxp3
|
||||||
|
|
||||||
shader5 = shaders/old/scalefx-pass1.slang
|
shader5 = shaders/old/scalefx-pass0.slang
|
||||||
filter_linear5 = false
|
filter_linear5 = false
|
||||||
scale_type5 = source
|
scale_type5 = source
|
||||||
scale5 = 1.0
|
scale5 = 1.0
|
||||||
alias5 = sfxp5
|
alias5 = sfxp4
|
||||||
|
|
||||||
shader6 = shaders/old/scalefx-pass2.slang
|
shader6 = shaders/old/scalefx-pass1.slang
|
||||||
filter_linear6 = false
|
filter_linear6 = false
|
||||||
scale_type6 = source
|
scale_type6 = source
|
||||||
scale6 = 1.0
|
scale6 = 1.0
|
||||||
alias6 = sfxp6
|
alias6 = sfxp5
|
||||||
|
|
||||||
shader7 = shaders/old/scalefx-pass7.slang
|
shader7 = shaders/old/scalefx-pass2.slang
|
||||||
filter_linear7 = false
|
filter_linear7 = false
|
||||||
scale_type7 = source
|
scale_type7 = source
|
||||||
scale7 = 3.0
|
scale7 = 1.0
|
||||||
alias7 = sfxp7
|
alias7 = sfxp6
|
||||||
|
|
||||||
|
shader8 = shaders/old/scalefx-pass7.slang
|
||||||
|
filter_linear8 = false
|
||||||
|
scale_type8 = source
|
||||||
|
scale8 = 3.0
|
||||||
|
alias8 = sfxp7
|
||||||
|
|
|
@ -67,7 +67,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(binding = 1) uniform sampler2D Source;
|
layout(binding = 1) uniform sampler2D Source;
|
||||||
layout(binding = 2) uniform sampler2D Original;
|
layout(binding = 2) uniform sampler2D scalefx_old_refpass;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -109,6 +109,6 @@ void main()
|
||||||
vec2 res = sp == 0 ? vec2(0,0) : sp == 1 ? vec2(-1,0) : sp == 2 ? vec2(-2,0) : sp == 3 ? vec2(1,0) : sp == 4 ? vec2(2,0) : sp == 5 ? vec2(0,-1) : sp == 6 ? vec2(0,-2) : sp == 7 ? vec2(0,1) : vec2(0,2);
|
vec2 res = sp == 0 ? vec2(0,0) : sp == 1 ? vec2(-1,0) : sp == 2 ? vec2(-2,0) : sp == 3 ? vec2(1,0) : sp == 4 ? vec2(2,0) : sp == 5 ? vec2(0,-1) : sp == 6 ? vec2(0,-2) : sp == 7 ? vec2(0,1) : vec2(0,2);
|
||||||
|
|
||||||
// ouput
|
// ouput
|
||||||
FragColor = texture(Original, vTexCoord + 1/SourceSize.xy * res);
|
FragColor = texture(scalefx_old_refpass, vTexCoord + 1/SourceSize.xy * res);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D diff_refpass;
|
||||||
|
|
||||||
const vec3 Y = vec3(.2126, .7152, .0722);
|
const vec3 Y = vec3(.2126, .7152, .0722);
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ void main()
|
||||||
vec2 tex = vTexCoord;
|
vec2 tex = vTexCoord;
|
||||||
|
|
||||||
vec4 c0 = texture(Source, tex);
|
vec4 c0 = texture(Source, tex);
|
||||||
vec4 c1 = texture(Original, tex);
|
vec4 c1 = texture(diff_refpass, tex);
|
||||||
|
|
||||||
FragColor = vec4(c0.xyz - c1.xyz, RGBtoYUV(c0.rgb));
|
FragColor = vec4(c0.xyz - c1.xyz, RGBtoYUV(c0.rgb));
|
||||||
}
|
}
|
|
@ -1,41 +1,52 @@
|
||||||
shaders = "9"
|
shaders = "10"
|
||||||
|
|
||||||
shader0 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = "false"
|
alias0 = diff_refpass
|
||||||
scale_type0 = "source"
|
|
||||||
scale0 = "1.000000"
|
shader1 = ../stock.slang
|
||||||
shader1 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
|
alias1 = XbrSource
|
||||||
filter_linear1 = "false"
|
|
||||||
scale_type1 = "source"
|
shader2 = "../xbr/shaders/super-xbr/super-xbr-pass0.slang"
|
||||||
scale1 = "2.000000"
|
|
||||||
shader2 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
|
||||||
filter_linear2 = "false"
|
filter_linear2 = "false"
|
||||||
scale_type2 = "source"
|
scale_type2 = "source"
|
||||||
scale2 = "1.000000"
|
scale2 = "1.000000"
|
||||||
alias2 = "REF"
|
|
||||||
|
|
||||||
shader3 = "../cubic/shaders/cubic.slang"
|
shader3 = "../xbr/shaders/super-xbr/super-xbr-pass1.slang"
|
||||||
filter_linear3 = "false"
|
filter_linear3 = "false"
|
||||||
scale_type3 = "source"
|
scale_type3 = "source"
|
||||||
scale3 = "0.500000"
|
scale3 = "2.000000"
|
||||||
shader4 = "shaders/diff.slang"
|
|
||||||
|
shader4 = "../xbr/shaders/super-xbr/super-xbr-pass2.slang"
|
||||||
filter_linear4 = "false"
|
filter_linear4 = "false"
|
||||||
scale_type4 = "source"
|
scale_type4 = "source"
|
||||||
scale4 = "1.000000"
|
scale4 = "1.000000"
|
||||||
shader5 = "shaders/super-res-ex.slang"
|
alias4 = "REF"
|
||||||
filter_linear5 = "true"
|
|
||||||
scale_type5 = "source"
|
|
||||||
scale5 = "2.000000"
|
|
||||||
|
|
||||||
shader6 = "../misc/shaders/deposterize/deposterize-pass0.slang"
|
shader5 = "../cubic/shaders/cubic.slang"
|
||||||
|
filter_linear5 = "false"
|
||||||
|
scale_type5 = "source"
|
||||||
|
scale5 = "0.500000"
|
||||||
|
|
||||||
|
shader6 = "shaders/diff.slang"
|
||||||
filter_linear6 = "false"
|
filter_linear6 = "false"
|
||||||
scale_type6 = "source"
|
scale_type6 = "source"
|
||||||
scale6 = "1.000000"
|
scale6 = "1.000000"
|
||||||
shader7 = "../misc/shaders/deposterize/deposterize-pass1.slang"
|
|
||||||
filter_linear7 = "false"
|
shader7 = "shaders/super-res-ex.slang"
|
||||||
|
filter_linear7 = "true"
|
||||||
scale_type7 = "source"
|
scale_type7 = "source"
|
||||||
scale7 = "1.000000"
|
scale7 = "2.000000"
|
||||||
|
|
||||||
shader8 = "../xbr/shaders/super-xbr/custom-jinc2-sharper.slang"
|
shader8 = "../misc/shaders/deposterize/deposterize-pass0.slang"
|
||||||
filter_linear8 = "false"
|
filter_linear8 = "false"
|
||||||
|
scale_type8 = "source"
|
||||||
|
scale8 = "1.000000"
|
||||||
|
|
||||||
|
shader9 = "../misc/shaders/deposterize/deposterize-pass1.slang"
|
||||||
|
filter_linear9 = "false"
|
||||||
|
scale_type9 = "source"
|
||||||
|
scale9 = "1.000000"
|
||||||
|
|
||||||
|
shader10 = "../xbr/shaders/super-xbr/custom-jinc2-sharper.slang"
|
||||||
|
filter_linear10 = "false"
|
||||||
|
|
||||||
|
|
|
@ -1,24 +1,27 @@
|
||||||
shaders = 4
|
shaders = 5
|
||||||
|
|
||||||
shader0 = shaders/gristleVHS/HorizontalSoften.slang
|
shader0 = ../stock.slang
|
||||||
scale_type0 = absolute
|
alias0 = gristleVHS_refpass
|
||||||
scale_y0 = 480
|
|
||||||
scale_x0 = 333
|
|
||||||
frame_count_mod0 = 256
|
|
||||||
filter_linear0 = true
|
|
||||||
|
|
||||||
shader1 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang
|
shader1 = shaders/gristleVHS/HorizontalSoften.slang
|
||||||
scale_type1 = absolute
|
scale_type1 = absolute
|
||||||
scale_x1 = 80
|
|
||||||
scale_y1 = 480
|
scale_y1 = 480
|
||||||
|
scale_x1 = 333
|
||||||
|
frame_count_mod1 = 256
|
||||||
filter_linear1 = true
|
filter_linear1 = true
|
||||||
|
|
||||||
shader2 = shaders/gristleVHS/VHS.slang
|
shader2 = ../blurs/shaders/sunset_gaussian/sunset_horz.slang
|
||||||
scale_type2 = absolute
|
scale_type2 = absolute
|
||||||
|
scale_x2 = 80
|
||||||
scale_y2 = 480
|
scale_y2 = 480
|
||||||
scale_x2 = 333
|
|
||||||
frame_count_mod2 = 256
|
|
||||||
filter_linear2 = true
|
filter_linear2 = true
|
||||||
|
|
||||||
shader3 = ../stock.slang
|
shader3 = shaders/gristleVHS/VHS.slang
|
||||||
|
scale_type3 = absolute
|
||||||
|
scale_y3 = 480
|
||||||
|
scale_x3 = 333
|
||||||
|
frame_count_mod3 = 256
|
||||||
filter_linear3 = true
|
filter_linear3 = true
|
||||||
|
|
||||||
|
shader4 = ../stock.slang
|
||||||
|
filter_linear4 = true
|
||||||
|
|
|
@ -28,7 +28,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D gristleVHS_refpass;
|
||||||
|
|
||||||
#define RGB_to_YIQ mat3x3( 0.299 , 0.595716 , 0.211456 , 0.587 , -0.274453 , -0.522591 , 0.114 , -0.321263 , 0.311135 )
|
#define RGB_to_YIQ mat3x3( 0.299 , 0.595716 , 0.211456 , 0.587 , -0.274453 , -0.522591 , 0.114 , -0.321263 , 0.311135 )
|
||||||
#define YIQ_to_RGB mat3x3( 1.0 , 1.0 , 1.0 , 0.9563 , -0.2721 , -1.1070 , 0.6210 , -0.6474 , 1.7046 )
|
#define YIQ_to_RGB mat3x3( 1.0 , 1.0 , 1.0 , 0.9563 , -0.2721 , -1.1070 , 0.6210 , -0.6474 , 1.7046 )
|
||||||
|
@ -40,7 +40,7 @@ const float rndtable[256] = float[](
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec3 ChromaPass = texture(Source, vTexCoord - vec2(params.SourceSize.z*0.333,0.0)).xyz * RGB_to_YIQ;
|
vec3 ChromaPass = texture(Source, vTexCoord - vec2(params.SourceSize.z*0.333,0.0)).xyz * RGB_to_YIQ;
|
||||||
vec3 LuminaPass = texture(Original, vTexCoord).xyz * RGB_to_YIQ;
|
vec3 LuminaPass = texture(gristleVHS_refpass, vTexCoord).xyz * RGB_to_YIQ;
|
||||||
|
|
||||||
vec3 MergedPass= vec3(LuminaPass.x,ChromaPass.yz) * YIQ_to_RGB;
|
vec3 MergedPass= vec3(LuminaPass.x,ChromaPass.yz) * YIQ_to_RGB;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
shaders = 2
|
shaders = 3
|
||||||
|
|
||||||
shader0 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang"
|
shader0 = ../../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = xBR_lv1_mp_refpass
|
||||||
scale_type0 = source
|
|
||||||
|
|
||||||
shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang"
|
shader1 = "shaders/2xBR-multipass/2xbr-lv1-c-pass0.slang"
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
|
scale_type1 = source
|
||||||
|
|
||||||
|
shader2 = "shaders/2xBR-multipass/2xbr-lv1-c-pass1.slang"
|
||||||
|
filter_linear2 = false
|
||||||
|
|
|
@ -4,7 +4,7 @@ layout(std140, set = 0, binding = 0) uniform UBO
|
||||||
{
|
{
|
||||||
mat4 MVP;
|
mat4 MVP;
|
||||||
vec4 OutputSize;
|
vec4 OutputSize;
|
||||||
vec4 OriginalSize;
|
vec4 xBR_lv1_mp_refpassSize;
|
||||||
vec4 SourceSize;
|
vec4 SourceSize;
|
||||||
} global;
|
} global;
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 1) in vec4 t1;
|
layout(location = 1) in vec4 t1;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D xBR_lv1_mp_refpass;
|
||||||
|
|
||||||
mat4x2 sym_vectors = mat4x2(1, 1, 1, -1, -1, -1, -1, 1);
|
mat4x2 sym_vectors = mat4x2(1, 1, 1, -1, -1, -1, -1, 1);
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ vec2 unpack_info(float i)
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
//get original texture coordinates relative to the current pass
|
//get original texture coordinates relative to the current pass
|
||||||
vec2 OriginalCoord = floor(global.OriginalSize.xy * vTexCoord);
|
vec2 OriginalCoord = floor(global.xBR_lv1_mp_refpassSize.xy * vTexCoord);
|
||||||
OriginalCoord = (OriginalCoord + 0.5) * global.OriginalSize.zw;
|
OriginalCoord = (OriginalCoord + 0.5) * global.xBR_lv1_mp_refpassSize.zw;
|
||||||
|
|
||||||
float px, edr; // px = pixel to blend, edr = edge detection rule
|
float px, edr; // px = pixel to blend, edr = edge detection rule
|
||||||
|
|
||||||
|
@ -67,9 +67,9 @@ void main()
|
||||||
vec2 g1 = dir*t1.xy;
|
vec2 g1 = dir*t1.xy;
|
||||||
vec2 g2 = dir*t1.zw;
|
vec2 g2 = dir*t1.zw;
|
||||||
|
|
||||||
vec3 F = texture(Original, OriginalCoord +g1).rgb;
|
vec3 F = texture(xBR_lv1_mp_refpass, OriginalCoord +g1).rgb;
|
||||||
vec3 H = texture(Original, OriginalCoord +g2).rgb;
|
vec3 H = texture(xBR_lv1_mp_refpass, OriginalCoord +g2).rgb;
|
||||||
vec3 E = texture(Original, OriginalCoord ).rgb;
|
vec3 E = texture(xBR_lv1_mp_refpass, OriginalCoord ).rgb;
|
||||||
|
|
||||||
vec4 icomp = round(clamp(dir*sym_vectors, vec4(0.0), vec4(1.0))); // choose info component
|
vec4 icomp = round(clamp(dir*sym_vectors, vec4(0.0), vec4(1.0))); // choose info component
|
||||||
float info = remapFrom01(dot(texture(Source, vTexCoord), icomp), 255.0f); // retrieve 1st pass info
|
float info = remapFrom01(dot(texture(Source, vTexCoord), icomp), 255.0f); // retrieve 1st pass info
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super2xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -164,15 +164,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super2xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super2xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super2xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super2xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super2xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super2xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super2xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -142,7 +142,7 @@ layout(location = 3) in vec4 t3;
|
||||||
layout(location = 4) in vec4 t4;
|
layout(location = 4) in vec4 t4;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super2xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -173,15 +173,15 @@ void main()
|
||||||
|
|
||||||
vec3 A = texture(Source, vTexCoord).xyz;
|
vec3 A = texture(Source, vTexCoord).xyz;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super2xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super2xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super2xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super2xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super2xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super2xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super2xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super2xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -164,15 +164,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3;
|
||||||
layout(location = 4) in vec4 t4;
|
layout(location = 4) in vec4 t4;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -171,15 +171,15 @@ void main()
|
||||||
|
|
||||||
vec3 A = texture(Source, vTexCoord).xyz;
|
vec3 A = texture(Source, vTexCoord).xyz;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -164,15 +164,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -140,7 +140,7 @@ layout(location = 3) in vec4 t3;
|
||||||
layout(location = 4) in vec4 t4;
|
layout(location = 4) in vec4 t4;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super4xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -171,15 +171,15 @@ void main()
|
||||||
|
|
||||||
vec3 A = texture(Source, vTexCoord).xyz;
|
vec3 A = texture(Source, vTexCoord).xyz;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super4xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super4xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super4xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super4xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super4xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super4xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super4xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super4xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -166,15 +166,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -166,15 +166,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D super8xbr3d_refpass;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -166,15 +166,15 @@ void main()
|
||||||
g1 *= 2.0;
|
g1 *= 2.0;
|
||||||
g2 *= 2.0;
|
g2 *= 2.0;
|
||||||
|
|
||||||
vec3 F6 = texture(Original, tex +g1+0.25*g1+0.25*g2).xyz;
|
vec3 F6 = texture(super8xbr3d_refpass, tex +g1+0.25*g1+0.25*g2).xyz;
|
||||||
vec3 F7 = texture(Original, tex +g1+0.25*g1-0.25*g2).xyz;
|
vec3 F7 = texture(super8xbr3d_refpass, tex +g1+0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F8 = texture(Original, tex +g1-0.25*g1-0.25*g2).xyz;
|
vec3 F8 = texture(super8xbr3d_refpass, tex +g1-0.25*g1-0.25*g2).xyz;
|
||||||
vec3 F9 = texture(Original, tex +g1-0.25*g1+0.25*g2).xyz;
|
vec3 F9 = texture(super8xbr3d_refpass, tex +g1-0.25*g1+0.25*g2).xyz;
|
||||||
|
|
||||||
vec3 H6 = texture(Original, tex +0.25*g1+0.25*g2+g2).xyz;
|
vec3 H6 = texture(super8xbr3d_refpass, tex +0.25*g1+0.25*g2+g2).xyz;
|
||||||
vec3 H7 = texture(Original, tex +0.25*g1-0.25*g2+g2).xyz;
|
vec3 H7 = texture(super8xbr3d_refpass, tex +0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H8 = texture(Original, tex -0.25*g1-0.25*g2+g2).xyz;
|
vec3 H8 = texture(super8xbr3d_refpass, tex -0.25*g1-0.25*g2+g2).xyz;
|
||||||
vec3 H9 = texture(Original, tex -0.25*g1+0.25*g2+g2).xyz;
|
vec3 H9 = texture(super8xbr3d_refpass, tex -0.25*g1+0.25*g2+g2).xyz;
|
||||||
|
|
||||||
vec4 f0 = reduce4(F6, F7, F8, F9);
|
vec4 f0 = reduce4(F6, F7, F8, F9);
|
||||||
vec4 h0 = reduce4(H6, H7, H8, H9);
|
vec4 h0 = reduce4(H6, H7, H8, H9);
|
||||||
|
|
|
@ -1,16 +1,22 @@
|
||||||
shaders = "3"
|
shaders = "4"
|
||||||
shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
|
|
||||||
filter_linear0 = false
|
shader0 = ../../stock.slang
|
||||||
scale_type_x0 = "source"
|
alias0 = super2xbr3d_refpass
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
|
||||||
filter_linear2 = false
|
shader2 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
|
||||||
|
filter_linear2 = false
|
||||||
|
scale_type_x2 = "source"
|
||||||
|
scale_x2 = "1.000000"
|
||||||
|
scale_type_y2 = "source"
|
||||||
|
scale_y2 = "1.000000"
|
||||||
|
|
||||||
|
shader3 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
||||||
|
filter_linear3 = false
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,29 @@
|
||||||
shaders = "4"
|
shaders = "5"
|
||||||
shader0 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
|
|
||||||
filter_linear0 = false
|
shader0 = ../../stock.slang
|
||||||
scale_type_x0 = "source"
|
alias0 = super2xbr3d_refpass
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
shader1 = "shaders/super-xbr/super-2xbr-3d-pass0.slang"
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = "shaders/super-xbr/super-2xbr-3d-pass2.slang"
|
|
||||||
|
shader2 = "shaders/super-xbr/super-2xbr-3d-pass1.slang"
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_x2 = "1.000000"
|
scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "1.000000"
|
scale_y2 = "1.000000"
|
||||||
shader3 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
|
||||||
filter_linear3 = false
|
shader3 = "shaders/super-xbr/super-2xbr-3d-pass2.slang"
|
||||||
|
filter_linear3 = false
|
||||||
|
scale_type_x3 = "source"
|
||||||
|
scale_x3 = "1.000000"
|
||||||
|
scale_type_y3 = "source"
|
||||||
|
scale_y3 = "1.000000"
|
||||||
|
|
||||||
|
shader4 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
||||||
|
filter_linear4 = false
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,36 @@
|
||||||
shaders = "5"
|
shaders = "6"
|
||||||
shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
|
|
||||||
filter_linear0 = false
|
shader0 = ../../stock.slang
|
||||||
scale_type_x0 = "source"
|
alias0 = super4xbr3d_refpass
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = "shaders/super-xbr/super-4xbr-3d-pass2.slang"
|
|
||||||
|
shader2 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_x2 = "1.000000"
|
scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "1.000000"
|
scale_y2 = "1.000000"
|
||||||
shader3 = "shaders/super-xbr/super-4xbr-3d-pass3.slang"
|
|
||||||
|
shader3 = "shaders/super-xbr/super-4xbr-3d-pass2.slang"
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_x3 = "1.000000"
|
scale_x3 = "1.000000"
|
||||||
scale_type_y3 = "source"
|
scale_type_y3 = "source"
|
||||||
scale_y3 = "1.000000"
|
scale_y3 = "1.000000"
|
||||||
shader4 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
|
||||||
filter_linear4 = false
|
shader4 = "shaders/super-xbr/super-4xbr-3d-pass3.slang"
|
||||||
|
filter_linear4 = false
|
||||||
|
scale_type_x4 = "source"
|
||||||
|
scale_x4 = "1.000000"
|
||||||
|
scale_type_y4 = "source"
|
||||||
|
scale_y4 = "1.000000"
|
||||||
|
|
||||||
|
shader5 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
||||||
|
filter_linear5 = false
|
||||||
|
|
||||||
|
|
|
@ -1,40 +1,50 @@
|
||||||
shaders = "7"
|
shaders = "8"
|
||||||
shader0 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
|
|
||||||
filter_linear0 = false
|
shader0 = ../../stock.slang
|
||||||
scale_type_x0 = "source"
|
alias0 = super4xbr3d_refpass
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
shader1 = "shaders/super-xbr/super-4xbr-3d-pass0.slang"
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = "shaders/super-xbr/super-4xbr-3d-pass1f.slang"
|
|
||||||
|
shader2 = "shaders/super-xbr/super-4xbr-3d-pass1.slang"
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_x2 = "1.000000"
|
scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "1.000000"
|
scale_y2 = "1.000000"
|
||||||
shader3 = "shaders/super-xbr/super-4xbr-3d-pass2.slang"
|
|
||||||
|
shader3 = "shaders/super-xbr/super-4xbr-3d-pass1f.slang"
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_x3 = "1.000000"
|
scale_x3 = "1.000000"
|
||||||
scale_type_y3 = "source"
|
scale_type_y3 = "source"
|
||||||
scale_y3 = "1.000000"
|
scale_y3 = "1.000000"
|
||||||
shader4 = "shaders/super-xbr/super-4xbr-3d-pass3.slang"
|
|
||||||
|
shader4 = "shaders/super-xbr/super-4xbr-3d-pass2.slang"
|
||||||
filter_linear4 = false
|
filter_linear4 = false
|
||||||
scale_type_x4 = "source"
|
scale_type_x4 = "source"
|
||||||
scale_x4 = "1.000000"
|
scale_x4 = "1.000000"
|
||||||
scale_type_y4 = "source"
|
scale_type_y4 = "source"
|
||||||
scale_y4 = "1.000000"
|
scale_y4 = "1.000000"
|
||||||
shader5 = "shaders/super-xbr/super-4xbr-3d-pass3f.slang"
|
|
||||||
|
shader5 = "shaders/super-xbr/super-4xbr-3d-pass3.slang"
|
||||||
filter_linear5 = false
|
filter_linear5 = false
|
||||||
scale_type_x5 = "source"
|
scale_type_x5 = "source"
|
||||||
scale_x5 = "1.000000"
|
scale_x5 = "1.000000"
|
||||||
scale_type_y5 = "source"
|
scale_type_y5 = "source"
|
||||||
scale_y5 = "1.000000"
|
scale_y5 = "1.000000"
|
||||||
shader6 = "../shaders/support/stock.slang"
|
|
||||||
filter_linear6 = true
|
shader6 = "shaders/super-xbr/super-4xbr-3d-pass3f.slang"
|
||||||
|
filter_linear6 = false
|
||||||
|
scale_type_x6 = "source"
|
||||||
|
scale_x6 = "1.000000"
|
||||||
|
scale_type_y6 = "source"
|
||||||
|
scale_y6 = "1.000000"
|
||||||
|
|
||||||
|
shader7 = "../shaders/support/stock.slang"
|
||||||
|
filter_linear7 = true
|
||||||
|
|
||||||
|
|
|
@ -1,40 +1,50 @@
|
||||||
shaders = "7"
|
shaders = "8"
|
||||||
shader0 = "shaders/super-xbr/super-8xbr-3d-pass0.slang"
|
|
||||||
filter_linear0 = false
|
shader0 = ../../stock.slang
|
||||||
scale_type_x0 = "source"
|
alias0 = super8xbr3d_refpass
|
||||||
scale_x0 = "1.000000"
|
|
||||||
scale_type_y0 = "source"
|
shader1 = "shaders/super-xbr/super-8xbr-3d-pass0.slang"
|
||||||
scale_y0 = "1.000000"
|
|
||||||
shader1 = "shaders/super-xbr/super-8xbr-3d-pass1.slang"
|
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type_x1 = "source"
|
scale_type_x1 = "source"
|
||||||
scale_x1 = "1.000000"
|
scale_x1 = "1.000000"
|
||||||
scale_type_y1 = "source"
|
scale_type_y1 = "source"
|
||||||
scale_y1 = "1.000000"
|
scale_y1 = "1.000000"
|
||||||
shader2 = "shaders/super-xbr/super-8xbr-3d-pass2.slang"
|
|
||||||
|
shader2 = "shaders/super-xbr/super-8xbr-3d-pass1.slang"
|
||||||
filter_linear2 = false
|
filter_linear2 = false
|
||||||
scale_type_x2 = "source"
|
scale_type_x2 = "source"
|
||||||
scale_x2 = "1.000000"
|
scale_x2 = "1.000000"
|
||||||
scale_type_y2 = "source"
|
scale_type_y2 = "source"
|
||||||
scale_y2 = "1.000000"
|
scale_y2 = "1.000000"
|
||||||
shader3 = "shaders/super-xbr/super-8xbr-3d-pass3.slang"
|
|
||||||
|
shader3 = "shaders/super-xbr/super-8xbr-3d-pass2.slang"
|
||||||
filter_linear3 = false
|
filter_linear3 = false
|
||||||
scale_type_x3 = "source"
|
scale_type_x3 = "source"
|
||||||
scale_x3 = "1.000000"
|
scale_x3 = "1.000000"
|
||||||
scale_type_y3 = "source"
|
scale_type_y3 = "source"
|
||||||
scale_y3 = "1.000000"
|
scale_y3 = "1.000000"
|
||||||
shader4 = "shaders/super-xbr/super-8xbr-3d-pass4.slang"
|
|
||||||
|
shader4 = "shaders/super-xbr/super-8xbr-3d-pass3.slang"
|
||||||
filter_linear4 = false
|
filter_linear4 = false
|
||||||
scale_type_x4 = "source"
|
scale_type_x4 = "source"
|
||||||
scale_x4 = "1.000000"
|
scale_x4 = "1.000000"
|
||||||
scale_type_y4 = "source"
|
scale_type_y4 = "source"
|
||||||
scale_y4 = "1.000000"
|
scale_y4 = "1.000000"
|
||||||
shader5 = "shaders/super-xbr/super-8xbr-3d-pass5.slang"
|
|
||||||
|
shader5 = "shaders/super-xbr/super-8xbr-3d-pass4.slang"
|
||||||
filter_linear5 = false
|
filter_linear5 = false
|
||||||
scale_type_x5 = "source"
|
scale_type_x5 = "source"
|
||||||
scale_x5 = "1.000000"
|
scale_x5 = "1.000000"
|
||||||
scale_type_y5 = "source"
|
scale_type_y5 = "source"
|
||||||
scale_y5 = "1.000000"
|
scale_y5 = "1.000000"
|
||||||
shader6 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
|
||||||
filter_linear6 = false
|
shader6 = "shaders/super-xbr/super-8xbr-3d-pass5.slang"
|
||||||
|
filter_linear6 = false
|
||||||
|
scale_type_x6 = "source"
|
||||||
|
scale_x6 = "1.000000"
|
||||||
|
scale_type_y6 = "source"
|
||||||
|
scale_y6 = "1.000000"
|
||||||
|
|
||||||
|
shader7 = "shaders/super-xbr/custom-jinc2-sharper.slang"
|
||||||
|
filter_linear7 = false
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ layout(push_constant) uniform Push
|
||||||
float XBR_TEXTURE_SHP;
|
float XBR_TEXTURE_SHP;
|
||||||
} params;
|
} params;
|
||||||
|
|
||||||
#pragma parameter MODE "Mode - Normal, Details, Adaptive" 0.0 0.0 2.0 1.0
|
#pragma parameter MODE "Mode - Normal, Details, Adaptive" 1.0 0.0 2.0 1.0
|
||||||
#pragma parameter XBR_EDGE_SHP "Adaptive Dynamic Edge Sharp" 0.4 0.0 3.0 0.1
|
#pragma parameter XBR_EDGE_SHP "Adaptive Dynamic Edge Sharp" 0.4 0.0 3.0 0.1
|
||||||
#pragma parameter XBR_TEXTURE_SHP "Adaptive Static Edge Sharp" 1.0 0.0 2.0 0.1
|
#pragma parameter XBR_TEXTURE_SHP "Adaptive Static Edge Sharp" 1.0 0.0 2.0 0.1
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ float get_left_ratio(vec2 center, vec2 origin, vec2 direction, vec2 scale)
|
||||||
|
|
||||||
layout(push_constant) uniform Push
|
layout(push_constant) uniform Push
|
||||||
{
|
{
|
||||||
vec4 OriginalSize;
|
vec4 xbrz_fs_refpassSize;
|
||||||
vec4 OutputSize;
|
vec4 OutputSize;
|
||||||
} params;
|
} params;
|
||||||
|
|
||||||
|
@ -108,13 +108,13 @@ void main()
|
||||||
layout(location = 0) in vec2 vTexCoord;
|
layout(location = 0) in vec2 vTexCoord;
|
||||||
layout(location = 0) out vec4 FragColor;
|
layout(location = 0) out vec4 FragColor;
|
||||||
layout(set = 0, binding = 2) uniform sampler2D Source;
|
layout(set = 0, binding = 2) uniform sampler2D Source;
|
||||||
layout(set = 0, binding = 3) uniform sampler2D Original;
|
layout(set = 0, binding = 3) uniform sampler2D xbrz_fs_refpass;
|
||||||
|
|
||||||
|
|
||||||
#define eq(a,b) (a == b)
|
#define eq(a,b) (a == b)
|
||||||
#define neq(a,b) (a != b)
|
#define neq(a,b) (a != b)
|
||||||
|
|
||||||
#define P(x,y) texture(Original, coord + params.OriginalSize.zw * vec2(x, y)).rgb
|
#define P(x,y) texture(xbrz_fs_refpass, coord + params.xbrz_fs_refpassSize.zw * vec2(x, y)).rgb
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
|
@ -124,9 +124,9 @@ void main()
|
||||||
// D|E|F
|
// D|E|F
|
||||||
// -|H|-
|
// -|H|-
|
||||||
|
|
||||||
vec2 scale = params.OutputSize.xy * params.OriginalSize.zw;
|
vec2 scale = params.OutputSize.xy * params.xbrz_fs_refpassSize.zw;
|
||||||
vec2 pos = fract(vTexCoord * params.OriginalSize.xy) - vec2(0.5, 0.5);
|
vec2 pos = fract(vTexCoord * params.xbrz_fs_refpassSize.xy) - vec2(0.5, 0.5);
|
||||||
vec2 coord = vTexCoord - pos * params.OriginalSize.zw;
|
vec2 coord = vTexCoord - pos * params.xbrz_fs_refpassSize.zw;
|
||||||
|
|
||||||
vec3 B = P( 0,-1);
|
vec3 B = P( 0,-1);
|
||||||
vec3 D = P(-1, 0);
|
vec3 D = P(-1, 0);
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
shaders = 2
|
shaders = 3
|
||||||
|
|
||||||
shader0 = shaders/xbrz-freescale-pass0.slang
|
shader0 = ../stock.slang
|
||||||
filter_linear0 = false
|
alias0 = xbrz_fs_refpass
|
||||||
scale_type0 = source
|
|
||||||
scale0 = 1.0
|
|
||||||
|
|
||||||
shader1 = shaders/xbrz-freescale-pass1.slang
|
shader1 = shaders/xbrz-freescale-pass0.slang
|
||||||
filter_linear1 = false
|
filter_linear1 = false
|
||||||
scale_type1 = viewport
|
scale_type1 = source
|
||||||
scale1 = 1.0
|
scale1 = 1.0
|
||||||
|
|
||||||
|
shader2 = shaders/xbrz-freescale-pass1.slang
|
||||||
|
filter_linear2 = false
|
||||||
|
scale_type2 = viewport
|
||||||
|
scale2 = 1.0
|
||||||
|
|
Loading…
Reference in a new issue