Spectral Rendering: Why Three Numbers Aren't Enough - Computing Color the Way Light Really Works

We built this whole library on a quiet truth: color is a spectrum, but your eye - and your screen - reduce it to just three numbers. Almost all of computer graphics runs on those three, and most of the time it works. But sometimes the shortcut lies: a colored light bounces off a colored surface and RGB gets the answer wrong; two objects that matched under daylight drift apart under a lamp; a prism refuses to make a proper rainbow. To fix these, film and science reach back to the full spectrum. This final chapter is about computing color the way light actually behaves.

Computational · 113 4 Live Demos ~4 min read The finale
3 vs ∞
RGB channels vs a full spectrum
metamers
Same color, different spectrum
spectral
How film and science get color right
n(λ)
True dispersion RGB can't do
01

The three-number bottleneck

Light arriving at your eye is a spectrum - a continuous curve of power at every wavelength. But you have only three cone types, so your visual system collapses that infinite curve into three numbers. Screens exploit exactly this: three primaries, three numbers, and the eye can't tell the difference. It is a brilliant compression - and the foundation of nearly all digital color.

The catch is that light doesn't interact in three numbers; it interacts wavelength by wavelength. When light reflects, transmits, or mixes, the physics happens across the whole spectrum, and only afterward does the eye summarize the result. Do the math in RGB and you are summarizing first and interacting second - the wrong order. Usually the error is invisible. Sometimes it is glaring. Spectral rendering keeps the full spectrum through every bounce and reduces to three numbers only at the very end, the way reality does.

The core idea: RGB is the eye's three-number summary of a spectrum. Light physics runs on the full spectrum, so computing interactions in RGB is a shortcut that can silently err - most visibly with colored lights on colored surfaces, with metamers under changing light, and with dispersion. Spectral rendering carries the whole spectrum and only collapses to color at the end.
02

When RGB multiplication lies

Here is the most common shortcut in all of graphics: to light a surface, multiply the light's color by the surface's color, channel by channel - out = light × surface in RGB. The correct answer multiplies the two spectra wavelength by wavelength, then reduces to color. For gentle spectra the two agree; for saturated lights and surfaces they can part ways. Try combinations and watch the gap.

Interactive 01 · RGB vs spectral product

Two ways to bounce light off a surface

Choose a colored light and a colored surface. The left swatch is the correct spectral result (illuminant spectrum × reflectance spectrum, then reduced to sRGB through the CIE colour-matching functions). The right swatch is the naive per-channel RGB multiply. ΔE is how far apart they land - small for broad colors, large for saturated ones.

03

The metamer twins

Because three numbers can't capture a whole curve, different spectra can share a color. These are metamers. Below are two surfaces with genuinely different reflectance spectra, yet under daylight they are the exact same color to your eye - the colour-matching functions integrate both curves to identical values. RGB stores only that shared color and throws the spectra away.

Interactive 02 · Same color, different spectrum

Two curves, one color

The two reflectance spectra are constructed to be exact metamers under daylight - one smooth, one with an added "metameric black" wiggle that the eye's response integrates to zero. The single swatch is the color they both produce under daylight. Different physics, identical perception.

04

Relight them, and they split

Now the punchline. Take those two metamer twins - identical under daylight - and change the light. A spectral renderer multiplies each true spectrum by the new illuminant and correctly shows the twins drifting apart. An RGB pipeline, holding only the one shared color, keeps them locked together and renders the relit scene wrong. Flip the light and watch them separate.

Interactive 03 · Metameric failure

The twins come apart under a new light

The same two surfaces from above, now rendered spectrally under the light you choose. Under daylight they match (ΔE near zero). Switch to a warm bulb or a spiky LED and their different spectra reflect differently, so the twins visibly separate - exactly what a spectral renderer predicts and an RGB one misses.

05

The rainbow RGB can't make

One last thing only spectra can do. In glass, the refractive index depends on wavelength - blue bends more than red - so a prism fans white light into a spectrum. That is dispersion, and it needs every wavelength tracked separately. With only three fixed samples, RGB can fake a three-band smear at best; a spectral renderer produces the smooth, true rainbow - and the fire inside a diamond. Send white light through the prism.

Interactive 04 · Prism dispersion

Splitting white light by wavelength

White light enters a glass prism and each wavelength refracts by its own amount, following the Cauchy relation n(λ) = A + B/λ² - shorter (bluer) wavelengths bend more. Adjust the glass dispersion and watch the spectrum fan out. RGB's three samples can't bend independently; only the full spectrum makes a true rainbow.

06

The terms, defined

The vocabulary of computing color from light.

Spectral rendering
Carrying full spectra through every light interaction and reducing to RGB only at the end - the physically correct way to compute color.
Tristimulus / RGB
The three-number summary of a spectrum. Compact and enough for display, but lossy for computing interactions.
Colour-matching functions
The three curves (x̄, ȳ, z̄) that integrate a spectrum into XYZ - the bridge from spectrum to color.
Metamer
Two different spectra that match in color under a given light. The reason a color can't be inverted back to one spectrum.
Spectral upsampling
Choosing a plausible spectrum for an RGB input so a renderer can work spectrally - the inverse problem, which has many answers.
Dispersion
Wavelength-dependent refraction (n(λ)) that splits white light into a spectrum - renderable only with per-wavelength tracking.
07

What it means - and a farewell

RGB is a summary, not the thing
Three numbers describe how a color looks, not the spectrum that made it. Interactions need the spectrum.
Where the shortcut breaks
Saturated colored lights, relit metamers, fluorescence, and dispersion are where RGB math visibly fails.
Why film goes spectral
VFX and product-design renderers use spectra so relit shots and hero colors hold up under scrutiny.
The inverse is ambiguous
Going from RGB back to a spectrum has infinitely many answers; renderers pick a smooth, physically plausible one.
Cost buys correctness
Tracking many wavelengths is slower, so RGB stays the default; spectra come out when accuracy demands it.
It all connects
Spectra, cones, metamerism, illuminants, gamut - every thread of this library meets here, in how we compute color.
"We began with a spectrum and the three small numbers your eye makes of it, and across a hundred chapters we followed those numbers everywhere - into inks and screens, eyes and animals, stars and sleep. Here at the end we simply gave the spectrum back its due. Color was never really three numbers. It was light, in all its wavelengths, and a mind that learned to read it." Editorial summary · the last chapter
The takeaway: color is a spectrum; RGB is its three-number shadow. Computing light interactions in RGB is a fast shortcut that can silently err - on colored lights, relit metamers, and dispersion - while spectral rendering keeps the full spectrum and gets them right, collapsing to color only at the end. It is the most faithful way we know to turn light into a picture.
A farewell. This is article 113 of 113 - the last in the Auric Artisan color-science library. From spectral power distributions and the physics of light, through the eye and brain, across print, screens, design, and measurement, to this final look at computing color the way light truly behaves - thank you for reading to the end of the spectrum. Wherever your work with color goes next, may you always remember to look past the three numbers to the light itself.
08

Test your understanding

Six questions on spectral rendering, RGB's limits, metamers, relighting, and dispersion - the finale quiz. Instant feedback, no scores recorded; a wrong answer comes with a short explanation.

Quick check

Loading…
 
Question 1 of 6
09

Continue your journey

The spectral thread began at the very start of this library. Follow it back to its roots, and out to where it's used - a fitting loop to close on.