qda
qda.bsky.social
qda
@qda.bsky.social
crt and misterfpga enjoyer
I posted the .slangp and .slang here: github.com/matijaerceg/...
January 30, 2026 at 1:43 AM
The "shadow mask" effect has little to do with how shadow masks actually work, it just swaps pixels around horizontally.
January 30, 2026 at 1:43 AM
There's an auto-adjusting "number of scanlines rounding" feature which works well for 3d games and allows for scanlines to be a multiple of output resolution, lessening likelihood of moire or horizontal jailbars.
January 30, 2026 at 1:43 AM
Concessions are made for the sake of image quality and brainfeel rather than accuracy. As mentioned the scanlines gaps are thinner in bright areas because a SDR digital display cannot compete with the amount of energy coming from a single scanline on a CRT.
January 30, 2026 at 1:43 AM
This shader works very well to clean up super compressed youtube videos too! It's sort of a reverse-AA happening, since we know that in these high-resolution or bilinear scaled videos there are solid fat pixels underneath. This low quality video looks a lot better with the shader.
January 30, 2026 at 1:43 AM
One thing I dislike about many ShaderGlass shaders is too many parameters. I've tried to edit mine down to just the essentials. The important setting to set is the 224/240p toggle, depending if you're playing SNES for example. The others have explanations.
January 30, 2026 at 1:43 AM
Scanlines alone help 240p content, but CRTs add additional texture. Instead of trying to simulate a shadow mask, which I find messes up chroma/luma, I just refract subpixels horizontally so as to create mask-like noise without having to process and affect color, or simulate it with fake phosphors.
January 30, 2026 at 1:43 AM
Per Tim Lottes' concept, the shader redestributes the energy found in the original 'fat' pixels into a thin scanline. But due to clipping at high values, on a digital display we compensate by thickening the scanline (called adaptive scanlines I think).
January 30, 2026 at 1:43 AM
The goal was to recreating what happens in our PERCEPTION and MEMORY when viewing on a CRT, rather than trying to simulate the literal visuals, which is technically impossible on a digital display.
January 30, 2026 at 1:43 AM
I've never seen a CRT shader I liked, so I made one (for ShaderGlass). It was inspired by Tim Lottes' "energy conservation" concept on shadertoys.
- No brightness loss!!!
- presets for 224/240p
- parameters
- defaults are good for 4k output.
January 30, 2026 at 1:43 AM