# Determining average reflectance from RGB values

I'm a new radiance user and I'm try to use the software to
correlate results from measures taken using a detailed architectural model.
The goal is to try a number of variations using radiance
that would be prohibitive revising the model.

The reflectance values of the various surfaces in the model were
painted a neutral color (shades of gray) and the average reflectance was
measured. I don't have access to equipment that would measure the
reflectances at different wavelengths (separate RGB reflectance
values).

In the radiance models, the goal is to provide some color
other than gray for these surfaces but with the same average
reflectances. Is there an obvious way to correlate RGB values in
a radiance material description with the average relectance for a
surface?

I am assuming that the following wall material would have an
average reflectance of 0.75:

# adobe texture function
void texfunc ad
6 cdx cdy cdz adobe.cal -s .1
0
1 .015

# Sample stucco wall of adobe material, reflectance = 75%
ad plastic stucco_75
0
0
5 .75 .75 .75 0 0

Can you average the RGB values for a material to get
the average reflectance (as in the plaster_white) material below
or do you need to use some more complex calculation? Does the
adobe calculation function significantly affect the average
reflectance value?

--- excerpt from Building.mat file ----

# adobe texture function
void texfunc ad
6 cdx cdy cdz adobe.cal -s .1
0
1 .015

# Sample wall of adobe material, reflectance = 75%
ad plastic plaster_white
0
0
5 .80 .75 .70 0 0

-------- excerpt ends -----------

Also, how would this apply to the average reflectance values for
carpet that are generated using the radiance carpet.cal function.
For example, how would the average reflectance value be calculated
for the sample carpet below (one of the book samples):

------ material from "Rendering with Radiance" book sample ----

# carpet pattern function
void colorfunc carp
6 carpr carpg carpb carpet.cal -s .0175
0
4 .7 .825 .9 1

carp plastic carpet_blue
0
0
5 .9 .9 .9 0 0

------ sample ends ---------------

Any help understanding the conversion of RGB values to
average reflectance values for materials and texture (calculation)
functions would be most appreciated.

Thanks,
-Steve

Steven Baker
[email protected]

Hi Steve !

Comparing measured values with one from simulation is always tricky, as
a lot of things have to be considered.

To begin with the average reflectance question: From a radiation point
of view, you may average the three reflectances for red, green, blue, as
the rgb-channels simply represent three ranges of the spectrum with
equal weight. Turning over to illumination, things become different, as
the human visual response of the eye has to be taken into account. For
this purpose, within Radiance a so called brightness is used, which is a
weighted sum of the three rgb-channels

B = 0.265*r + 0.670*g + 0.065*b

(only first three digits of the coefficients are given, their sum is of
course 1, multiplying this brightness with K = 179 lm/W makes it finally
a luminance value).

Example: a uniform grey r=g=b=0.5, illuminated by white light (r=g=b=1)
has of course a brightness of 0.5, (remember that the sum of coeficients
is one, so the above formula gives
(0.265+0.670+0.056)*0.5 = 0.5)

Something more or less red, e.g. r=0.8, g=0.5, b=0.2 with the same
average reflectance of 0.5 will however have a brighness (again, for the
light r=g=b=1) of 0.265*0.8 + 0.670*0.5 + 0.065*0.2 = 0.56, which is
different.

So, for comparing different materials, the brightness should be used.
Additional surface normal undulations will certainly have an effect on
the amount of received and reflected light. To determine this effect,
you have to do test runs with and wihout texture modification and
compare the results.

Last but not least, the color of the light source has to be taken into
account, too. It has to be the same as the one of your test equipment.
(Pictures are often rendered with uniform white light , r=g=b=1, to
avoid color biases, although this is not exact from a scientific point
of view.) Color values for different lamp types can be calculated with
the Radiance "lampcolor" utility.

So, again, such a simple comparison is more tricky than one might think
at a first glance.

Carsten