Hacker News new | ask | show | jobs
by tdicola 4080 days ago
I love these CRT shaders but have always wondered, has anyone thought about or worked on a physically accurate simulation of a CRT television? Something that takes a framebuffer as input and simulates the electric signals that control the magnets around the tube, how those magnets affect the electron beam, how the beam interacts with the shadowmask, etc. elements in the front of the tube, and finally how each individual phosphor on the screen is illuminated by the beam.

I wouldn't even worry about doing stuff in real time to start with, instead just focus on the most accurate physical simulation possible. Then use the learnings from the simulation to try to create more accurate shaders that any program could use for simulating CRT tubes.

2 comments

Yes, they have. There are terminal emulators (Cathode) and a very accurate simulation as part of xscreensaver. See jwz's post about it - http://www.jwz.org/blog/2011/01/cathode-vintage-terminal-emu... - and a mirror of the file where it is implemented - https://github.com/danfuzz/xscreensaver/blob/master/hacks/an...

The comments in that C file show just how much attention to detail was made.

Yeah that looks like a great start, especially with how the NTSC signal is generated and interpreted. I don't see much around simulating the electron beam and its interaction with the phosphors and front of the tube though. I imagine a truly accurate physical simulation would need to use monte carlo methods or similar techniques, almost like an advanced 3D renderer does for global illumination.
Everything I saw about Cathode (also available on the App Store) didn't seem to actually give much detail or confirmation that there was any simulation of those characteristics, more a "fast, accurate emulation", which could easily be a stereotyped / exaggerated experience.
This ..... redefines the concept of "ray tracing" as I know it. An interesting proposition. Wonder if you could write a pov-ray module for this.