Unverified Commit 12fdb656 authored by hizzlekizzle's avatar hizzlekizzle Committed by GitHub
Browse files

update crt-geom-deluxe to add brightness compensation; add bright pix… (#170)



* update crt-geom-deluxe to add brightness compensation; add bright pixel counts to subpixel masks; delete extraneous preset

* forgot to update geom-deluxe preset

* fix various preset spec nits

* try to mellow out the raster bloom
Co-authored-by: hunterk's avatarhunterk <hunter_kaller@yahoo.com>
parent ba36486c
Pipeline #19046 passed with stage
in 49 seconds
*****************************************************************
Guest-dr-venom-maxDR
A PVM/BVM-style preset for guest-dr-venom created with the goal of maximizing the dynamic range of the image.
For best results, increase your LCD backlight to 100%. Color settings may need to be adjusted per-system or per-game; see the shader notes within grade.slang for suggestions. Color temp may also need to be adjusted depending on the color temp of your display.
Preset created by Nesguy at Libretro forums (https://forums.libretro.com/). Feedback and suggestions are welcome :)
*****************************************************************
shaders = "8"
shader0 = "../misc/grade.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = "WhitePointPass"
float_framebuffer0 = "false"
srgb_framebuffer0 = "false"
scale_type_x0 = "source"
scale_x0 = "1.000000"
scale_type_y0 = "source"
scale_y0 = "1.000000"
shader1 = "../crt/shaders/guest/afterglow.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "AfterglowPass"
float_framebuffer1 = "false"
srgb_framebuffer1 = "false"
scale_type_x1 = "source"
scale_x1 = "1.000000"
scale_type_y1 = "source"
scale_y1 = "1.000000"
shader2 = "../crt/shaders/guest/avg-lum.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "true"
alias2 = "AvgLumPass"
float_framebuffer2 = "true"
srgb_framebuffer2 = "false"
scale_type_x2 = "source"
scale_x2 = "1.000000"
scale_type_y2 = "source"
scale_y2 = "1.000000"
shader3 = "../crt/shaders/guest/linearize.slang"
filter_linear3 = "true"
wrap_mode3 = "clamp_to_border"
mipmap_input3 = "false"
alias3 = "LinearizePass"
float_framebuffer3 = "true"
srgb_framebuffer3 = "false"
scale_type_x3 = "source"
scale_x3 = "1.000000"
scale_type_y3 = "source"
scale_y3 = "1.000000"
shader4 = "../crt/shaders/guest/blur_horiz.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "source"
scale_x4 = "1.000000"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "../crt/shaders/guest/blur_vert.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "GlowPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "1.000000"
shader6 = "../crt/shaders/guest/linearize_scanlines.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "source"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "1.000000"
shader7 = "../crt/shaders/guest/crt-guest-dr-venom.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = ""
float_framebuffer7 = "false"
srgb_framebuffer7 = "false"
scale_type_x7 = "viewport"
scale_x7 = "1.000000"
scale_type_y7 = "viewport"
scale_y7 = "1.000000"
parameters = "g_gamma_in;g_signal_type;g_gamma_type;g_crtgamut;g_space_out;g_hue_degrees;g_I_SHIFT;g_Q_SHIFT;g_I_MUL;g_Q_MUL;g_lum_fix;g_vignette;g_vstr;g_vpower;g_lum;g_cntrst;g_mid;wp_temperature;g_sat;g_vibr;g_satr;g_satg;g_satb;g_lift;blr;blg;blb;wlr;wlg;wlb;rg;rb;gr;gb;br;bg;LUT_Size1;LUT1_toggle;LUT_Size2;LUT2_toggle;SW;AR;PR;AG;PG;AB;PB;sat;lsmooth;GAMMA_INPUT;TAPSH;GLOW_FALLOFF_H;TAPSV;GLOW_FALLOFF_V;TATE;IOS;OS;BLOOM;brightboost;brightboost1;gsl;scanline1;scanline2;beam_min;beam_max;beam_size;h_sharp;s_sharp;csize;bsize;warpX;warpY;glow;shadowMask;masksize;vertmask;slotmask;slotwidth;double_slot;slotms;mcut;maskDark;maskLight;CGWG;gamma_out;spike;inter;interm;bloom;scans"
g_gamma_in = "2.500001"
g_signal_type = "0.000000"
g_gamma_type = "1.000000"
g_crtgamut = "0.000000"
g_space_out = "0.000000"
g_hue_degrees = "0.000000"
g_I_SHIFT = "0.000000"
g_Q_SHIFT = "0.000000"
g_I_MUL = "1.000000"
g_Q_MUL = "1.000000"
g_lum_fix = "0.000000"
g_vignette = "0.000000"
g_vstr = "40.000000"
g_vpower = "0.200000"
g_lum = "0.000000"
g_cntrst = "0.000000"
g_mid = "0.500000"
wp_temperature = "6505.000000"
g_sat = "0.000000"
g_vibr = "0.000000"
g_satr = "0.000000"
g_satg = "0.000000"
g_satb = "0.000000"
g_lift = "0.000000"
blr = "0.000000"
blg = "0.000000"
blb = "0.000000"
wlr = "1.000000"
wlg = "1.000000"
wlb = "1.000000"
rg = "0.000000"
rb = "0.000000"
gr = "0.000000"
gb = "0.000000"
br = "0.000000"
bg = "0.000000"
LUT_Size1 = "16.000000"
LUT1_toggle = "0.000000"
LUT_Size2 = "64.000000"
LUT2_toggle = "0.000000"
SW = "1.000000"
AR = "0.070000"
PR = "0.050000"
AG = "0.070000"
PG = "0.050000"
AB = "0.070000"
PB = "0.050000"
sat = "0.100000"
lsmooth = "0.900000"
GAMMA_INPUT = "3.499997"
TAPSH = "4.000000"
GLOW_FALLOFF_H = "0.300000"
TAPSV = "4.000000"
GLOW_FALLOFF_V = "0.300000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "0.500000"
brightboost1 = "3.250000"
gsl = "2.000000"
scanline1 = "1.000000"
scanline2 = "100.000000"
beam_min = "1.000000"
beam_max = "0.800000"
beam_size = "0.000000"
h_sharp = "3.000000"
s_sharp = "1.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.000000"
shadowMask = "0.000000"
masksize = "1.000000"
vertmask = "0.000000"
slotmask = "0.000000"
slotwidth = "2.000000"
double_slot = "1.000000"
slotms = "1.000000"
mcut = "0.250000"
maskDark = "0.500000"
maskLight = "1.500000"
CGWG = "0.650000"
gamma_out = "3.500000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.000000"
scans = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3"
SamplerLUT1 = "../crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "../crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "../crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
......@@ -12,19 +12,19 @@ alias2 = internal2
shader3 = shaders/geom-deluxe/gaussy.slang
filter_linear3 = true
alias3 = blur
alias3 = blur_texture
shader4 = shaders/geom-deluxe/crt-geom-deluxe.slang
filter_linear4 = true
mipmap_input4 = true
# comment these mask textures since we're generating them in the shader
#textures = "aperture;slot;delta"
#delta = shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
#delta_filter_linear = true
#delta_repeat_mode = repeat
#slot = shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
#slot_filter_linear = true
#slot_repeat_mode = repeat
#aperture = shaders/geom-deluxe/masks/aperture_2_4_rgb.png
#aperture_filter_linear = true
#aperture_repeat_mode = repeat
textures = "aperture;slot;delta"
delta = shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
delta_filter_linear = true
delta_repeat_mode = repeat
slot = shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
slot_filter_linear = true
slot_repeat_mode = repeat
aperture = shaders/geom-deluxe/masks/aperture_2_4_rgb.png
aperture_filter_linear = true
aperture_repeat_mode = repeat
......@@ -19,8 +19,8 @@ shader2 = shaders/glow/gauss_horiz.slang
filter_linear2 = false
scale_type_x2 = viewport
scale_type_y2 = source
scale_x = 1.0
scale_y = 1.0
scale_x2 = 1.0
scale_y2 = 1.0
srgb_framebuffer2 = true
shader3 = shaders/glow/gauss_vert.slang
......
......@@ -8,8 +8,8 @@ shader1 = shaders/glow/lanczos_horiz.slang
filter_linear1 = false
scale_type_x1 = viewport
scale_type_y1 = source
scale_x = 1.0
scale_y = 1.0
scale_x1 = 1.0
scale_y1 = 1.0
srgb_framebuffer1 = true
shader2 = shaders/glow/gauss_vert.slang
......
......@@ -15,5 +15,5 @@ float_framebuffer1 = true
shader2 = shaders/gtu-v050/pass3.slang
scale_type2 = viewport
scale_2 = 1.0
filter_linear2 = false
\ No newline at end of file
scale2 = 1.0
filter_linear2 = false
......@@ -15,8 +15,9 @@
#include "../../../include/subpixel_masks.h"
#define u_tex_size0 global.SourceSize.xy
#define u_tex_size1 global.internal1Size.xy
//#define u_tex_size1 global.internal1Size.xy
#define u_quad_dims global.OutputSize.xy
#define u_tex_size1 vec2(global.OutputSize.xy * global.SourceSize.zw)
// Comment the next line to disable interpolation in linear gamma (and gain speed).
#define LINEAR_PROCESSING
......@@ -125,20 +126,36 @@ layout(location = 4) in vec2 v_one;
layout(location = 5) in vec2 ilfac;
layout(location = 6) in vec2 TextureSize;
layout(location = 0) out vec4 FragColor;
layout(set = 0, binding = 2) uniform sampler2D blur;
layout(set = 0, binding = 2) uniform sampler2D blur_texture;
layout(set = 0, binding = 3) uniform sampler2D internal1;
// comment these out, as we're using generated masks instead of LUTs
//layout(set = 0, binding = 4) uniform sampler2D aperture;
//layout(set = 0, binding = 5) uniform sampler2D slot;
//layout(set = 0, binding = 6) uniform sampler2D delta;
#define blur_texture blur
layout(set = 0, binding = 4) uniform sampler2D aperture;
layout(set = 0, binding = 5) uniform sampler2D slot;
layout(set = 0, binding = 6) uniform sampler2D delta;
layout(set = 0, binding = 7) uniform sampler2D phosphor;
vec4 TEX2D(vec2 c)
{
vec2 underscan = step(0.0,c) * step(0.0,vec2(1.0)-c);
vec4 col = texture(internal1, c) * vec4(underscan.x*underscan.y);
#ifdef LINEAR_PROCESSING
# define TEX2D(c) pow(texture(internal1, (c)), vec4(CRTgamma))
#else
# define TEX2D(c) texture(internal1, (c))
col = pow(col, vec4(CRTgamma.x));
#endif
return col;
}
vec3 texblur(vec2 c)
{
vec3 col = pow(texture(blur_texture,c).rgb, vec3(CRTgamma.x));
// taper the blur texture outside its border with a gaussian
float w = blurwidth.x / 320.0;
c = min(c, vec2(1.0)-c) * aspect.xy * vec2(1.0/w);
vec2 e2c = exp(-c*c);
// approximation of erf gives smooth step
// (convolution of gaussian with step)
c = (step(0.0,c)-vec2(0.5)) * sqrt(vec2(1.0)-e2c) * (vec2(1.0) + vec2(0.1749)*e2c) + vec2(0.5);
return col * vec3( c.x * c.y );
}
float intersect(vec2 xy , vec2 sinangle, vec2 cosangle)
{
......@@ -239,9 +256,15 @@ void main()
xy = transform(v_texCoord, v_stretch, v_sinangle, v_cosangle);
else
xy = (v_texCoord-vec2(0.5))/overscan.xy+vec2(0.5);
vec2 xy0 = xy;
float cval = corner(xy);
// extract average brightness from the mipmap texture
float avgbright = dot(textureLod(blur_texture, vec2(1.,1.), 9.0).rgb,vec3(1.0))/3.0;
float rbloom = 1.0 - rasterbloom.x * ( avgbright - 0.5 );
// expand the screen when average brightness is higher
xy = (xy - vec2(0.5)) * rbloom + vec2(0.5);
vec2 xy0 = xy;
// Of all the pixels that are mapped onto the texel we are
// currently rendering, which pixel are we currently rendering?
......@@ -305,20 +328,46 @@ void main()
vec3 mul_res = (col * weights + col2 * weights2).rgb;
// halation and corners
vec3 blur = pow(texture(blur_texture,xy0).rgb, vec3(CRTgamma.x));
vec3 blur = texblur(xy0);
mul_res = mix(mul_res, blur, halation.x) * vec3(cval);
// include factor of rbloom:
// (probably imperceptible) brightness reduction when raster grows
// Convert the image gamma for display on our output device.
mul_res = pow(mul_res, vec3(1.0 / monitorgamma.x));
mul_res = mix(mul_res, blur, halation.x) * vec3(cval*rbloom);
// Shadow mask
// original code; just makes a giant phosphor here
// xy = v_texCoord.xy * u_quad_dims.xy / u_tex_size1.xy;
xy = fract(v_texCoord.xy * u_quad_dims.xy / u_tex_size1.xy);
// gl_FragCoord; tied to physical pixel size
xy = v_texCoord.xy * global.OutputSize.xy;
//xy = fract(v_texCoord*global.internal1Size.xy);
vec4 mask = vec4(1.0);
// if (mask_picker == 1) mask = texture(aperture, xy);
// else if (mask_picker == 2) mask = texture(slot, xy);
// else if (mask_picker == 3) mask = texture(delta, xy);
// use subpixel mask code instead of LUTs
float alpha;
mask = vec4(mask_weights_alpha(v_texCoord.xy * global.OutputSize.xy, 1., mask_picker, alpha), 1.0);
mask.a = alpha;
// count of total bright pixels is encoded in the mask's alpha channel
float nbright = 255.0 - 255.0*mask.a;
// fraction of bright pixels in the mask
float fbright = nbright / ( u_tex_size1.x * u_tex_size1.y );
// average darkening factor of the mask
float aperture_average = mix(1.0-aperture_strength.x*(1.0-aperture_brightboost.x), 1.0, fbright);
// colour of dark mask pixels
vec3 clow = vec3(1.0-aperture_strength.x) * mul_res + vec3(aperture_strength.x*(aperture_brightboost.x)) * mul_res * mul_res;
float ifbright = 1.0 / fbright;
// colour of bright mask pixels
vec3 chi = vec3(ifbright*aperture_average) * mul_res - vec3(ifbright - 1.0) * clow;
vec3 cout = mix(clow,chi,mask.rgb); // mask texture selects dark vs bright
vec3 mask = mask_weights(xy, aperture_strength.x, mask_picker);
// Convert the image gamma for display on our output device.
cout = pow(cout, vec3(1.0 / monitorgamma.x));
FragColor = vec4(mul_res*mask, col.a);
FragColor = vec4(cout, col.a);
}
layout(push_constant) uniform Push
{
float phosphor_power, phosphor_amplitude, CRTgamma, width, aspect_x, aspect_y, d, R, angle_x, angle_y,
aperture_strength, halation, curvature, cornersize, cornersmooth, overscan_x, overscan_y,
monitorgamma, mask_type, SHARPER, scanline_weight, geom_lum, interlace_detect;
float phosphor_power;
float phosphor_amplitude;
float CRTgamma;
float width;
float aspect_x;
float aspect_y;
float d;
float R;
float angle_x;
float angle_y;
float aperture_strength;
float aperture_brightboost;
float halation;
float curvature;
float cornersize;
float cornersmooth;
float overscan_x;
float overscan_y;
float monitorgamma;
float mask_type;
float SHARPER;
float scanline_weight;
float geom_lum;
float interlace_detect;
float rasterbloom_smooth;
float rasterbloom;
} params;
layout(std140, set = 0, binding = 0) uniform UBO
......@@ -11,16 +34,19 @@ layout(std140, set = 0, binding = 0) uniform UBO
vec4 OriginalSize;
vec4 OutputSize;
uint FrameCount;
vec4 FinalViewportSize;
vec4 internal1Size;
vec4 FinalViewportSize;
vec4 internal1Size;
mat4 MVP;
} global;
#pragma parameter mask_type "Mask (aperture, delta, slot)" 1.0 1.0 19.0 1.0
#pragma parameter mask_type "Mask Pattern" 1.0 1.0 20.0 1.0
#pragma parameter aperture_strength "Shadow mask strength" 0.4 0.0 1.0 0.05
#pragma parameter aperture_brightboost "Shadow mask brightness boost" 0.4 0.0 1.0 0.05
#pragma parameter phosphor_power "Phosphor decay power" 1.2 0.5 3.0 0.05
#pragma parameter phosphor_amplitude "Phosphor persistence amplitude" 0.04 0.0 0.2 0.01
#pragma parameter CRTgamma "Gamma of simulated CRT" 2.4 0.7 4.0 0.05
#pragma parameter CRTgamma "Gamma of simulated CRT" 2.4 0.7 4.0 0.05
//#pragma parameter rasterbloom_smooth "Raster bloom temporal smoothing" 0.5 0.0 0.99 0.01
#pragma parameter rasterbloom "Raster bloom amplitude" 0.1 0.0 1.0 0.01
#pragma parameter halation "Halation amplitude" 0.1 0.0 0.3 0.01
#pragma parameter width "Halation blur width" 2.0 0.1 4.0 0.1
#pragma parameter curvature "Enable Curvature" 1.0 0.0 1.0 1.0
......@@ -50,12 +76,16 @@ layout(std140, set = 0, binding = 0) uniform UBO
#define monitorgamma params.monitorgamma
#define halation params.halation
#define aperture_strength params.aperture_strength
#define aperture_brightboost params.aperture_brightboost
#define geom_lum params.geom_lum
#define scanline_weight params.scanline_weight
#define interlace_detect params.interlace_detect
//#define rasterbloom_smooth params.rasterbloom_smooth
#define rasterbloom (params.rasterbloom / 10.0)
vec2 aspect = vec2(params.aspect_x, params.aspect_y);
vec2 angle = vec2(params.angle_x, params.angle_y);
vec2 overscan = vec2(params.overscan_x, params.overscan_y);
int mask_picker = int(params.mask_type);
vec4 blurwidth = vec4(width);
const float gamma = 2.2;
crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png

153 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png

74 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png
crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png
crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png
crt/shaders/geom-deluxe/masks/aperture_1_2_bgr.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png

152 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png

78 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_1_4_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png

159 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png

78 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png
crt/shaders/geom-deluxe/masks/aperture_2_4_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png

156 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png

82 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png
crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png
crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png
crt/shaders/geom-deluxe/masks/aperture_2_5_bgr.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png

159 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png

82 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png
crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png
crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png
crt/shaders/geom-deluxe/masks/aperture_3_6_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png

159 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png

83 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png
crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png
crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png
crt/shaders/geom-deluxe/masks/delta_1_2x1_bgr.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png

156 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png

87 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_1_4x1_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png

164 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png

86 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x1_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png

168 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png

91 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png
crt/shaders/geom-deluxe/masks/delta_2_4x2_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png

171 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png

99 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png
crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png
crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png
crt/shaders/geom-deluxe/masks/slot_2_4x4_rgb.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png

176 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png

107 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
crt/shaders/geom-deluxe/masks/slot_2_5x4_bgr.png
  • 2-up
  • Swipe
  • Onion skin
crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png

180 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png

109 Bytes | W: | H:

crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png
crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png
crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png
crt/shaders/geom-deluxe/masks/slot_3_7x6_rgb.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -35,7 +35,7 @@ filter_linear5 = true
scale_type5 = source
scale5 = 1.0
parameters = "video_scale;SCALE;OUT_X;OUT_Y;baseline_alpha;grey_balance;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;shadow_offset_x"
parameters = "video_scale;SCALE;OUT_X;OUT_Y;baseline_alpha;grey_balance;adjacent_texel_alpha_blending;contrast;screen_light;pixel_opacity;shadow_offset_x;shadow_opacity"
video_scale = "3.0"
SCALE = "0.6667"
OUT_X = "1600.0"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment