Rendering with many spectral bands and RGB

Thanks Greg.
The interleaving sounds like a good idea.



Hi Glen,

You should be fine with your 27 runs. It's best if you interleave
your wavelengths so that RGB still roughly corresponds to reds,
greens, and blues, but it isn't completely critical. The bright()
macro is only used for determining ray weights and the like, so
should have only a modest effect on the result. Running individual
wavelength calculations will not help at all.


From: "G HARDING" <G.Harding1 at

<> >


Date: April 24, 2009 7:42:58 AM PDT

Hopefully someone who has done this already can help out here..

We have been using a spectral rendering technique with radiance by
splitting our material and light source data into 27 files (81
bands) and combining the output of the 27 rpict processes.

The assumption here is that radiance has no calculations that
differ across the 3 "RGB" values in the material and light source

Having searched the archives, I have found a few seemingly
conflicting pieces of information:

In one correspondence (from Greg Ward) it is stated that "Radiance
does not have any wavelength specific calculations".

However, Arne Dure has pointed us towards the source code in color.h:

#define bright(col) (CIE_rf*(col)[RED]+CIE_gf*(col)[GRN]+CIE_bf*

>> /* As of 9-94, CIE_rf=.265074126, CIE_gf=.670114631 and

>> CIE_bf=.064811243 */

Is this calculation what Greg refers to in his reply here?:

"The only place RGB is assumed in the code is when it's combining
primaries to get brightness for a weight test or somesuch, and it
shouldn't affect the result much for adjacent samples, which should
be fairly similar."
I'm not really sure what this 'weight test' is or if we should be
worrying about this. Am I correct in thinking that although this
calculation may not greatly effect the result, for maximum accuracy
when spectral rendering we should render only one waveband at a
time (R=B=G) and do it 81 rather than 27 times?

Many thanks,

Glen Harding.