POV-Ray : Newsgroups : povray.general : Erroneous CCT comments in Lightsys IV : Re: Erroneous CCT comments in Lightsys IV Server Time
8 May 2024 03:58:17 EDT (-0400)
  Re: Erroneous CCT comments in Lightsys IV  
From: Ive
Date: 23 May 2016 18:17:20
Message: <57438170$1@news.povray.org>
Am 5/23/2016 um 18:57 schrieb Cousin Ricky:
> Ive <ive### [at] lilysoftorg> wrote:
>> So you are close with B and perfect with C in whatever way you've
>> determined it and thanks for spotting the errors.
>
> Various sources on the Web, but I haven't got behind any pay walls.
>
> Your old C is very close to the new one, and your new B is close to what I found
> for B.  Could this have anything to do with the refinement of the Boltzmann
> constant, or would it be strictly methods of calculating the CCT?  (I'm nowhere
> near where I want to be in color science.)
>
>
>
>

I'm pretty sure it is the way you are calculating it. You can do it in a 
lazy way as I usually did while I was working in the field and accuracy 
really didn't matter (which should not be an excuse for making plain 
mistakes) or you can do it in the way of Robertson who calculates the 
closest distance for a given point in the CIE XYZ color space to the 
blackbody radiation curve. But it requires inverse interpolation of the 
Blackbody temperatures and forward interpolation on a data table and 
other nasty algebra stuff. And nobody likes algebra, right? ;)

"Color Science: Concepts and Methods, Quantitative Data and Formulae"
is not behind a paywall, it is one of this old fashioned things where 
pages are still made of paper. And it is "The Bible" of color science.

http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0471399183.html

Anyway I did add a POV-Ray SDL implementation of Robertson's method 
within CIE.inc. The new version can, as usual, be downloaded from my 
spectral render web page - or directly via

www.lilysoft.org/CGI/SR/LS_SpectralRender.zip

Following the tradition of CIE.inc the new macro is called XYZ2K(XYZ),
it takes a CIE XYZ coordinate as parameter and gives the color 
temperature in Kelvin back.
Here is the way it is called to calculate the B and C illuminants:


//*******************************************************************

#include "CIE.inc"

#declare XYZ_B = xyY2xyz(<Illuminant_B[0], Illuminant_B[1], 1>);
#declare XYZ_C = xyY2xyz(<Illuminant_C[0], Illuminant_C[1], 1>);

#declare KB = XYZ2K(XYZ_B);
#declare KC = XYZ2K(XYZ_C);

#warning concat("Correlated color temperature for illuminant B: 
",str(KB,4,1),"K")
#warning concat("Correlated color temperature for illuminant C: 
",str(KC,4,1),"K")


//*******************************************************************


-Ive


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.