A big problem of scanline-based shaders is that it can only take away brightness (scanlines), and it’s very hard to actually add back brightness since there is a fixed range available.
With the new mipmapping support, I’ve tried to implement a simple CRT shader which can go beyond the [0.0, 1.0] range. When samples start to go above 1.0, the pixels begin to “glow”, bleeding into neighboring pixels, which should in theory allow very bright pixels to appear even brighter because they can cover a larger screen area.
The glow is implemented as two big blurs done at quite low resolutions (hence need for mipmapping to avoid gigantic filter kernels or tons of extra shader passes).
It’s pretty finicky to tune because what looks good on some games looks kinda weird on others.
You need a recent build with sRGB and mipmapping support. https://github.com/libretro/common-shad … r/crt/glow
Some screens: http://imgur.com/1AyHM5Q,C2wxg1H,cf976H … RO,agf6l90