Sunday, 6 May 2012

CRT-like rendering on LCD monitors

The advances of technologly in the past few years have given us quite a nice improvement in the quality of images displayed by our monitors. Thanks to RAMDACs that don't suck, LCD monitors, digital video interfaces, then LCD monitors that don't suck we're now able to display sharp visuals of unprecedented quality, at rather big resolutions too.

But there is a problem. Some types of content looked great in the past, but there is something missing when it's viewed nowadays. There are people who may not even know how it's supposed to be, due to the old technology becoming obsolete. Text mode looks different. When you want to use 8x8 font it ends up looking either blurred or super blocky. Use modern TTF fonts and you get nice curved shapes, antialiasing, etc., but it looks just wrong. It's not how it should be anymore. Another good example are 8-bit emulators. What has happened? These games used to look good, but now they are ugly in their perfectness!

Well, some things need to look bad to look good. Thanks to programmable GPUs we can now re-introduce all these bad things that were plaguing us in the CRT days, so that we can be happy once more. Let me show some pictures, each split in half. The left side is post-processed and the right side is the original content.

Some notes:
  1. The effect is dynamic and looks better when it's watched live.
  2. This is not an emulator, these are just screenshots of 8-bit games. I am using the post-processing for other purposes.
  3. This is based on what I thought would look good, not on any comparison to a real CRT, or analysis of errors happening in the VRAM -> analog -> CRT path.