@GemaH Ideally I would like to have the reflection as a separate pass so it could be put on top of different shaders, as everybody has different tastes in their ideal crt shader .
The moire pattern is from the Guest-Venom shader geometry distortion it actually has nothing to do with the reflection shader. One thing you can do specifically with the Guest-Venom shader to reduce moire is to use smoother scanline (set gsl = “0”) and shadowMask options, and set the slotmask = “0” (these parameters are already In the preset, gsl is set to 1 and slotmask is set to 0.5)
In general moire pattern appears sometimes more or less with different shaders using distortion and at different resolutions. The only thing I’ve seen used to actually “remove” it is the moire mitigation code mentioned previously.
The challenge with applying the reflection as a separate pass is partially that the image generated by the crt shader needs to be scaled properly to approximately fit how the reflection shader is sized.
Currently all this scaling is defined at the beginning of the Guest-Venom shader. This is part hunterk did and I think it’s actually an awesome way to manage aspect ratio & integer scaling in the shader without ever having to change the video settings aspect ratio or video settings integer scaling, it would also allow the shader to choose use different options depending on the current monitor resolution.
A few solutions to this might be
-
Do screen scaling separately in the crt shader and reflection shader to get a good enough fti between the two. This means you need scaling controls in your shader
-
Break the crt shader up into a component file/function which the reflection shader can call to do the crt part, this is a more invasive option which requires breaking up the original shader, so seems less likely to be practical large scale
-
Let the reflection shader rescale the output of the crt shader to fit. I would dismiss this option as it would severely degrade the crt shader