New CRT shader from Guest + CRT Guest Advanced updates

Here is my first go at it. I like the changes to the glow.

3 Likes

I agree, had to switch from 144Hz to 120Hz, but i’m still getting strange mask caused flickering at times, all ok while running at uncapped framerates though. The only problem i have is with vulkan, screenshot crashes, freesync crashes etc., but dunno if it’s a driver issue or RA issue.

You can use whatever you like, even an overlay with the hi-res shader. It’s advantage is normal 2D filtering at 2x internal resolution and you will still get compliance with horizontal resolution improvement due a dense and wide filter. It’s inspired by the ntsc preset in the presets folder, where a stock pass is doing a vertical downsampling to 240p. Here you can use 2x downsampling for example and the interlace effect might get triggered, it’s more authentic behaviour than with an overlay.

Thanks, i’m also very fond about it, also with the standard gaussian sigma control method.

1 Like

Is this scanline smoothing afterpass something you could share, just curious what effect it has :slight_smile: If it’s even better effect I wouldn’t mind the speed loss.

3 Likes

I’ll also share the SM preset with it to show the performance hit. If i wan’t to add optional support as a menu parameter, then default viewport y-scaling has to be increased to make higher-than-viewport integer scaling possible.

guest-sm-experimental (old version):

https://mega.nz/file/g1pwwARL#2jPKXEgw0V7-6SAA5DMdQLlk4hv2CfskMGFXcQ-RjKI

3 Likes

Do you have a presets for this masks to try?

1 Like

No presets, no, but I have the modified mask function code and a rudimentary shader for testing here:

2 Likes

SHADER CHALLENGE: can anyone come up with a way to keep phosphors from blooming into each other with three color masks while maintaining adequate brightness? Am I right that the only way to achieve this is with mask strength 100% and keep mask with clipping 100%? It’s very hard to keep the phosphors defined with a three color mask. With two color masks, the horizontal phosphor bloom looks a lot more natural because you still have two distinct phosphors no matter how bright it gets.

1 Like

@guest.r

Just made a fairly significant discovery (imo) regarding masks and subpixels.

First, the starting order of the subpixels is vitally important. GRB needs a different mask than RBG, for example. You need to determine the correct order by looking at the left side of the screen where the pixels start.

Second, the amount of clipping you get with the CGWG masks is greatly impacted by the subpixel layout.

My subpixels are GRB. Using the standard magenta-green mask, I get clipping galore. If I change the mask to red-cyan, the clipping is gone! Now it behaves like any other mask!

Anyway, just thought I should report these findings.

@c9f5fdda06 This might also be of interest to you.

3 Likes

I’ve been fond of this combo also, it’s already implemented with scanline deconvergence. The problem with blue-yellow, for example, is blue’s low luma influence, so i’d prefer red-cyan over it.

1 Like

@guest.r

Ah, so you think this actually isn’t impacted by subpixel layout per se? Looks better regardless of the subpixels? That makes sense, I just assumed the clipping was related to subpixel interference somehow.

When you get a chance, would you mind please giving your succinct analysis of the problem I outlined above regarding three color masks? I know we’ve discussed it before, but I’m just not quite ready to give up yet :sweat_smile: If it’s as simple as: you need the horizontal phosphor bloom to maintain brightness, okay, I accept that :slight_smile:

In that case could a three color mask using black as a third phosphor possibly be a solution? For example: magenta, green, black. Or is the black susceptible to the phosphor bloom? Need to examine this further.

1 Like

Luma is also very important regarding the mask layout, but it isn’t considered with the shader mask calculation, because it interrupts the nice and smooth 0.0 - 1.0 parameter range etc.

2 Likes

@guest.r

I’m not sure that subpixel masks are working correctly, but this could be my display.

Someone else needs to test, wondering if you could if/when you get the time.

Magenta/green should result in

RxBxGx

if you have RGB subpixels.

Currently on my plasma I’m getting weird results. I have GRB subpixels, so with red/cyan I should RxGxBx,

Instead, I’m gettting GRBxxxGRBxxx etc.

Mask strength should be 100% for this test. Sharpness setting on the display needs to be correct as well (no edge enhancement or blurring).

1 Like

Maks are ok, not minding the displays. Mine, for example, has a bit hard time with high contrast masks involving the vertical ‘shift’ component, like the 100% slotmask, or mask1 etc. You would be surprised about the inventiveness of some engineers.

Mask 0 magnified:

1 Like

I think this probably comes down to the way plasma works, I think certain colors require two pixels and they’re temporally interpolated at a very fast rate. It looks a bit like static or film grain effect if you get close. It’s not possible to completely shut off one of the RGB components of a plasma subpixel like it is on an LCD.

So plasma wins when it comes to natural phosphor glow, viewing angles, contrast ratio and image uniformity, but it fails pretty hard when it comes to masks IMO.

BW aperture might be the only option for plasma.

Yep, Plasma up close looks like rgb static. It’s bothered me since 2009 when I brought it home lol. Thank God you can’t notice it unless you’re way up close.

1 Like

I like clamping the glow vertically and letting it expand far out horizontally. It prevents the images from losing to much in the blacks while looking kinda anamorphic lens flare-ish when it shows up. In general I like how it blends in more.

5 Likes

I like the scanline brightness changes. It makes sense to not auto-burn some tints.
I could get the same results I had before with scanlines type 2 by rising the dark pixels boost to 1.75.

New glow is looking really nice too. I thought it was rather artificial before with every shader I tried.

I wonder if you can add a sharpness filter for the NTSC preset.
What I’m trying to reach is something not looking completely blurry, more like a TV with a “sharpen” option, and also fighting the linear resizing that happens through the ntsc passes and make the black tones larger.
That’s what gamma linearization usually does but it’s not possible here with the yiq transformation.

That’s what I have at the moment with
the 2 ntsc-adaptive passes +
horizontal dilation (hack of warp/smart-morph to enlarge and blur the lighter pixels horizontally only, a “fake linearize”) +
sharpen/shaders/fast-sharpen +
crt-geom:

…ntsc-colors too in that shot in svideo mode.

3 Likes

This looks really good. Most NTSC emulation is a bit more extreme than what I remember, I think because it’s emulating all the artifacts as if the TV has no comb filter.

Mind posting your settings for this shot?

I’ve been trying to make two presets, a pro monitor setup and a consumer/composite setup, without masks, similar to what you’re doing. You gave me some good ideas!

1 Like

There are some ‘features’ with the NTCS preset x-scaling, i tried my new g-sharp resampler to scale the x-resolution down to original (scale_x# = 0.5 repeated again) and used the gdv-standard pass instead.

Not minding the NTSC artifacting, the image looks quite better imo than setting the x-scale of the 2nd NTSC pass to 0.25 directly.

2 Likes

Here is a portable version as there’s some modifications.

https://mega.nz/file/J400hLDC#s6lToKibBLiGZG5us8-A3mPA8xPizlIKOo4Y1SmyAN4

1 Like