Looking for a good CRT shader to stream with

The issue obviously is that there’s no guarantee how the video will be scaled on the viewer’s end. Seems like scanlines are the main culprit for that being an issue, but I don’t know any CRT shaders that look especially good without some sort of scanline effect. That said, maybe there is one, or maybe there’s a method of approximating scanlines that doesn’t cause the same visual issues when messing with scaling?

Just wondering if anyone with some more experience is aware of something that could work, thanks!

2 Likes

My shader works well with fractional scales if output resolution is ~>720p. You could give it a try. Just online-update shaders in Retroarch and there should be gizmo-crt under /crt and some custom presets under /presets/gizmo-crt.

You can take a look at at these at different resolutions and see how they look.

It’s really important to get your streaming settings right for stuff like this to look properly. You might want to try bilinear filtering for downscaling. The correct colour format as well as a high enough bitrate are equally important.

Incorrect choices here might lead to darker than normal videos.

In my Shader Preset Pack there are a variety of Shader Presets to choose from. Some more refined and defined than others so some might be easier to use for streaming than others but you can stream using any preset.

These might work well.

2 Likes

scanlines and masks are gong to look crummy with any post-scaling. You might check out GTU, which can be set to do CRT-like blurring without scanlines or mask. Other than that, curvature and/or an overlay will probably go a long way.

2 Likes

Have you looked some of the videos in the 2 playlists I posted above? I don’t think they look so bad at lower resolutions even though they’re mostly 4K native. They still look better than raw pixels and the scanlines do have an effect which wouldn’t be present if the OP went with a GTU only solution.

Then there are some specific presets in my pack that should look pretty decent even if scaled, especially the CyberLab_Upscaled_No_Border and maybe my RGB Sharp and RGB Smooth presets.

So it really depends. Some settings will look better than others when scaled.

I’ve done some live streaming at 1080p using Intel Quick Sync and it looked pretty decent using Bilinear filtering when up/downscaling. Not native perfect but the scanlines and what was left of the Mask still made a positive impression.

The biggest challenge I think is the bitrate and the Colour format options. If you mess up there, it’s Game Over so you really should avoid streaming over WiFi but I’ve had a relatively positive experience setting up a Retro Streaming System for someone.

1 Like

You’re right, those do look pretty decent downscaled to 1080p. I’m still not loving it at lower res (I usually watch streams in windows rather than fullscreen), but if you can expect viewers to watch in fullscreen, I’d say those are also a good option :slight_smile:

2 Likes

Thanks for the in-depth response! In the meantime I ended up going with mega bezel and turning off scanlines & shadow mask (and turning on GTU w/ composite), which looked… okay. I did test out on my end a lot of different shaders and scaled the video all over the place and it really was hard to find any with scanlines and such that managed to look okay when shrunk to a certain point (or even at in-between sizes, since there’s no way of knowing how a viewer is going to scale their video, really).

Now that I’ve seen this though I’ll definitely give these a try to see if they work for me. Appreciate it!

2 Likes

No problem. Another thing you could try is using a B&W mask and/or Lottes or other Shadow (Dot) Masks. They’re generally subpixel agnostic so they might be more flexible when resolution and screen size changes. Also use smaller mask sizes, which equates to higher TVLs if you want things to be even more scalable.

Lastly, B&W aperture grille masks might be more flexible and compatible than slot masks.

You can also try to optimize for the lowest possible resolution that you can then if a user scales things up they should still look okay. Remember Bilinear filtering only in your OBS settings. Bicubic, Lanczos or any extra sharpening are just going to lower tolerances and bilinear filtering can do a nice job of evening out uneven scanlines plus it helps make compression a bit easier as well.

One more tip is you can use less than maximum mask strength as well as lighter scanlines.

These are just some general ideas based on my experience and knowledge.

1 Like