Please show off what crt shaders can do!

I’m not familiar with SLANG in the slightest or I’d off to help.

My biggest advice is to compare crt-guest-dr-venom with the bezel reflection version, that extra code should be about everything you need, lol. (Prepare to troubleshoot though, I have to do it all the time… Sorry @hunterk, :joy:.)

@HyperspaceMadness if you get some free time could you make a little tutorial-ish post showing how to make the bezel reflection work with other CRT shaders?

1 Like

What composite shader passes are you using?

Looks good, happy you got it working!

Hi, @Syh, yes a little tutorial would be helpful, I’ll do this soon.

What you need to do is:

  • Include hsm-mega-screen-scale.h somewhere near the top of the file like this:

    #include “hsm-mega-screen-scale.h”

  • Adjust the vertex stage main() function of the shader to multiply the texture coordinate by the scaling factor returned by the GetScreenScale() function from the included file

Usually in the vertex main function you will see something like:

vTexCoord = Something;

After this you should be able to add this line:

vTexCoord = GetInverseScaledCoord(vTexCoord.xy, GetScreenScale());

You will also need to use the curvature values from the included file, that’s a bit confusing to explain, but I’ll do a better tutorial which is extra clear

1 Like

Thanks for the response.

Another suggestion is to maybe start a new thread for the tutorial, and you could also use the thread for feedback and errors/troubleshooting.

I thought this was funny as I was messing with shaders.

Should be viewed in 1080p at full screen.

No shaders just integer scaling, 1x internal res no dithering on: -https://pasteboard.co/ILLbOMM.png

GTU plus crt-guest-dr-venom, same settings: -https://pasteboard.co/ILLcKBz.png

Huge difference in my opinion.

2 Likes

One last question, is there a way to blend dithering in the shader? Composite is broken in GenesisPlusGX core options and i was using the gtu-050 shader that has a “signal resolution” option or something like that where you can use it to blend dithering.

1 Like

Same passes from dr.venom-composite preset

1 Like

Here’s the reflection shader without the screen bezel, combined with an overlay:

It gives a nice depth effect that looks realistic. Makes the monitor look like it’s made of glass and there is another screen in the middle.

The default bezel looks good but also a bit distracting with it’s shiny corners. That’s why i suggested an opacity option for it.

2 Likes

I’ve been loving the crt royale xm29plus shader, you can pretty much slap it on anything and it looks nice. Only thing I don’t like and ended up dealing with is the moire effect that comes with using the curvature modes.

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

I’ve also been trying to find a good shader for Sega Saturn for use on my Shield TV but it seems Android is limited in what glsl shaders will actually work but I managed to get the crt guest venom glsl shader to work so here’s my little experiment.

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

Imgur

If anyone likes them and want the settings I’ll post them up.

8 Likes

In my experience to cut down on the moire you need to decrease the strength of your scanlines some, also decreasing the mask some will let you strengthen the scanlines up some.

Nice screens btw!

Thanks, glad you like them. Do you know which parameter I have to tweak in the royal shader to bring the scanline strength down? That shader is so complex

1 Like

Hmmm let me look as I don’t really use Royale.

Jesus… Mannn I’m not really sure, @ProfessorBraun you have any suggestions to decrease scanline strength in crt-royale.

I skimmed around the site and came across applying the “ewa_curvature” shader pass which I’ve tried and while it does help reduce the moire it’s not 100 percent effective which is why I ended up just dealing with it. Same issue with the shader chain I used for Saturn. After a while I hardly notice it though unless certain scenes appear.

These settings determine the shape and size of the lit scanlines of the simulated CRT.

Min and max sigma settings affect the size of each scan line relative to the brightness of the image. A large range of beam sigmas causes the scanlines to vary in width depending on brightness, while small ranges result in a less variable width of scanlines. Higher sigmas increase the size of the scan lines, resulting in smaller gaps and more vertical blurring.

Min and max shape settings affect the Gaussian profile of the scanlines. Higher values for these make the scanline plateaus flatter and have steeper drop-offs. These effects are really only noticeable at higher screen resolutions.

beam_horiz_filter specifies how the beam is filtered horizontally. The options are 0.0 (Quilez, sharp and fast), 1.0 (Gaussian, configurable sharpness), and 2.0 (Lanczos2, sharp and higher quality). beam_horiz_sigma is used to set the level of blur when using Gaussian horizontal filtering.

1 Like

Right away I went and toggled the “Beam - Max Sigma” and the moire dissapeared before my very eyes lol. I’m not sure what trade off this results in but it seems everything still looks the same except no more moire now. The default number was on 0.25, brought down to 0.15 and no more moire

1 Like

Yay! Happy you got it working.

Thank you that one trick did it. Now I’m wondering if I should recapture and reupload all new moire-less images now lol

1 Like

I personally would, that would drive me crazy if I posted screens then immediately fixed something that had been bugging me, lol.

The struggle for the perfect shader never ends lol. I’ll come back to it another time I guess. Least you get an idea of what I was going for.

2 Likes

I’ve been working on a shader chain for the better part of a year XD.

1 Like