Illumination and Direct Reflection Kurt Akeley CS248 Lecture 12 1 November 2007
Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007
-
date post
15-Jan-2016 -
Category
Documents
-
view
217 -
download
0
Transcript of Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007
![Page 1: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/1.jpg)
Color Theory
Kurt Akeley
CS248 Lecture 17
27 November 2007
http://graphics.stanford.edu/courses/cs248-07/
![Page 2: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/2.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Introduction
Difficulties:
I’m learning this too
Terminology is used carelessly
There are lots of standards CIE 1931, CIE 1964, Vos 1976, SMJ 1993, …
Caveats:
Not comprehensive Lots of CIE content, nothing on HSV or video
Units may be off (or missing all together)
Derived plots may differ slightly from standards
…
![Page 3: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/3.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Human photoreceptors
www.stat.auckland.ac.nz/~ihaka/787/lectures-vision.pdf
Monochromatic scotopic vision
(low light levels)
Chromatic photopic vision
(high light levels)
There is a view direction (despite
what I told you). It doesn’t affect the projection, but it does affect the nature of the
receptor array.
![Page 4: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/4.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Humans are trichromats
Spectral sensitivities of human cones
Stockman, MacLeod, and JohnsonJournal of the Optical Society of
AmericaVolume 10, Number 12, December
1993Table 8
Monochromatic
stimulus
Determined by chemistry and
retinal coverage
LM
S
Monochromat: Horshoe crabs
Dichromat: dogsTrichromat: people, most
camerasTetrachromat: fancy
camerasPentachromat: Mallard
ducks[L M S] = EvalSmjSRF(lambda);[0.0197 0.0372 0.0104] =
EvalSmjSRF(470);All three contributions are
non-zero (the plots overlap)!
![Page 5: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/5.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Luminosity function
Sum of L, M, and S responses for
photopic vision ?(FvD pp. 576)
![Page 6: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/6.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Comparison of luminosity functions
Derived from SMJ spectral-response
data by simple addition
From Wikipedia
Yes, the units are different. We are interested in the
shapes.
![Page 7: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/7.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Luminous efficacy (and efficiency)
How much of the radiated energy (efficacy/efficiency) or wall-socket energy (overall efficacy/efficiency) of a light source is usable for vision?
Integrate the product of the luminosity function with the spectrum of the light source.
Source: Wikipedia
![Page 8: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/8.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Metamers
Response is linear
So response to an energy spectrum is the sum of the responses to the individual spectral components
Same integration as for luminous efficiency, but done separately for L, M, and S, rather than for their sum
Many different spectra will produce the same L,M,S response
These spectra are metamers
Metamers are form of aliasing: undersampling (only three cone types) causes different signals to appear equivalent
This aliasing is very convenient …
![Page 9: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/9.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 RGB primaries
λB=435 nm
λG=546 nm
λR=700 nm[L M S] = EvalSmjSRF(700)*Sr + EvalSmjSRF(546)*Sg + EvalSmjSRF(435)*Sb);
M = [ EvalSmjSRF(700) EvalSmjSRF(546) EvalSmjSRF(435) ]; R = 1; G = 1; B = 1;
[L M S] = [R G B] * M;
![Page 10: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/10.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
RGB color-matching function
M = [ EvalSmjSRF(700) EvalSmjSRF(546) EvalSmjSRF(435) ]; R = 1; G = 1; B = 1;
[L M S] = [R G B] * M;
[R G B] = [L M S] * Minv;
CMF(lambda) = EvalSmjSRF(lambda) * Minv;
What proportion of the R, G, and B primaries is required to match a spectral color?
![Page 11: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/11.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
RGB color-matching function
Primary amplitudes are adjusted to give
equal areas under all three color-matching
curves
Oops, what is a negative
primary contribution?
![Page 12: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/12.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
RGB color-matching function
W = DomainSmjSRF(1);len = length(W);% compute M assuming equal-intensity primariesM = [ EvalSmjSRF(Rnm) * 1 EvalSmjSRF(Gnm) * 1 EvalSmjSRF(Bnm) * 1];Minv = inv(M);% integrate the color-matching functionCMFsum = [0 0 0];for n = 1 : len CMFsum = CMFsum + EvalSmjSRF(W(n)) * Minv;end% recompute M such that the color-matching curves have equal integrals% this amounts to scaling the primary intensities by Rs, Gs, and BsRs = CMFsum(1) / CMFsum(3);Gs = CMFsum(2) / CMFsum(3);Bs = 1;M = [ EvalSmjSRF(Rnm) * Rs EvalSmjSRF(Gnm) * Gs EvalSmjSRF(Bnm) * Bs];Minv = inv(M);% compute the color-matching functionCMF = zeros(len, 3);for n = 1 : len CMF(n,:) = EvalSmjSRF(W(n)) * Minv;end
[390 391 392 … 729 730]
![Page 13: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/13.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Negative primaries
Can’t add a negative primary amount
So a negative match adds the (opposite of) the negative amount to the source being matched, rather than to the matching light
Sensible but awkward
![Page 14: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/14.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 XYZ primaries
Derived by linear transformation from the RGB primaries:
The matrix coefficients were (obviously) chosen carefully
We’ll see some of the desirable properties in later slides
The XYZ primaries are imaginary
They do not correspond directly to amounts of light
But they are very useful …
[ ] [ ]0.49 0.17697 0.00
10.31 0.81240 0.01
0.176970.20 0.01063 0.99
X Y Z R G B
é ùê úê ú= × ×ê úê úë û
![Page 15: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/15.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 XYZ color-matching function
Intended property:
Y = luminosity
Intended property:
non-negative
![Page 16: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/16.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
A special metamer
400 nm
700 nm
Energy density
wd
e1
e2
Dominant wavelength = wd
Excitation purity = (e2-e1) / (e2+e1)
Luminance is related to the integration of the spectrum (as we saw before)
These determine
chromaticity
![Page 17: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/17.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
XYZ chromaticity
Rescale X, Y, and Z to remove luminance, leaving chromaticity:
Because the sum of the chromaticity values x, y, and z is always 1.0, a plot of any two of them loses no information
Such a plot is a chromaticity plot
X Y Z
x y zX Y Z X Y Z X Y Z
= = =+ + + + + +
![Page 18: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/18.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
xz chromaticity
You’ve never seen this plot, but it is
perfectly valid. The standard plots the x and y chromaticity
values.
![Page 19: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/19.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 xy chromaticity (derived from SMJ data)
Intended property:
non-negative
Intended property:
white point at(1/3, 1/3, 1/3)
Intended property:
fitted to edge of right triangle
![Page 20: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/20.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 xy chromaticity (actual CIE standard)
Image from www.wikipedia.com
Pure (saturated) spectral colors around the edge of the
plot
Less pure (desaturated) colors in the interior of
the plot
White at the centroid of the plot
(1/3, 1/3)
Are the colors correct ?
![Page 21: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/21.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 rg chromaticity (derived from SMJ data)
Intended property:
white point at(1/3, 1/3, 1/3)
![Page 22: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/22.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
rb chromaticity (derived from SMJ data)
Intended property:
white point at(1/3, 1/3, 1/3)
![Page 23: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/23.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Gamut
Gamut is the chromaticities that can be generated by a set of primaries
Because everything we’ve done is linear, interpolation between chromaticities on a chromaticity plot is also linear
Thus the gamut is the convex hull of the primary chromaticities
What is the gamut of the CIE 1931 primaries?
![Page 24: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/24.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
CIE 1931 RGB gamut
R = 700 nm
G = 546 nm
B = 438 nm
All dominant wavelengths can be
reproduced, but many cannot reach full
saturation.
No finite set of primaries can
reproduce the entire gamut. But more
primaries do a better job.
So the colors on the xy chromaticity diagram
cannot be correct, because no display
can accurately reproduce them!
![Page 25: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/25.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
MATLAB code
RGBr = EvalSmjSRF(Rnm) * Minv;RGBg = EvalSmjSRF(Gnm) * Minv;RGBb = EvalSmjSRF(Bnm) * Minv;XYZr = RGBr * CieM;XYZg = RGBg * CieM;XYZb = RGBb * CieM;xyzr = XYZr / (XYZr(1) + XYZr(2) + XYZr(3));xyzg = XYZg / (XYZg(1) + XYZg(2) + XYZg(3));xyzb = XYZb / (XYZb(1) + XYZb(2) + XYZb(3));
…
plot([xyzr(1) xyzg(1) xyzb(1) xyzr(1)], ... [xyzr(2) xyzg(2) xyzb(2) xyzr(2)], ... ‘c.-', 'linewidth', lw);
![Page 26: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/26.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Short-persistence phosphor CRT gamut
![Page 27: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/27.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Long-persistence phosphor CRT gamut
![Page 28: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/28.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
LCD projector gamut (hypothetical)
![Page 29: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/29.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
MATLAB and dichroic filter source
RGBr = [0 0 0];RGBg = [0 0 0];RGBb = [0 0 0];for n = 1 : len TF = EvalDichroicRgbTF(W(n)); RGBr = RGBr + (TF(1) .* CMF(n,:)); RGBg = RGBg + (TF(2) .* CMF(n,:)); RGBb = RGBb + (TF(3) .* CMF(n,:));endXYZr = RGBr * CieM;XYZg = RGBg * CieM;XYZb = RGBb * CieM;xyzr = XYZr / (XYZr(1) + XYZr(2) + XYZr(3));xyzg = XYZg / (XYZg(1) + XYZg(2) + XYZg(3));xyzb = XYZb / (XYZb(1) + XYZb(2) + XYZb(3));
…
plot([xyzr(1) xyzg(1) xyzb(1) xyzr(1)], ... [xyzr(2) xyzg(2) xyzb(2) xyzr(2)], ... ‘c.-', 'linewidth', lw);
Image from www.edmundoptics.com
Realistic primaries have wide
spectrums. Why?
Assumes projector light
has flat spectrum (wrong)
![Page 30: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/30.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Subtractive color
We have been adding primaries with spectra that are (almost) mutually exclusive
This works for displays, but not for printing It could work for printing, if dye were reflective and
could be placed in very small, non-overlapping, regions
But (I guess) this doesn’t work well, so instead ink is designed to block light, and to be mixed on the surface of a white page
Typical (additive) RGB filters have transmission functions like these:
What would you expect the transmission functions of subtractive filters to look like?
![Page 31: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/31.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Subtractive color
Image from www.edmundoptics.com
![Page 32: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/32.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Additive and subtractive primaries
The statement that “the additive primaries are red, green, and blue” is clearly incorrect
Any set of three non-colinear primaries yields a gamut
Primaries that appear red, green, and blue are a good choice, but not the only choice
Additional (non-colinear) primaries are always better
Likewise, the statement that “the subtractive primaries are magenta, cyan, and yellow” is also incorrect, for the same reasons
Subtractive primaries must collectively block the entire visible spectrum, but many sets of blockers that do so are acceptable “primaries”
The use of black ink (the k in cmyk) is a good example
Modern ink-jet printers often have 6 or more ink colors
![Page 33: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/33.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Final thoughts
CIE RGB and CIE XYZ are color spaces
Many other color spaces, with different strengths and weaknesses, are possible
Refer to Marc Levoy’s 2006 CS248 lecture notes for many details: http://graphics.stanford.edu/courses/cs248-06/color/
color1.html
![Page 34: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/34.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Summary
Perceived color is the ratio of (linear) L, M, and S stimulation
It is not possible to distinguish between “metamers”
Three degrees of freedom need for (at least) three primaries
Everything derives from the human spectral-response function
Luminosity function (I think)
Reasonable choices for primaries
Color-matching functions (RGB and XYZ)
Chromaticity diagrams (rg and xy)
Three primaries cannot reproduce the entire human gamut
Use chromaticity diagram to understand what can be reproduced
Subtractive colors
Are a convenient fiction (like ‘holes’ in semiconductor theory)
The true color arithmetic is unchanged
![Page 35: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/35.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
Assignments
Next lecture: Some combination of lighting theory and z-buffer theory, TBD (Thursday 29 November)
Reading assignment: none (work on your projects)
![Page 36: Color Theory Kurt Akeley CS248 Lecture 17 27 November 2007](https://reader036.fdocuments.net/reader036/viewer/2022070412/56649d5e5503460f94a3e310/html5/thumbnails/36.jpg)
CS248 Lecture 17 Kurt Akeley, Fall 2007
End