[Radiance-general] XYZ to RGB conversion - neutral color is not neutral

Kolomenski, Andrei (JSC-SF311)[WYLE LABORATORIES, INC.] andrei.kolomenski at nasa.gov
Thu Feb 8 12:42:03 PST 2018


Hi Kynthia & Greg,

I read your posts and I'm also curious about white point adaptation and how it applies to Radiance.

>From Greg's last comment, you recommended replacing the input white point chromaticity of equal energy white with chromaticity of D65 (x=0.3127,y=0.3290) in the xyz_rgb.cal calculation of the r,g,b components. What impact does this have, that you are not using the equal energy white point? As I understand Radiance computes luminance using equation: Luminance = 179 * (0.265*R + 0.670*G + 0.065*B), where 179 lumen/Watt is the standard luminous efficacy of equal energy white light. So does the r,g,b material definition needs to be defined for an equal energy white point in order to have correct luminance/illuminance estimations?

So given a reflectance spectrum under a D65 illuminant is a white point balancing transformation necessary to correctly define the Radiance material primitive?
Can the output of xyz_rgb.cal be safely used for the r,g,b material definition?

Thank you for the interesting and helpful discussion.

Kind Regards,
Andrei Kolomenski

From: Greg Ward [mailto:gregoryjward at gmail.com]
Sent: Thursday, February 08, 2018 1:57 PM
To: Radiance general discussion <radiance-general at radiance-online.org>
Subject: Re: [Radiance-general] XYZ to RGB conversion - neutral color is not neutral

Hi Kynthia,

I'm not sure how easyrgb.com<http://easyrgb.com> does its calculations, but there is a known problem when converting between white points.  One method uses a von Kries transform to attempt to match white appearances via a color adaptation space, and another just gives you what you would measure with a colorimeter.  The xyz_rgb.cal program follows the colorimetric method, so if you took your measurements under bluish light, it will stay bluish even if your new color space has a warmer illuminant.

As I said, you would ideally set your Minolta to give you XYZ under EE illumination rather than D65.  However, one way to trick xyz_rgb.cal into doing a cheap white point adaptation is to tell it to give you the Radiance RGB's assuming a D65 white point rather than EE white.  To do so, you can run:

rcalc -f xyz_rgb.cal -e 'CIE_pri(i) = select(i, 0.640,0.330, 0.290,0.600, 0.150,0.060,0.3127,0.3290)' \
               -e '$1=R($1,$2,$3)/100;$2=G($1,$2,$3)/100;$3=B($1,$2,$3)/100'

You then give it your XYZ values on the input side, separated by spaces or tabs, one XYZ per line.  The output will be the RGB values.  For your wall, I get:

               Radiance RGB = 0.876 0.857 0.734

Note that the Radiance RGB primary chromaticities don't match the standard (sRGB) ones.  This is unfortunate, but historical as Radiance's color system predates even sRGB.

Cheers,
-Greg



From: Chamilothori Kynthia <kynthia.chamilothori at epfl.ch<mailto:kynthia.chamilothori at epfl.ch>>

Date: February 8, 2018 10:52:07 AM PST


Hi Greg,

Thanks for answering!
I thought of the same thing (after reading the corresponding Rendering for Radiance chapter) - but the wall looks white to me under daylight (and mixed daylight/artificial light). When using the values I got from xyz_rgb.cal (indeed, divided by 100, I forgot to add that! :)), the result is way too blue for my liking... (http://oi63.tinypic.com/2u7u60y.jpg).

If I understand correctly, the difference between the resulting RGB values when using xyz_rgb.cal/the new Colour Picker conversion and easyrgb.com/the<http://easyrgb.com/the> older Colour Picker conversion is caused because of the illuminant assumptions (EE vs D65)? Do you think I can assume that the easyrgb.com<http://easyrgb.com> conversion -where I can specify D65 as the illuminant- is then correct for my measurements?

Cheers - and thanks again for your help!
Kynthia

From: Greg Ward [mailto:gregoryjward at gmail.com]
Sent: 08 February 2018 19:01
To: Radiance general discussion <radiance-general at radiance-online.org<mailto:radiance-general at radiance-online.org>>
Subject: Re: [Radiance-general] XYZ to RGB conversion - neutral color is not neutral

Hi Kynthia,

Under what lighting does your wall look white?  Your Z value is larger than your Y value, indicating a blue tint under D65 (outdoor) illumination.  This is sometimes the case with white surfaces, where they add extra blue to make the wall appear whiter under interior lighting.  I don't think your color calculation is wrong, although the values are out of range for plastic by a factor of 100 because your measured values are in percent.

You should try measuring the XYZ values under EE (equal energy) white rather than D65.  This will avoid color shifts in your conversion, as xyz_rgb.cal assumes equal-energy white for the XYZ measurements, and this is the same illuminant Radiance assumes in its RGB color space.

Cheers,
-Greg


From: Chamilothori Kynthia <kynthia.chamilothori at epfl.ch<mailto:kynthia.chamilothori at epfl.ch>>

Date: February 8, 2018 7:40:41 AM PST


Dear Radiance community,

I would like your feedback on -another- XYZ to RBG conversion.
I have measurements in the XYZ colorspace from a CM-600d Konica Minolta Spectrophotometer with settings for a 2 degree standard observer and a D65 standard illuminant, both with the specular component included (SCI) and excluded (SCE).

First, I am assuming that I should use the SCE measurements for the plastic materials.
As an example, my SCE measurements of a white wall are X 81.05, Y 85.61 and Z 86.95.

When using the xyz_rgb.cal, the resulting color is R 73.3782327 G 90.3295341 B 86.8467252 - a clearly blue/green color!

Same thing happens when using the Colour Picker for Radiance (http://www.jaloxa.eu/resources/radiance/colour_picker/index.shtml) for a CIE XYZ (1931) input; but not when using the Colour Picker from an older page (http://www.jaloxa.eu/resources/radiance/cp4r.shtml), where the result is R 0.944 G 0.934 B 0.901.
The latter is a neutral color that looks correct, and is also the result when using easyrgb.com<http://easyrgb.com> and specifying the observer and illuminant.

My guess is that I am missing a conversion regarding the illuminant - do you maybe have any input on what I am doing wrong with xyz_rgb.cal?

Thank you for your time and knowledge!
Kynthia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.radiance-online.org/pipermail/radiance-general/attachments/20180208/49fbcb82/attachment.html>


More information about the Radiance-general mailing list