I've been trying to understand some of the physical principles behind light and material interaction lately. In his talk Physics and Math of Shading, Naty Hoffman explains Fresnel reflectance and defines the characteristic specular color F0 of a material as the Fresnel reflectance at 0° incident light angle.

On slide 65, F0 of gold is given as 1.022, 0.782, 0.344 (linear). Hoffman adds:

its red channel value is greater than 1 (it’s outside sRGB gamut)

All of this doesn't make too much sense to me. A value greater than 1 would mean that in the wavelengths contributing to the red channel, more energy is reflected than is received. Does this really happen, and if so, how and why?

In addition, here is a reflectance curve from Wikipedia for some materials including gold (Au). The curve is certainly high for red wavelengths around 600nm but does not seem to go over 100%.

Reflectance (Au)

  • 4
    $\begingroup$ Not really, it can also mean just that it is redder than what your monitor can make. $\endgroup$ – joojaa Sep 30 '15 at 11:42
  • 1
    $\begingroup$ I don't know about rgb but about energies, it is very possible to get >1 reflectance thanks to fluorescence. Some materials can gather energy from other wavelengths. $\endgroup$ – v.oddou Oct 1 '15 at 1:36

RGB color is a bit more complicated a subject than readily seems apparent. The reflectance wavelength diagram shows the reason quite well actually.

RGB color model has several central problems:

  • What the colors represent: They represent 3 spikes in a continuous spectrum. The R, G and B aren't energetically equivalent let alone evenly spaced.
  • What their range is: The colors do not actually mean anything without information of what space they span. In the assumed sRGB color space the space does not span the entire sensable range. So energetically equal but more vivid colors exist.
  • Human sensory apparatus isn't actually reading 3 color spikes but the sensors nonlinearly overlap.

As a result one can not draw the conclusion that a reflectance color channel of greater than 1 automatically means that energy is inserted into the system. That is simply one of the possible interpretations.

Another interpretation is that the color is more intense than your color space allows. As a result your color vector component could be over 1.

Human eyes may also bleed color from one sensor to another due to overlap of the sensors. Such things happen with the sky which seems light blue, but is actually far darker blue but so intense that we see it as light blue. But in 50% reflections it would look wrong if we wouldn't account for this.

In the end, it can also mean energy is inserted into the system. Either the energy comes from elsewhere or is generated by the surface.

Rendering is often not a scientific measure of things. No energy principle needs to be broken to achieve this.

Summa summarum (tl;dr)

Color is often a compound attribute at the same time as it measures energy levels it also measures something other. Namely the location in the color space. Thus you can not differentiate the two signals (energy and color intensity) easily.

In this case it is a more intense color because the source says so: Outside of sRGB gamut = more intense color than the color space can make.


Here's a chromaticity diagram that includes a projection of the sRGB color space: a triangle whose vertices are red (1,0,0), green (0,1,0), and blue (0,0,1).

CIE chart with sRGB gamut from Wikipedia

Encoding the reflectance of a surface as the color at F0 and getting a value that is outside of the (somewhat arbitrary chosen) sRGB gamut is totally reasonable. It just means that gold is "more red" than sRGB can represent, because it reserves valuable area of its dynamic range for other colors.

  • $\begingroup$ What a coincidence that we would post at the same time. You save me from having to post an image which is hard to draw when im on mobile. $\endgroup$ – joojaa Oct 1 '15 at 5:39
  • 4
    $\begingroup$ @joojaa “You wrote all that on mobile? …You’re braver than I thought.” $\endgroup$ – John Calsbeek Oct 1 '15 at 5:51
  • 1
    $\begingroup$ Yes I did. I was thinking of drawing a graph with Mathematica on my mobile over ssh, but that would have been a bit too much... Anyway the spellchecker of my mobile sucks so if you see a lot of misspellings feel free to fix. $\endgroup$ – joojaa Oct 1 '15 at 7:00

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.