I think I have found the definitive definition of what the “RGB reflectance unit” is in Radiance. Please correct me if I am wrong:
I see that the book recommends using a spectrophotometer to measure RGB reflectance, which supports your definition of a photometric measurement. It explains how the measured unitless reflectance across different wavelengths is then processed by cieresp.cal
and xyz_rgb.cal
. The former seems to convert the reflectances to a single CIE XYZ value (I guess CIE XYZ is arbitrary, it could equally well be CIE xyY), bounded within the range of 360nm to 830nm, and no luminosity function is applied despite being defined in the file. Instead, only the trix
, triy
, and tryz
functions are used. The latter script then converts the CIE XYZ to RGB radiance values, in the unit of W·sr^−1·m^−2.
I decided to repeat my test above, but instead of using Colorbond I am using Dulux samples (from Dulux Australia, which has different products to Dulux elsewhere). Here’s the new photo I took and processed with dcraw -w
, the converted with ra_ppm -r
.
The Dulux website https://www.dulux.com.au/specifier/search/top?query=natural+white&charset=UTF-8 allows me to search for each colour, and it will say what the Light Reflectance Value (LRV) https://en.wikipedia.org/wiki/Light_reflectance_value is for that colour. The definition of LRV is basically the “Y” component in the CIE xyY coordinate. https://www.dryvit.com/fileshare/doc/design/colors/us_LRV_light_reflectance_value2.htm From my current understanding, this “Y” component is the average reflectance, i.e., it is what grey(r,g,b)
in rayinit.cal
calculates. The only difference in definition I can find between the average reflectance grey(r,g,b)
for a Radiance plastic material and the LRV is that an LRV includes the specular component, whereas the plastic material RGB should be purely the diffuse component.
Therefore, and please correct me if I am wrong, if I wanted to produce a scene in Radiance where surface colour is not important, I can directly use the LRV values for any non-specular Dulux paints in my scene. So I tried my experiment again, attempting to achieve the LRV for each colour.
My results are below. I arbitrarily picked a bunch of colours. The r
, g
, and b
column shows the results of the c
command in ximage
when I have sampled areas above those colour swatches in my photograph. The grey(r,g,b)
column is the calculation I get, and the lrv
column is what the Dulux catalogue says it should be. The multiplier is lrv / grey(r,g,b)
, and highlighted in blue is the average multiplier. As you can see, the average % error in reflectance when I apply my average multiplier is 7%. This is skewed by the higher percentages in the darker colours for obvious reasons.
Is this a sensible result and methodology? Are these error ranges fairly typical for a photograph? The average multiplier is a simplification, I’m sure macbethcal does something cleverer