Please show off what crt shaders can do!

mask 7 introduces some effect like greenify all grays on my computers. Also mask 5 introduces some artifacts here and there, talking about the old version of guest.r shader. So i am using 6. Actually i did some tests and 2, 4 and 6 should look great on 4k monitors.

The difference in contrast between mask 7 and the others is pretty amazing, the others look unplayably dull in comparison.

There is literally no green tint, I don’t know what you’re talking about. There’s no difference in tint in these two images.

Observe:

No mask:

Mask 7:

Just going back and forth between those on my OLED phone there is definitely a slight green tint to the second image.

Yeah I don’t understand how that’s even possible, though. Look at what it’s actually doing, it’s just darkening every other pixel.

edit: there’s a slight blue tint to both images, but that’s due to color temp correction.

2 Likes

There could be some practical theory behind. A good example is a conversion from colored image to BW, where RGB luma coefficients are to be considered, which again reflect perceptional properties. Display calibration or color alteration might add a notch to some tinting too. Crt shader masks in general aren’t considering luma coefficients, because this works nicest in general.

3 Likes

Post another image with a ramp of grays and no mask & mask 7 to compare. That image is just a pure white screen

1 Like

Also cobhc is using an OLED phone screen with some unknown (to us) subpixel pattern, which could be completely at fault for the tinting.

What kind of screens do you have? As to my understanding if it’s tinting grey like that white would have the same issue.

1 Like

I set color temp to ~6500K this time and disabled PVM colors; no green tint is present in the image itself. I think Syh might be right, this could be a subpixel thing.

Try doubling phosphor size and see if that still produces the green tint.

Vertical scanlines for crt-geom, PR pushed to repo.

5 Likes

Noice, looking forward to checking it out.

Ik that the deluxe version of geom is different, but is this something that’s making its way over to it?

1 Like

Not by me at least, I don’t use any features of deluxe.

1 Like

Fair, the only fancy thing I can think of that it does off the top of my head tbh is the afterglow

Had to give the guest shader another tweak after the latest update, the hum bar is a nice addition

