Multichannel spectral simulation in Radiance

Hello Radiance users,

I have a question regarding how Radiance calculates luminance values. I understand that the following equation converts radiance values into luminance using the luminous efficacy factor of 179.

𝐿 = 179 ∗ (0.2651 ∗ 𝑅 + 0.670 ∗ 𝐺 + 0.065 ∗ 𝐵) [Eq. 1]

Are there generally adopted boundaries for RGB? In “Spectral Daylighting Simulations: Computing Circadian Light” (Inanici et al. 2015) the authors write the following:

“The wavelength intervals for a standard three-channel (RGB) imagery in Radiance are calculated as 380-498 (B), 498-586 (G), and 586-780 nm (R) based on their respective coefficients in Equation 1.”

However, in "Creating physically accurate visual stimuli for free: Spectral rendering with Radiance (Ruppertsberg & Bloj, 2008) propose using equidistant bins for RGB.

Since the coefficient of each bin can influence the output, how should the spectrum be divided between these bins? Equidistantly or does Radiance, in fact, define spectral boundaries for RGB?

My second question is regarding “Spectral Daylighting Simulations: Computing Circadian Light” (Inanici et al. 2015). We have recently tried to reproduce the coefficients published in the paper for photopic and circadian response functions (Lucas curve) using trapezoidal rule for integration to find area under the curve of each of the bands. Unfortunately, we could not reach the same values as in the paper with this approach or anything else that we tried. Perhaps someone already tried to replicate this and can explain the missing points.

Any feedback on these points is highly appreciated!


Hi Rita,

Welcome to Radiance Discourse.

The conversion between RGB and Y (or other color spaces) is determined by CIE color matrix methods, rather than by defined wavelength ranges for the primaries. In fact, nothing outside of spectroscopy really uses wavelength ranges, and you would never use just 3 components in such a context.

Instead, we define a set of CIE (x,y) primary coordinates for the R, G, and B channels (see src/common/color.h), and together with an (x,y) coordinate for white, we can derive standard matrix conversions to and from CIE XYZ color space. However, this is based on a century of color science and how the human visual system responds to different wavelengths. It is not purely physical, but psychophysical.

When you switch contexts to circadian responses, you are still in the domain of psychophysics, but CIE standard color spaces no longer work for that. There are at best approximate conversions between photopic and circadian (sometimes called melanopic) responses based on color primaries, but they are never going to work quite right, because the primaries are based on human color response rather than melanopic response.

This long answer is really just saying I don’t know the answer, and that it is a current topic of research. All I can tell you for sure is that RGB color space can not be equated to spectral ranges, because they aren’t derived that way. If you have a spectrum, you can get RGB from it, but not the other way around – at least not without making a lot of assumptions.


Hi Rita,

To answer your second question, you should indeed integrate the spectral efficiency function (eg V_lambda for the photopic coefficients) over each waveband, but you first need to scale the spectral efficiency function so that its area under the curve equals 1 (as you want the sum of the 9 coefficients to be equal to 1). So instead of having a V_lambda with a maximum value of 1, you need to divide it by 107 (if I remember correctly for V_lambda). The same apply to the melanopic spectral efficiency function.

I hope that helps.


Hello Greg,

thank you for your answer. Definitely a lot to think about here.

Just to clarify my understanding: if we do not consider imagery, but a spectral simulation, can RGB in equation 1 be treated as containers for average radiance in the defined bands? If not, should the approach described in the above-mentioned papers be disregarded?

If yes and if multipliers represent sensitivity of cones (am I right here?), can the spectral bands be scaled according to the respective multiplier?

One more question about equation 1, should 179 lm/watt be used for all types of light sources?

Still very new to Radiance and I am sincerely sorry if I misunderstood something in your reply.



Hello Clotilde,

thank you for confirming this. Our values were slightly different (but still parallel) to those published in the paper. Did you manage to obtain identical values to those published in the Lark paper?



Hi Rita,

Yes, the photopic were identical and the Lucas-melanopic were identical up to 3 numbers after the comma (there might be some rounding issue somewhere depending on how you do the integration I guess).



Yes, although the RGB channels in Radiance are traditionally interpreted in the context of the aforementioned CIE color conversion methods, you can in fact define them to mean whatever you like in the context of a lighting calculation. Since light behaves linearly, these channels can be partitioned by wavelength, or overlapping sensitivities such as basis functions, or really anything that works in a linear domain.