There is no objective improvement in terms of contrast or scan line quality. It’s all about the feelings. I tried putting glass at the end of the shader list and I like it much better. Here’s a 4k screenshot.
I probably did a poor job of explaining that.
Emulated scanlines, as they increase in intensity will bloom into the adjacent pixels. You start with a very thin line that is only 1 pixel wide, which then blooms into the row of pixels above it and below it as the intensity increases. Then the next most adjacent rows from the center will increase, etc. Like this:
1 = darker
3 = brighter
000000
000000
1111111
000000
000000
000000
1111111
222222
1111111
000000
1111111
222222
333333
222222
1111111
Now suppose that we can bloom in just one direction, up or down from the center of the beam, like this:
00000000
00000000
111111111
00000000
00000000
00000000
00000000
111111111
111111111
00000000
00000000
111111111
22222222
111111111
00000000
00000000
111111111
22222222
22222222
111111111
111111111
22222222
33333333
22222222
111111111
Hopefully this crappy illustration makes sense. By adding a one pixel deconvergence along the vertical axis (either up or down), it should be possible to increase the beam width variation beyond what you can achieve with just the scanline settings. This is just an untested idea, though.
A few days back I saw this post by @ImnoTapLumber and decided to try GTU’s first two passes with other scanline shaders. At first I didn’t like the results I was getting, but, then I enabled the “Composite Connection” option and now I really love it!
CRT-Geom :
CRT-Geom + GTU :
CRT-Geom :
CRT-Geom + GTU :
CRT-Geom :
CRT-Geom + GTU :
(All the pics are from ReShade. Oh, and I already realize that these results won’t be everyone’s cup of tea.)
Same as my post above. But, with 3D games.
Guest-Dr-Venom :
Guest-Dr-Venom + GTU :
Guest-Dr-Venom :
Guest-Dr-Venom + GTU :
Guest-Dr-Venom :
Guest-Dr-Venom + GTU :
Guest-Dr-Venom :
Guest-Dr-Venom + GTU :
(All the pics are from ReShade.)
I was doing this for awhile myself, when I was experimenting with composite passes.
I really used to hate Composite shaders. Like it never made sense to me why anyone would want to add bad artifacts/effects to their games. You really have to see these shaders in motion to fully appreciate what they add to the look of old games, still images here just don’t do enough justice to them!
There’s one or two composite shaders that have animated composite, which just adds more to that, but I can’t remember which one’s. (Also the composite shaders are a mixed bag of features and looks imho.)
I’ve tried some other composite shaders from the NTSC folder (2 phase and 3 phase) that I didn’t like as much as GTU.
I’m just not a fan of the rainbow effect and the weird wiggly effect in most composite shaders. My favorite effects are the Blur and the Color Bleed, both of which are already in GTU’s first two passes.
Those two effects are so good that they make Gran Turismo 4’s replays look like real life racing footage on an old CRT!
Can someone here explain the three Signal Resolution settings in GTU to me? Do I have to change them (and how to calculate these new values?) for the system/console I’m trying to emulate or leave them to their default values at all times?
They’re essentially just variable blurs. The higher the res, the lower the blur strength.
So, should I just leave them as is? Or should I atleast change Signal Y (is it width or height?) to the games resolution?
It all depends on how blurry you want it. If you want no blurring at all, make it very high. Y is from YIQ and stands for the luma component.
Oh, so those settings are just for blur and nothing else? Cause when I googled what YIQ is before posting here, I learned that it was the color space used by NTSC TVs.
That’s why I asked here if should mess with them or not.
It’s the simulated resolution of the YIQ components. So, you can increase the res of the luma component while maintaining lower res for the IQ components to have, for example, blurry/muted colors with sharp light/dark.
I think it was this. Still playing around with sharpness though. 4.00 - 5.00 seems about right. Not sure about scanline spike removal, maybe it should be off.
shaders = "8"
shader0 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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 = "shaders_slang/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.500000"
g_signal_type = "0.000000"
g_gamma_type = "1.000000"
g_crtgamut = "2.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 = "8005.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.499996"
TAPSH = "1.000000"
GLOW_FALLOFF_H = "0.300000"
TAPSV = "1.000000"
GLOW_FALLOFF_V = "0.300000"
TATE = "0.000000"
IOS = "0.000000"
OS = "1.000000"
BLOOM = "0.000000"
brightboost = "1.000016"
brightboost1 = "3.000000"
gsl = "0.000000"
scanline1 = "1.000000"
scanline2 = "23.000000"
beam_min = "3.000000"
beam_max = "1.000000"
beam_size = "0.000000"
h_sharp = "4.500000"
s_sharp = "0.000000"
csize = "0.000000"
bsize = "600.000000"
warpX = "0.000000"
warpY = "0.000000"
glow = "0.000000"
shadowMask = "1.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.500000"
gamma_out = "3.500000"
spike = "1.000000"
inter = "400.000000"
interm = "1.000000"
bloom = "0.000000"
scans = "1.000000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3"
SamplerLUT1 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron1.png"
SamplerLUT1_linear = "true"
SamplerLUT1_wrap_mode = "clamp_to_border"
SamplerLUT1_mipmap = "false"
SamplerLUT2 = "shaders_slang/crt/shaders/guest/lut/sony_trinitron2.png"
SamplerLUT2_linear = "true"
SamplerLUT2_wrap_mode = "clamp_to_border"
SamplerLUT2_mipmap = "false"
SamplerLUT3 = "shaders_slang/crt/shaders/guest/lut/other1.png"
SamplerLUT3_linear = "true"
SamplerLUT3_wrap_mode = "clamp_to_border"
SamplerLUT3_mipmap = "false"
I’m so glad you’re messing around with masks again. As clean as those screenshots looked with just scanlines, it definitely looked wrong for me personally and these look way better.
Thanks! I like all kinds of CRTs but lately I’ve been wanting something that looks like a good arcade monitor. I think scanlines look amazing by themselves but that can get kind of boring after a while.
I’d like to see a version of mask 1 in Lottes that replaces RGB with magenta/green, I think that would look good (does anyone know if this has already been done?).
If/when it becomes possible to upload stuff again (I haven’t checked lately) I’ll see about adding this as a preset, if there’s enough interest.
I have tried out a lot of the presets you have posted here on this thread and this one might be my favorite one. It looks great!