[Radiance-general] specifying sources

Gregory J. Ward gregoryjward at gmail.com
Tue Mar 28 03:46:24 CEST 2006


> where i get lost is why we should get better accuracy by using a  
> white source, and modelling the colour we want the source to have  
> into the reflection calculation from the surfaces in the scene.

It only gives you better accuracy if you premultiply the spectra.  If  
you don't have spectral data, then it's the same as using the Sharp  
RGB color space, which will at least be an improvement over standard  
RGB (or XYZ, which is the worst).

> in your paper you say this avoids a colour cast in the rendered  
> image, but why is this? presumably it wouldn't be that difficult to  
> apply a white-point shift to the rendered image to correct this  
> colour cast?

That's what a white point correction does, but it does it in such a  
way that the colors still have close to the correct appearance.  A  
naive normalization to some average gray does the wrong thing, and in  
some cases it is very wrong, indeed.

> but as well as this colour cast, your results show quite a dramatic  
> difference in accuracy between the naive and premultiplied renderings.
> i appreciate that you probably don't have time to go into a  
> detailed physics lesson by email, but can you point me towards  
> anywhere i can read up on why this is?

Simply put, spectral peaks and troughs in the source and reflection  
spectra require more than the three dimensions of a standard color  
space to resolve.  You only need three primaries to present (nearly)  
any color to the eye, since the eye only has three spectral  
sensitivity curves that it uses for color vision.  (The rods  
represent a fourth sensitivity curve, but this does not seem to take  
part in distinguishing colors.)  However, you theoretically need an  
infinite number of spectral samples to exactly simulate light  
interreflection.  You also need an infinite number of rays, and we  
get by with fewer.  As a practical matter, most rendering systems use  
only three colors, and the paper we've been discussing shows how to  
best leverage this machinery.

For a detailed description of color in computer graphics, Andrew  
Glassner's "Principle of Digital Image Synthesis" is an excellent  
reference.  Roy Hall has a classic text on the subject as well, but I  
believe it's out of print.

> i want to render lots of images of the same scene, but to change  
> the single light source each time. so far i have written a script  
> which does this quite nicely (it turned out simpler than using  
> rtcontrib, because of the way i wanted to structure the scene  
> description), but i have only used white sources.
> i want to be able to use colour filters with my sources, but if i  
> do all the premultiplicaton i will have to do it for every  
> different colour filter i want to use, which will complicate the  
> autamation of the preoccess immensely, so i'm trying to think of  
> simpler ways to do it!
> i guess i might have to do without, and just accept a less slightly  
> accurate image.

As I said, it makes no difference to the result if you don't have  
spectral data whether you incorporate your source color into your  
surfaces or not.  The result will be the same, so you might as well  
script it if you don't have spectra.

-Greg



More information about the Radiance-general mailing list