Well the actual coloured light code has to be credited originally to the QER folks, but LordHavoc did the sensible implementation (including the LIT file spec) that everyone can trace their's to nowadays. I made it really sing though by providing LIT files for ID1 maps and a tool to generate them. Each needed the other to work; without a sensible coloured light implementation the LIT file pack would have been marginal, and without an ID1 LIT file pack in wide circulation a sensible coloured light implementation would have been marginal.
(This is leaving .rtlights out of the discussion of course).
Back on topic.
The one thing that really turned around my knowledge and appreciation of how GPUs actually work was learning Direct3D. This is something I'd recommend everyone do, even if it goes no further than writing a simple MDL or BSP viewer. Because when you think about it, at the most basic level a 3D API is really nothing more than something that takes commands, converts them into a format that the GPU can understand, and passes them on to the GPU for further work. There's no special magic in OpenGL (or D3D) on the software side. Take command, convert it, pass it on.
Even back in the old days when you used to find tutorials saying stuff like "ha ha you can't do this in D3D because it doesn't have a stencil buffer". Talk about misleading. It was never OpenGL that had a stencil buffer, it was the hardware. All OpenGL did was expose commands that let you use it. (D3D has exposed the stencil buffer for well over a decade, by the way.)
So OpenGL is kind and caring and forgiving and lets you do all kinds of crazy stuff whereas D3D is cruel and punishing - you only get what's on the hardware and if you try to do something that's not supported in hardware you'll crash. So learn D3D and you'll very quickly learn the boundaries of what is and isn't supported in hardware (and you'll be a better OpenGL programmer for it!)