shaders = "11"
shader0 = "shaders_slang/crt/shaders/crtsim/composite.slang"
filter_linear0 = "true"
wrap_mode0 = "clamp_to_border"
mipmap_input0 = "false"
alias0 = ""
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/misc/grade.slang"
filter_linear1 = "true"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "PrePass"
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/advanced/avg-lum.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "true"
alias2 = "AvgLumPass"
float_framebuffer2 = "false"
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/advanced/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/advanced/gaussian_horizontal.slang"
filter_linear4 = "true"
wrap_mode4 = "clamp_to_border"
mipmap_input4 = "false"
alias4 = ""
float_framebuffer4 = "true"
srgb_framebuffer4 = "false"
scale_type_x4 = "absolute"
scale_x4 = "800"
scale_type_y4 = "source"
scale_y4 = "1.000000"
shader5 = "shaders_slang/crt/shaders/guest/advanced/gaussian_vertical.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "GlowPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "absolute"
scale_x5 = "800"
scale_type_y5 = "absolute"
scale_y5 = "600"
shader6 = "shaders_slang/crt/shaders/guest/advanced/bloom_horizontal.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "absolute"
scale_x6 = "800"
scale_type_y6 = "absolute"
scale_y6 = "600"
shader7 = "shaders_slang/crt/shaders/guest/advanced/bloom_vertical.slang"
filter_linear7 = "true"
wrap_mode7 = "clamp_to_border"
mipmap_input7 = "false"
alias7 = "BloomPass"
float_framebuffer7 = "true"
srgb_framebuffer7 = "false"
scale_type_x7 = "source"
scale_x7 = "1.000000"
scale_type_y7 = "source"
scale_y7 = "1.000000"
shader8 = "shaders_slang/crt/shaders/guest/advanced/crt-guest-advanced.slang"
filter_linear8 = "true"
wrap_mode8 = "clamp_to_border"
mipmap_input8 = "false"
alias8 = ""
float_framebuffer8 = "false"
srgb_framebuffer8 = "false"
scale_type_x8 = "viewport"
scale_x8 = "1.000000"
scale_type_y8 = "viewport"
scale_y8 = "1.000000"
shader9 = "shaders_slang/crt/shaders/guest/advanced/deconvergence.slang"
filter_linear9 = "true"
wrap_mode9 = "clamp_to_border"
mipmap_input9 = "false"
alias9 = ""
float_framebuffer9 = "false"
srgb_framebuffer9 = "false"
scale_type_x9 = "viewport"
scale_x9 = "1.000000"
scale_type_y9 = "viewport"
scale_y9 = "1.000000"
shader10 = "shaders_slang/misc/glass.slang"
filter_linear10 = "true"
wrap_mode10 = "clamp_to_border"
mipmap_input10 = "false"
alias10 = ""
float_framebuffer10 = "false"
srgb_framebuffer10 = "false"
scale_type_x10 = "source"
scale_x10 = "1.000000"
scale_type_y10 = "source"
scale_y10 = "1.000000"
Tuning_Sharp = "0.250000"
Tuning_Persistence_R = "0.000000"
Tuning_Persistence_G = "0.000000"
Tuning_Persistence_B = "0.000000"
Tuning_Bleed = "0.000000"
Tuning_Artifacts = "0.000000"
NTSCLerp = "0.000000"
NTSCArtifactScale = "0.000000"
g_space_out = "3.000000"
g_mid = "1.000000"
wp_temperature = "8004.000000"
g_sat = "0.600000"
g_lift = "-0.040000"
LUT_Size1 = "32.000000"
LUT_Size2 = "32.000000"
lsmooth = "0.900000"
GAMMA_INPUT = "3.499999"
interm = "5.000000"
bloom = "0.900000"
halation = "0.450000"
gamma_c = "1.500000"
brightboost = "2.000000"
brightboost1 = "3.000000"
scanline1 = "15.000000"
scanline2 = "5.000000"
beam_min = "2.499999"
beam_size = "0.700000"
h_sharp = "3.000001"
s_sharp = "1.000000"
smart_ei = "20.000000"
ei_limit = "12.000000"
sth = "1.000000"
BLOOM = "1.000000"
csize = "0.030000"
barspeed = "200.000000"
barintensity = "0.010000"
warpX = "0.030000"
warpY = "0.040000"
c_shape = "0.600000"
shadowMask = "3.000000"
maskstr = "1.000000"
maskDark = "0.000000"
maskLight = "1.000000"
mcut = "0.250000"
mask_gamma = "3.499999"
mclip = "0.900000"
gamma_out = "3.499999"
dctypex = "0.500000"
dctypey = "0.500000"
deconrr = "0.500000"
deconrg = "-0.500000"
deconrb = "-0.500000"
deconrry = "0.500000"
deconrgy = "-0.500000"
deconrby = "0.500000"
deconsmooth = "0.500000"
g_reflgrain = "0.700000"
g_reflstr = "0.100000"
g_fresnel = "0.500000"
gz = "1.100000"
gzr = "1.000000"
gzg = "1.000000"
goyr = "0.000000"
goyg = "0.000000"
TO = "0.000000"
ASAT = "1.000000"
PER = "2.000000"
temperature = "8004.000000"
textures = "MaskTexture;NTSCArtifactSampler;shadowMaskSampler;SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
MaskTexture = "shaders_slang/crt/shaders/mame_hlsl/resources/aperture-grille.png"
MaskTexture_wrap_mode = "clamp_to_border"
MaskTexture_mipmap = "false"
NTSCArtifactSampler = "shaders_slang/crt/shaders/crtsim/artifacts.png"
NTSCArtifactSampler_linear = "true"
NTSCArtifactSampler_wrap_mode = "clamp_to_border"
NTSCArtifactSampler_mipmap = "false"
shadowMaskSampler = "shaders_slang/crt/shaders/crtsim/mask.png"
shadowMaskSampler_linear = "true"
shadowMaskSampler_wrap_mode = "clamp_to_border"
shadowMaskSampler_mipmap = "false"
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"
SamplerLUT4 = "shaders_slang/crt/shaders/guest/lut/custom_lut.png"
SamplerLUT4_linear = "true"
SamplerLUT4_wrap_mode = "clamp_to_border"
SamplerLUT4_mipmap = "false"
7 Likes

Yooo, when Sable comes out someone better post some crt shader shots of that bish!

Now I kinda want to buy borderlands just use guest on it -_-

3 Likes

Improper aspect ratio, immediate disqualification. :no_good_man:

I like some things about these images though, mind posting settings? That’s kinda how we do things around here

5 Likes

Not my fault CRT’s are liars. (Joking about aspect ratios)

1 Like

Despite I have a good crt monitor, I am gonna test this shader out. It just looks awesome!

2 Likes

That shader was made from months of learning and combining different techniques from different users here and there and I’m still learning. Next time I tweak it maybe I’ll throw in some subtle afterglow. Also for all 8/16 bit systems I use the Blargg composite filter, for some reason systems from that era don’t look right to me using that shader without it. In any case I hope you enjoy it

1 Like

i dont like respecting aspect ratio

the shaders used were:

scale fx hybrid 4xsoft crt mattias customized

1 Like