New CRT shader from Guest + CRT Guest Advanced updates

Bloom distribution affects how bloom is added from darker colors to brighter colors. Increasing the value means more bloom over middle and darker toned spectrum.

It also affects how mask strength is mitigated, as stronger bloom values are intended to use with increased mask strength.

3 Likes

I’m trying to achieve a low TVL slotmask look on my 4K TV (LG C1 with WBGR subpixel structure) using this shader, but I’m having trouble understanding what are the best masks and slotmask sizes for the job.

Something like this screenshot from @guest.r, but with the correct brightness:

Slotmask4k

Can anyone help?

1 Like

This is not a low TVL slotmask. That’s more akin to a high resolution slot mask CRT monitor.

A low TVL slotmask will have maybe 1-2 visible triads per scanline, as opposed to the 2-3 you see here.

Masks will not appear the same IRL as they do in a screenshot due to the way the display’s subpixels interact with the mask. It’s a complex subject but the short answer is that for WRGB displays your best option is to use a black and white mask.

I was trying to do low TVL slotmask as well. My goal is something like this.

Thought I came close with this gdv preset at 2K but I couldn’t make it as sharp as I like:

2K slotmask

1 Like

Oh, my bad, that picture is a bad example then. Are @sonkun and @Fab’s presets, for example from here considered low TVL, or more like medium? Because that’s the kind of look I’m looking for, but for 4K resolution.

Does the pixel layout matter, considering I don’t want a mask that’s too small? I managed to get Royale to look somewhat good at 4K, but the mask looks a bit misaligned with the output pixels (see pic bellow) So I wanted to see if it’s possible to do something better with Guest Advanced at 4K.

Try maybe Mask 8 at Mask Size 2. If my calculations are correct, at 4K that should result in roughly 360 TVL, and since it’s a BW mask, it should avoid OLED subpixel issues. Getting lower TVL than that would probably necessitate a new, even coarser mask, maybe three white pixels to one black one (Mask 8 is two-to-one).

2 Likes

I like that look, could you please share?

Why is “Gamma Input” set to 2.0 by default on Guest Advanced? Shouldn’t it be something around 2.4 or 2.5?

You probably mean the NTSC version. Scanline gamma and mask gamma are 2.4. Horizontal filtering gamma is a bit lower to honor the original ntsc horizontal interpolation. With this shader you could set it even lower tbh.

1 Like

Yeah, I meant the NTSC version. Thank you for the explanation!

I don’t fully understand how ntsc horizontal interpolation works, but I trust the default value is accurate.

1 Like

I tried that but I could not get a satisfactory look, compared to Royale.

Is this what the mask is supposed to look like? (Ignore the lack of brightness compensation). image

At a distance it looks much better than here, obviously.

1 Like

Yep, that’s your best option for a WRGB display. The Royale masks will not display properly on a WRGB display.

And yes, it is somewhat disappointing (IMO). WRGB displays are not recommended for CRT shaders.

1 Like

You could increase the Slot Mask height to 2.0 if not already.

1 Like

@Nesguy Indeed after applying bloom, the mask I posted above looks pretty good from a distance.

But I must disagree with you with regards to WRGB. I’ve tried mask 9, which has the triad colors on my LG C1 (which is WBGR if I’m not mistaken) using this same exact setup and it looks darn good, if not better than the black & white mask 8.

I believe this becomes a non-issue because the mask’s size is doubled, invalidating the impact of the subpixel structure, as each color of the triad is represented by 2 columns of pixels instead of just 1. Am I wrong in my assumption?

@guest.r Oh yes, Slot Mask height is already set to 2 in that screenshot.

EDIT: My bad. Mask 9 is magenta green, not RGB.

It just depends on what you’re willing to settle for, but yes doubling the mask size is a decent compromise solution but it might still look weird at subpixel distances. If all you’re after is something that looks nice at normal distances, that’s easily achieved.

Nothing else currently available is as accurate as the Megatron shader on an HDR RGB display, amazing stuff happening in that thread.

Are you sure it’s not yellow cyan? Mask 0 is magenta green.

1 Like

@Nesguy

Here are 2 pictures of white displayed on mask 10 on my LG C1. At this size, is the pixel structure still a problem?

With bloom disabled on the shader:

Bloom enabled:

Without bloom it’s obviously a lot better, but there are a couple “issues” still present.

The reds and blues have obvious vertical black lines between them, while the “greens” are tightly grouped. And there is no color uniformity, it’s actually going red, orange, yellow, cyan, green, cyan, blue. So yeah, I’d say subpixel structure is still a problem, as expected.

The spacing of the black crossbars is also “wrong.” If you want the triads to have the right shape then the mask height would need to be doubled.

I would say, if you’re happy with the way it looks, go for it. Don’t go down this rabbit hole of chasing perfection, you’ll just wind up constantly frustrated. Once you see certain things you can never unsee them and then they become the only things you can see.

2 Likes

Thank you for your input. I appreciate it. :slight_smile:

I tried to double the height but it looked horrible for some reason.

Yeah, I agree, one cannot chase perfection in a simulation. Sooner or later I’ll jump to the HDR shader anyway, as soon as Linux gets support, so for now I guess Royale will do.

As a bonus, here’s what Royale looks like at about 50% grey in my preset:

I looks much more coarse than the GA I posted above, but for some reason this looks better for me at 4K at a distance.

Pretty sure this is just a two color mask on a 4K, looks great to me as long as you don’t zoom in.

You might try the black and white aperture grille with double phosphor width. @nfp0

1 Like

Mask 9 is magenta-green-black. It achieves 360 TVL without running into the subpixel issues of naive RGB tiling.

On a fun note, I recently got a 4K LG TV, and I was pretty excited about trying out some shaders on it. However, reality struck as I realized my dedicated Lakka PC’s Intel graphics cannot output 4K at 60 Hz, so I settled for 1080p and let the TV upscale. I was a bit frustrated at first, since this obviously will impact shader accuracy hugely, but I began messing around with crt-guest-advanced-fastest to see what would at least look passable. Mask 11 (red-yellow-cyan-blue) actually looked pretty good, but IMO the TVL is a bit low for my liking. Mask 6 looked alright and has the slightly higher TVL look I prefer, but it’s too dark. Just for fun, I then tried a custom cyan-magenta-yellow mask, and it almost worked (nice and bright, and has the target TVL), but I then noticed it looked like magenta-green up close. I realized this was likely due to the display’s BGR structure, so I reversed the mask order (yellow-magenta-cyan - though this can now be done within the shader’s parameters), and voila! Looks remarkably like RGB up close, and brighter than Mask 11 to boot. Of course, at the subpixel level it’s a bit of a mess, but I cannot tell at a distance, and interestingly enough, the TV’s upscaling may actually be helping me here. I don’t know what voodoo magic is at play, but it looks damn good considering the circumstances.

So yeah, if anyone is in a similar bind, maybe try this out. It’s pretty cool how well it worked out. I’ll see if I can take a pic and share it later.

5 Likes