Please show off what crt shaders can do!

@HyperspaceMadness those seem pretty good as experimental presets of Mega Bezel, don’t you think?

2 Likes

The color masks never look right IRL, they’re only good for making pretty screenshots. Bottom line is that the LCD subpixels hate the color masks. Somebody please prove me wrong with an actual close-up photo of your LCD screen, I’m about to throw all these slotmask presets in the garbage lol.

Also the slotmask triads can NEVER be the right shape due to subpixel structure and resolution limitations.

Working with the BW slotmask, width 3 results in triads that are too rectangular. Width 2 results in triads that are still too rectangular and also can’t be seen at normal viewing distance; it basically just darkens the image and you’re better off without it at that point. I’m not satisfied with any attempts to emulate slotmask at 1080p.

1 Like

Also can someone please tell me what bezel/border/overlay is being used here?

3 Likes

Current preset. Still dialing in deconvergence, I think the magenta bleed at the bottom of the beam should maybe be stronger but it’s already at max. Curvature might be out of the question with this mask, I think you’d have to reduce the mask strength a lot to avoid bad moire.

shaders = "8"
shader0 = "shaders_slang/misc/grade.slang"
filter_linear0 = "false"
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/crt/shaders/guest/fast/stock.slang"
filter_linear1 = "false"
wrap_mode1 = "clamp_to_border"
mipmap_input1 = "false"
alias1 = "StockPass"
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/fast/pre-shaders.slang"
filter_linear2 = "true"
wrap_mode2 = "clamp_to_border"
mipmap_input2 = "false"
alias2 = "PrePass"
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/fast/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/fast/bloom_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/fast/bloom_vertical.slang"
filter_linear5 = "true"
wrap_mode5 = "clamp_to_border"
mipmap_input5 = "false"
alias5 = "BloomPass"
float_framebuffer5 = "true"
srgb_framebuffer5 = "false"
scale_type_x5 = "source"
scale_x5 = "1.000000"
scale_type_y5 = "source"
scale_y5 = "2.000000"
shader6 = "shaders_slang/crt/shaders/guest/fast/crt-guest-advanced-pass1.slang"
filter_linear6 = "true"
wrap_mode6 = "clamp_to_border"
mipmap_input6 = "false"
alias6 = ""
float_framebuffer6 = "true"
srgb_framebuffer6 = "false"
scale_type_x6 = "viewport"
scale_x6 = "1.000000"
scale_type_y6 = "source"
scale_y6 = "0.500000"
shader7 = "shaders_slang/crt/shaders/guest/fast/crt-guest-advanced-pass2.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"
g_vignette = "0.000000"
wp_temperature = "8004.000000"
GAMMA_INPUT = "2.200000"
interm = "3.000000"
h_sharp = "3.000001"
s_sharp = "0.000000"
spike = "0.000000"
glow = "0.000000"
brightboost = "2.000000"
brightboost1 = "1.999999"
beam_max = "1.000000"
beam_size = "1.000000"
vertmask = "1.000000"
scans = "1.000000"
shadowMask = "7.000000"
maskstr = "0.700000"
masksize = "2.000000"
mcut = "0.300000"
mclip = "0.000000"
DER = "2.000000"
DEB = "-2.000000"
DES = "1.000000"
gamma_out = "2.500000"
textures = "SamplerLUT1;SamplerLUT2;SamplerLUT3;SamplerLUT4"
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"
3 Likes

Tried to try this out, but getting an error as you appear to have a stock.slang and a pre-shaders.slang in the \shaders\shaders_slang\crt\shaders\guest\fast folder that I don’t have? Is this the standard stock.slang that comes with Retroarch and where is the pre-shaders.slang from? I don’t have this in the standard slang shaders package from the online updater.

1 Like

You have to download the latest guest-dr-venom here, I think.

1 Like

So I think I found it it’s the frame from a project from mattias gustavsson’s (guy who did the original newpixie)

The image is in his repo as a binarized chunk in a .h file, so if you wanted the original image you might just want to contact him.

steem-crt/crt_frame.h at main · mattiasgustavsson/steem-crt · GitHub

4 Likes

or get it from the newpixie directory in the slang repo :stuck_out_tongue:

7 Likes

I’m on a 14 inch screen so maybe that helps the mask illusion for me :). Here is a camera snap of mask 2. (This is the recreation of Royale I posted awhile ago.) My aim is to let the whites have as little mask as possible with a some glow and a near loss of all scan lines. I pump up the mask and scan lines in the darks so it tricks the brain a little. I think it works but it’s all personal preference.

4 Likes

If you’re using guest for this, try cranking the scanline saturation up.

I was doing some ghetto stuff with the bloom code before the advanced update, where the mask and scanlines were visible over the bloom. (Broke up the bloom halos nicely and added to the illusion imo)

1 Like

I love the look of GTU but I want to target white pixels because they tend to turn to grey. This reduces contrast. If only there was some way to keep white pixels white. :thinking:

Yeah that’s not really working, IMO. I’m not saying I can do better, though. And yeah, a 60" screen really exposes all the warts in these things.

bad subpixel artifacts. Exactly what I’m trying to avoid.

image

In certain places you don’t have the above color artifacts

image

…but then the pixel grid itself really gets in the way. You need retina resolution for this, I think.

A big problem is the barely rectangular shape of the phosphor triad.

image

The above is 75x60 pixels or 5x4 units.

I think we could try this in guest-dr-venom

slotmask width 5 slotmask height 4

You’d need a 4K display though. I’d still forget about trying to do individual phosphors, they’re too finicky, just try to get the black space around each triad. And forget about doing the black space between the individual phosphors because the width of those black spaces is half the width of the phosphors- you really need 8K for that (slotmask width 9, lol).

1 Like

Do you want me to try anything? I’m on a 4K OLED that supposedly doesn’t engage the white subpixel when the peak brightness option is turned off. What do you need photos of?

4 Likes

What does this look like?

#reference "shaders_slang/crt/crt-guest-dr-venom2.slangp"
slotmask = "0.700000"
slotwidth = "5.000000"
double_slot = "2.000000"

also, what does the above look like with this added

#reference "shaders_slang/crt/crt-guest-dr-venom2.slangp"
shadowMask = "8.000000"
maskstr = "0.700000"
mcut = "0.300000"

I think the white subpixel is going to throw off the spacing of the subpixels in the second one.

1 Like

Looks nice on screen, do you need a photo of 100ire white or something? Sorry, I’m not sure what you need from me to check out how it looks.

Really anything with pure white, green, red and blue.

edit: yeah a white screen works.

also, are your pixels RGBW? Or BGRW or some variant?

1 Like

Is this okay? It’s RGBW, and apparently when I have the peak brightness option disabled (it’s disabled right now) it also disables the white subpixel which is used as a brightness boost.

1 Like

Can’t really tell from that pic, need to be able to see the individual pixels a lot more clearly

Might not be able to get all the color bars in one shot.

1 Like

Okay, so pure white might be better? That was the first preset by the way.

2 Likes

That and a closer clearer shot.