The choice of whitepoint has a major impact on the mapping from XYZ space to RGB space.
(I used Rec.709 primaries and CIE 1931 2 degree Judd Vos CMFs.)
Color matching functions (CMFs) provide the absolute energy values of three primaries which appear the same as each spectrum color. Chromaticity coordinates provide only a relative measure of the ratios of the primaries. We need CMFs so we can integrate over spectra.
XYZ is a linear space, so we can sample the wavelengths of a spectrum, and simply average the XYZ points to get the spectrum's color.
There are several CMFs around. I used the CVRL Color & Vision database's Color Matching Functions
Now, here is a comparision of different CMFs.
|black body curve on the xy chromaticity plane|
Choice of CMF makes some difference, but not much.
(Note, I've chosen points _very_ unevenly distributed in temperature. The real black body radiation curve moves quickly through red, and ends up really glacially bogged down in blue. The points here start on the right at 1000 K using an interval of 250 K, and end on the left at 30000 K using 5000 K steps. I wanted the relative CMF positions to be visible.)
The only reason to use CIE 1931 uncorrected is in its role as a standard. The 2 vs 10 degree choice can be made based on how large the object's image on the retina is. Bigger means lower cone to rod ratio. Thumb at arm's length is about 2 degrees; fist, 10.
But all three are rather dubious. Based on a handful of people, with outliers discarded. I started to explore using something better, but lacked the time. And perhaps one can't escape the large(?) variation among individuals.
(Eventually we can have pixels containing actual spectra, and folks
calibrating displays for their own eyes. But until then...:).
System/primaries comparison section.
Gamma comparison section.
Add D65, D50, (and something else?) tables.
Add 1K/5K ticks to bars.
Intensity compression and nonstandard gammas.
2002-Nov-11 Fixed links broken by CVRL move.