New CRT shader from Guest + CRT Guest Advanced updates

Only for ‘Dr. Venom’, newer shader uses something similar already.

2 Likes

I was ninja’d it was like you knew.

2 Likes

Where should this go? I tried pasting this right after the #defines but the shader fails to load.

1 Like

@Nesguy Where the shader already has vec3 sw2, copy and paste that code over it.

@Syh

That did it, thanks!

@guest.r

Colors look a lot better now with the updated code!

One major difference I’ve noticed between guest-dr-venom and geom is that geom preserves dark details and black edges better. However, it can also have some awkward looking edges where a very bright pixel is next to a black pixel. The blur in guest-dr-venom causes the bright pixels to bleed into the dark pixels, which makes black edges less sharp but also looks more natural in most situations. IDK if anything can be done about this; seems like an unavoidable trade-off.

2 Likes

Yeah, that’s types of horizontal filtering. Crt-geom uses a lanczos filter, which does sharper edges when contrast exists between pixels. crt-guest-dr-venom uses a gaussian filter, which is wider and smoother in general, but my adaptation can work similar to ‘lanczos/cubic’ with help of substractive sharpness. Can you check the version in this thread?

Should work out nice, if it works for you. :slight_smile:

1 Like

Gaussian usually does a better approximation of natural, analog-y effects (fog, blur, etc.), IMO, and lanczos is bad about ringing, which gets obscured pretty well by geom’s scanlines and mask, but it’s still there if you look closely.

2 Likes

I also think a wider filter (like gaussian 5 or 6 pixles width) is nicer for filtering 2D elements with increased internal resolution. A fine option to have i guess.

4 Likes

That’s a good summary. I agree that gaussian looks more natural in most situations. The ringing effects from lanczos can be pretty distracting. Does crt-hyllian also use lanczos?

What other types of filtering can be used in crt shaders, and what are the pros and cons of each? Is gaussian pretty much the best in terms of looks and performance? I think I read somewhere that the natural blur on a CRT is essentially gaussian.

Basically, this will make black edges and dark details more distinct, at the expense of adding ringing artifacts? Could be a nice option for some games. I’ll check it out!

1 Like

Ringing isn’t that notable because of the anti-ringing which is implemented. It’s a good implementation to 4 colors clamping, filter native 5 would allow too much ringing already. In fact, Hyllian started with anti-ringing and his shader is very nice about it (cheers Trogglemonkey too). His default filtering method is polynomial Catmull-Rom Spline filter, but you can edit the shader for some alternatives.

1 Like

Guess it’s a good release version. I tweaked the shader for good brightness, contrast and performance. It would be very nice, if the SLANG repo version could be updated. Many thanks. :smile:

https://mega.nz/#!t1xAzS4T!NkjlMLf3K--gCSzYy3T0Bl0PHSK-kWIotWctmpgTw3A

4 Likes

I really like your crt shader @guest.r It runs great on my surface pro 6. The newest incarnation looks even better but runs slower. I got 120 fps with the old one and a little less than 90 fps in this one. (Using vulcan as my video drivers.) Not a huge deal but I’d like it the faster one could hang around as well.

You can always access older versions of shaders through the git history:

I was never too happy with the way glow is implemented in crt-guest-dr-venom, although it’s a decent placeholder. I tinkered with the effect recently and made a decent upgrade of the effect. It’s a bit slower now, but not too much.

I would be also glad for some feedback regarding the new glow implementation, maybe i missed a thing or two.

You can download the shaders here:

https://mega.nz/file/o5gljC7A#8Lnv4pIHVrvarYxPKCOJemibIUbZ5sk4r_UtqnuVdlw

Some new files are added, as well as a newer main shader version. In case this would be updated, other presets should work as before.

6 Likes

Can you comment on some of the changes you made to the new version (2?) I’m playing around with these now.

1 Like

It’s not really a “2.0 version” :grin:, i had to come up with a name for a version which supports the new glow implementation. It might not be compatible with the NTSC presets, so both versions are required in general.

The changes are in general:

  • smaller step for the glow effect
  • much better low radius glow (default is really bad)
  • easier to setup and change settings
  • also better larger radius glow
  • bit slower, but not that much.

I took into consideration that new parameters (range, defaults) are very similar to the old system. Only the effect should do nicer in most cases.

5 Likes

Ah, OK that explains why v1 looked samey and v2 the glow looks nicer. Good work!

5 Likes

I put some more work into the crt-guest-dr-venom and improved and rearranged many things. Most notable are trinitron crt masks, slotmask, deconvergence, filtering, parameters etc. There is also a new NTSC version, should work quite nice.

Install instructions:

After unpacking the folder, it should reside in the shaders\shaders_slang folder. If it’s location is not exact the NTSC preset won’t work.

If someone finds a bug, regression or anything annoying, please let me know. :smiley:

Download link:

https://mega.nz/file/15RG3DDL#d9pirpgV50Rc6Y4mI-lIdwRyv4Ge13mUoPVuceR0I2U

Happy shading!

Edit: quick fix for trinitron masks.

Edit2: i actually remembered a request about an annoyance regarding increased brightness when a game was switching between regular and interlaced modes. Mitigated now.

12 Likes

Sounds like you done changed the game once again, can’t wait to get home and play around with this. The guest shader is arguably the best crt shader on RetroArch as of now. I always felt like guest and the grade shader should officially become one since they play so well off of each other.

3 Likes

This is looking great thanks @guest.r ! The Glow looks much more natural :slight_smile: I also really enjoy the deconvergence. The code is looking nicely simplified too :slight_smile: Awesome update all around :slight_smile:

One of the things I notice about the deconvergence and I’m not sure if it can be fixed is that the overall brightness of the image is reduced as the deconvergence moves from 0 towards 1 or 0 towards -1

I had noticed this in the past as well, Thanks for fixing this!!!

2 Likes