Please show off what crt shaders can do!

This looks awesome, i had to play with the settings a bit to get it match my screen but it was worth it. Playing a colorful game like Kirby really makes this shader shine. Stunning.

I can’t show it off though since whenever i try to take a screenshot with this shader RA freezes.

Another issue I am having is with 240p content such as PSX. This shader doesn’t seem to work as well no matter what settings I try. Thought it might be due to my resolution (1600p).

EDIT: Remembered that print screen is a thing. Also i figured a setting that works for everything. I don’t know if it is my imagination but the scanlines look off for PSX.

EDIT 2: Added another image that better highlights the 240p problem. Inntergar scaling on/off doesn’t seem to help much. 256p on the other hand looks great.

3 Likes

Thanks for sharing it, however my machine is not able to work with slang shaders. So tough luck for me.

I added the vignetting to intentionally mask the corners, as I didn’t think the corner reflections would look natural. If you just get rid of those vignetting lines in the shader, it should open up the corners, as well.

The overlay on top looks really good, though. I could probably work it into the shader instead of loading it as a separate overlay, similar to the console-border shaders.

5 Likes

Hunter, if you end up messing with this shader and can find some time to port it to glsl, would be extremely grateful. If not, no worries :slight_smile:

1 Like

@HyperspaceMadness I haven’t ran the shader because slang, but I was checking out the code I noticed the moire mitigation. Did @hunterk add that or you? I can’t really remember what was in hunterk’s release. Also why is commented out? Just curious…

Also would love to see GLSL for this… But it’s ok lol.

@syh The moire mitigation was something I was trying but had commented out, it should be removed.

I should mention again that this is still wip and shouldn’t go into the repo or anything yet, also the fact that it’s bound to a (possibly out of date) copy of the guest-venom shader is an issue why it shouldn’t be distributed widely.

Another change I made to this was swapping in the better geometry deformation that someone posted and hunterk put into Ewa Curvature.

@hunterk, first, thanks a ton for all the work you’ve put into these shaders and communicating to the community about this stuff!!!

I do like the corner vignetting, because I agree with you that full brightness in the corners can easily look really weird. What I meant by corner highlights was that the static white corner highlights I have in the overlay are because they made it feel a bit more like there was a bezel there. Basically they are immitating some sort of lighting from the room. It would be cool to generate these in the shader because then you avoid having to have the overlay match exactly. I was unsure of how to do this because the way I was accessing the coordinates, they act really strange right at the corners

I like the idea of having the overlay in the shader and drawing the reflection on top additivey as this would remove the need for special transparency in the overlay. I attempted this but didn’t figure out the right way to put the texture in. As it is currently being a standard overlay allows it to be set a specific overlay per system, but maybe using separate slangp files for this would work just as well, and would be a good tradeoff for the benefit of having it in the shader.

If I wanted another glow pass to be used only for the reflection how would be best to do that? It seems that repeating the same Glow passes wouldn’t work since they would use the same parameter names.

1 Like

@Arviel

I’m assuming the issue you are having with the psx is that the bezel at the bottom is very small? If this is the case there are two ways to fix it.

One is to adjust the min Bezel Min Height to a larger amount, this will force the integer scaling to use a smaller multiple to allow for at least that min height of bezel, this is the most “correct” method

The second is to change Integer Scale Offset to a lower value, probably -1 would work. This adds to the integer scale multiple.

After this you can also change the Bezel Width and Bezel Height parameters to get a larger reflection area.

1 Like

Are you wanting to get a blurrier blur? or just one that you can adjust without making the main effect too hazy? If the former, large-kernel full-screen blurs are tough to do without murdering performance, so doing some passes of kawase blur at the beginning could be good, though you’ll probably need to adjust the first guest pass to sample the original frame instead of the previous one. If the latter, you could use the very similar blur_h and blur_v passes that are in the blurs directory, or you could expand on the quick-and-dirty offset sampling I used and do a proper gaussian-ish blur inside the last pass.

1 Like

@Arviel How do you have your PSX emulator set up?

Because it kinda looks your increasing the core resolution, which gets me scanlines looking like that while using crt-guest. (I’m on mobile so I may be seeing things wrong).

Guys that reflection shader is the best thing i ever seen as far as shaders go, after the Game Boy shader.

I would also like a GL version. Also, what changes i have to do to make it compatible with my 1080p screen?

1 Like

Wow, those reflections are truely impressive.

1 Like

Figured I might as well share some shader shots of games I played with RA some time ago. More or less tweaked (in parameters, not code).

Guest Venom

Astrocity 15 khz (from the Analog Shader Pack)

CRT-Geom

CRT-Lottes-fast

XM29Plus (Slang preset)

TVout-Tweaks + CRT Hyllian

3 Likes

I modified the bezel image to fit 1080p.

Looks like this:

Once we get everything to a point where everyone’s happy with it, we can add it to the repo and make a GLSL version, etc. but no point in doing so while it’s still in flux.

9 Likes

@hunterk the amount of blur I am getting is pretty good at this point, although I might want more. The bigger problem is that since I’m using the guest blur, I’m making the Glow much blurrier and making the main crt shading hazy, maybe doing a gaussian in the end of the shader as you suggest could work well. Thanks for the suggestions :slight_smile:

If you are interested in taking a look at putting the shader in as a texture I’m all for it, ideally if there was some way to create a user adjustable registration between the screen and texture so it could automatically scale up with whatever integer scaling is used, E.G. The user sets the screen/tube height visible in the texture as a percentage of the total texture height.

@GemaH the shader will work fine with a 1080p screen, the thing that may not work great is that the overlay won’t match the corners of the screen

dunno the scanlines are also not correct and uneven

The problem is not the overlay or the frame around the shader, but the scanlines themselves. Sadly the screenshot doesn’t show it properly (not sure why). The best way i can describe it is that the scalines are bulky and uneven, with extreme levels moire as well. Setting interger scaling on and off in the shader or RA itself doesn’t seem to help. This does not happen with the vanilla venom shader.

This is all very strange since having interger scaling on should give you even scanlines. 256p content is flawless though.

Vulkan has an issue taking screenshots when the framebuffer (and overlay?) is out of bounds. I think I reported it a time ago. Might be related.

That indeed was the issue, thank you! Here are some screenshots that show what i mean.

Here’s an updated version with and overlay and preset for 1920x1080

The moire should also be better because the preset uses better settings for the crt mask (the mask was set with values that only look good at 4k), it looks a touch dark but that can be fixed with the scanline/crt mask settings or bright boost parameter

It looks like this now

11 Likes

There was a problem with the pathing for the 1080p shader on my end. Had to remove the following line from the pathing for it to work.

/shaders_slang

1 Like