I am looking for theoretical and implemented models to represent color in software that strives for physical accuracy.

I know that "color only exists in the mind" and that it sort of does not make sense to look for "physical accuracy", but still, how much better is spectrum sampling or other more elaborate representations of color to simple RGB, and what benefits will it bring? What drawback beside performance will it incur (or is performance a drawback)?

  • $\begingroup$ I reposted a related question a while back that may also be relevant here: Are there common materials that aren't represented well by RGB? $\endgroup$
    – trichoplax
    Dec 3 '16 at 23:48
  • 1
    $\begingroup$ The answers to this are probably useful too. computergraphics.stackexchange.com/q/4321/56. TL:DR - CIELAB was made to be a measurement of color for human perception. Unfortunately different displays display things differently so you can't easily convert from RGB to this. There have also been advancements to CIELAB over the years to make it closer to how color is actually percieved by humans. Not sure if helpful info, but I hope so! $\endgroup$
    – Alan Wolfe
    Dec 4 '16 at 2:54

The most physically accurate way would be to have a $l(\theta)$ which for each possible color frequency has a certain value.

Converting to RGB would then need a frequency responce function for each channel and the result is then $\int_{infrared}^{ultraviolet} l(\theta)F_{red}(\theta)d\theta$.

Reflected light then has a 2 dimensional response function: $L_{reflected}(\theta) = \int l_{incoming}(\phi)R(\phi,\theta)d\phi$. (ignoring the BRDF here for simplicity)

Drawbacks are that instead of just 3 color channels you now have infinite channels to worry about.

  • $\begingroup$ Well, I said "possible", not "imaginary" ;-). But thanks for a good answer! $\endgroup$ Dec 6 '16 at 1:28
  • $\begingroup$ Is there a name for $l(\theta)$? Or do you just say el theta? $\endgroup$ Dec 8 '16 at 6:50
  • 1
    $\begingroup$ @MatthewWoo It's a name I came up with on the spot, it's actually the irradiance from DRDF with the extra parameter of wavelength. $\endgroup$ Dec 8 '16 at 9:44
  • $\begingroup$ In fact you should consider the complete EM spectrum. Furthermore, the question does not specify whether a human eye must perceive the resulting images. $\endgroup$
    – Matthias
    Feb 23 '17 at 13:57

There is spectral rendering, where you can quantize the visible wavelengths from ~390nm to ~700nm to N discrete wavelengths instead of the standard 3 for RGB. Then if you had to model say a prism, you would get more realistic distribution of the spectrum.

Light has also property of polarization that you would need to model for increased realism. I don't know if this is being modeled in any existing publicly available rendering engines and how would you represent it exactly. Light is electromagnetic wave with two orthogonal electric and magnetic components, which may have different amplitudes and be also out of phase potentially resulting in elliptical polarization. The polarization would be a relevant propery for example to model multiple specular reflections from dielectric surfaces, or modeling polarizing filters used by photographers on cameras.

Both spectral rendering and accounting light polarization would come with the cost of performance and higher memory usage.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.