When RGB is Not Enough, Redux

Here's a simple example of when the RGB color model fails to accurately model real life interaction of light and color.

Low-pressure sodium vapor lamp

If you drive through any of the tunnels through the Appalachian mountains on the U.S. East coast, you'll likely be greeted by the ugly yellow-orange glow of a low-pressure sodium vapor lamp.

LPS lamps only emit light around the yellow-orange wavelength. As a result, in situations where they are the only light source, such as deep within a mountain tunnel, everything loses its own color, instead becoming a shade of yellow-orange. A car which had a lovely blue hue in the full-spectrum light from the sun will suddenly look near-pitch black once you enter the limited spectrum lighting of the tunnel. A white car, which reflects light on multiple wavelengths, will be much more visible, but still entirely yellow-orange. A red car or a green car would probably be just a little bit more visible than the blue car, but you'd be unable to tell that they were red or green if you hadn't seen them in daylight.

If we wanted to make a 3D animation of a car going through a tunnel, it wouldn't be enough just to make all the lights in the tunnel yellow-orange. In the RGB model, yellow-orange light is just a mix of red and green light; if we sample a pixel from the photograph above, we find that its color makeup is R: 98%, G: 67%, B: 0%.

Unlike in real life, where a red car would appear to be a very dark yellow-orange, a red car in our computer model would still look like a red car. A green car would be a darker shade of green under this faux yellow-orange light, but it would still be green.

If we're only concerned with the emotional impact that this unnerving yellow-orange scene will create in the viewer, then we'd probably end up just faking it in post-processing, by desaturating all the colors and throwing a solid yellow-orange layer with a multiplicative blending mode on top.

That would certainly succeed in turning everything the same hue, and would probably be satisfactory for most artistic purposes, but it wouldn't be an accurate model of the real world. Even a more complex filter, which measured each pixel's color-space distance from yellow-orange in order to derive its luminosity, wouldn't be quite right.

The situation grows increasingly complex if we try to model situations with multiple hues of strongly-colored lighting in the same scene. For example, suppose we wanted to recreate the (incredibly disturbing) psychedelic scene on the paddleboat from the classic 1971 Willy Wonka & the Chocolate Factory. To properly model multiple light sources illuminating an object at different times, each source emitting a different mix of wavelengths of light, and each material reflecting certain wavelengths but absorbing others… yikes! Accomplishing such a task using the RGB model would be an astounding feat for even a seasoned professional!

Previous post: When RGB is Not Enough Next post: Nonogram Game