<p>There is <a href="https://en.m.wikipedia.org/wiki/Spectral_rendering" rel="noreferrer">spectral rendering</a>, 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.</p>

<p>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.</p>

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

CC BY-SA 3.0
2016-12-08T04:41:03.083Z
2016-12-08T05:02:32.973Z
2016-12-08T05:02:32.973Z
JarkkoL
<p>The most physically accurate way would be to have a $l(\theta)$ which for each possible color frequency has a certain value.</p>

<p>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$.</p>

<p>Reflected light then has a 2 dimensional response function: $L_{reflected}(\theta) = \int l_{incoming}(\phi)R(\phi,\theta)d\phi$. (ignoring the <a href="https://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function" rel="nofollow noreferrer">BRDF</a> here for simplicity)</p>

<p>Drawbacks are that instead of just 3 color channels you now have <strong>infinite</strong> channels to worry about.</p>

CC BY-SA 3.0
2016-12-06T01:28:21.200Z
Well, I said "possible", not "imaginary" ;-). But thanks for a good answer!
Mr. Developerdude
CC BY-SA 3.0
2016-12-08T06:50:33.383Z
Is there a name for $l(\theta)$? Or do you just say el theta?
Matthew Woo
CC BY-SA 3.0
2016-12-08T09:44:42.080Z
@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.
ratchet freak
CC BY-SA 3.0
2017-02-23T13:57:14.153Z
In fact you should consider the complete EM spectrum. Furthermore, the question does not specify whether a human eye must perceive the resulting images.
Matthias
CC BY-SA 3.0
2016-12-05T10:13:18.270Z
2016-12-05T10:13:18.270Z
ratchet freak
<p>I am looking for theoretical and implemented models to represent color in software that strives for physical accuracy.</p>

<p>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)?</p>

CC BY-SA 3.0
2016-12-03T23:48:02.100Z
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?](http://computergraphics.stackexchange.com/questions/203/are-there-common-materials-that-arent-represented-well-by-rgb)
trichoplax is on Codidact now
CC BY-SA 3.0
2016-12-04T02:54:34.530Z
The answers to this are probably useful too.  http://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!
Alan Wolfe
<color><color-science><implementation>
What is the most physically accurate representation of color possible in computer graphics?
Mr. Developerdude
# What is the most physically accurate representation of color possible in computer graphics?

(Asked by: username_0 on 2016-12-03)

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)?

**Tags:** color, color-science, implementation

> **Comments:**
> **username_1**: 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?](http://computergraphics.stackexchange.com/questions/203/are-there-common-materials-that-arent-represented-well-by-rgb)  
> **username_2**: The answers to this are probably useful too.  http://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!  

---

## 2 answers

### Answer by username_4 on 2016-12-05. Score: 7 | Accepted answer

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](https://en.wikipedia.org/wiki/Bidirectional_reflectance_distribution_function) here for simplicity)

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

> **Comments:**
> **username_0**: Well, I said "possible", not "imaginary" ;-). But thanks for a good answer!  
> **username_5**: Is there a name for $l(\theta)$? Or do you just say el theta?  
> **username_4**: @username_5 It's a name I came up with on the spot, it's actually the irradiance from DRDF with the extra parameter of wavelength.  
> **username_6**: In fact you should consider the complete EM spectrum. Furthermore, the question does not specify whether a human eye must perceive the resulting images.  

---

### Answer by username_3 on 2016-12-08. Score: 6

There is [spectral rendering](https://en.m.wikipedia.org/wiki/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.


---

