Color and Radiometry
Digital Image Synthesis Yung-Yu Chuang
10/19/2006
with slides by Pat Hanrahan and Matt Pharr
Radiometry
• Radiometry: study of the propagation of
electromagnetic radiation in an environment
• Four key quantities: flux, intensity, irradiance and radiance
• These radiometric quantities are described by their spectral power distribution (SPD)
• Human visible light ranges from 370nm to 730nm
1 1 02
1 04
1 06
1 08
1 01 0
1 01 2
1 01 4
1 01 6
1 01 8
1 02 0
1 02 2
1 02 4
1 02 6
1 01 6
1 01 4
1 01 2
1 01 0 1 08
1 06
1 04
1 02
1 1 0-2
1 0-4
1 0-6
1 0-8 Cosm ic
Ra y s Ga m m a
Ra y s X -Ra y s
Ultra - V iolet Infra -
Red Ra d io
H ea t Pow er
7 0 0 6 0 0 5 0 0 4 0 0
IR R G B UV
W a velength (N M )
Spectral power distribution
fluorescent light (日光燈)
400nm (bluish)
650nm (red) 550nm
(green)
Spectral power distribution
lemmon skin
Color
• Need a compact, efficient and accurate way to represent functions like these
• Find proper basis functions to map the infinite- dimensional space of all possible SPD functions to a low-dimensional space of coefficients
• For example, B(λ)=1, a bad approximation
Spectrum
• In core/color.*
• Not a plug-in, to use inline for performance
• Spectrum stores a fixed number of samples at a fixed set of wavelengths. Better for smooth functions.
#define COLOR_SAMPLE 3 class COREDLL Spectrum { public:
<arithmetic operations>
private:
float c[COLOR_SAMPLES];
...
}
component-wise
+ - * / comparison…
Why is this possible? Human vision system We actually sample RGB
Human visual system
• Tristimulus theory: all visible SPDs can be accurately represented for human observers with three values, xλ, yλ and zλ.
• The basis are the spectral matching curves, X(λ), Y(λ) and Z(λ).
∫
∫
∫
=
=
=
λ λ λ λ λ λ
λ λ
λ
λ λ
λ
λ λ
λ
d Z
S z
d Y
S y
d X
S x
) ( ) (
) ( ) (
) ( )
(
XYZ basis
360 830
pbrt has discrete versions (sampled every 1nm) of these bases in core/color.cpp
XYZ color
• It’s, however, not good for spectral computation. A
product of two SPD’s XYZ values is likely different from the XYZ values of the SPD which is the product of the two original SPDs.
• Hence, we often have to convert our samples (RGB) into XYZ
void XYZ(float xyz[3]) const { xyz[0] = xyz[1] = xyz[2] = 0.;
for (int i = 0; i < COLOR_SAMPLES; ++i) { xyz[0] += XWeight[i] * c[i];
xyz[1] += YWeight[i] * c[i];
xyz[2] += ZWeight[i] * c[i];
} }
Conversion between XYZ and RGB
float Spectrum::XWeight[COLOR_SAMPLES] = { 0.412453f, 0.357580f, 0.180423f
};
float Spectrum::YWeight[COLOR_SAMPLES] = { 0.212671f, 0.715160f, 0.072169f
};
float Spectrum::ZWeight[COLOR_SAMPLES] = { 0.019334f, 0.119193f, 0.950227f
};
Spectrum FromXYZ(float x, float y, float z) { float c[3];
c[0] = 3.240479f * x + -1.537150f * y + - 0.498535f * z;
c[1] = -0.969256f * x + 1.875991f * y + 0.041556f * z;
c[2] = 0.055648f * x + -0.204043f * y + 1.057311f * z;
return Spectrum(c);
}
Basic radiometry
• pbrt is based on radiative transfer: study of the transfer of radiant energy based on radiometric principles and operates at the geometric optics level (light interacts with objects much larger than the light’s wavelength)
• It is based on the particle model. Hence,
diffraction and interference can’t be easily accounted for.
Basic assumptions about light behavior
• Linearity: the combined effect of two inputs is equal to the sum of effects
• Energy conservation: scattering event can’t produce more energy than they started with
• No polarization: that is, we only care the frequency of light but not other properties
• No fluorescence or phosphorescence:
behavior of light at a wavelength doesn’t affect the behavior of light at other wavelengths
• Steady state: light is assumed to have reached equilibrium, so its radiance distribution isn’t changing over time.
Fluorescent materials
Flux (Φ)
• Radiant flux, power
• Total amount of energy passing through a surface per unit of time (J/s,W)
Irradiance (E)
• Area density of flux (W/m2)
dA E dΦ
=
4 r2
E π
= Φ
E ΦA
= E ΦcosA θ
= Lambert’s law Inverse square law
Angles and Solid Angles
• Angle
• Solid angle
The solid angle subtended by a surface is defined as the surface area of a unit sphere covered by the surface's projection onto the sphere.
l θ = r
2
A Ω = R
⇒ circle has 2π radians
⇒ sphere has 4π steradians
Intensity (I)
• Flux density per solid angle
• Intensity describes the directional distribution of light
ω d I dΦ
=
( ) d I ω d
ω
≡ Φ
Radiance (L)
• Flux density per unit area per solid angle
• Most frequently used,
remains constant along ray.
• All other quantities can be derived from radiance
⊥
= Φ
dA d
L d
ω
Calculate irradiance from radiance
dA
θ
dω
) ,
( x ω
L
x
Ω
∫
Φ =
= L x
ω θ
dω
dA x d
E( ) ( , )cos
Light meter
Irradiance Environment Maps
Radiance
Environment Map
Irradiance
Environment Map
R N
( , )
L θ ϕ E ( , ) θ ϕ
Differential solid angles
dφ
dθ θ
φ
r sin
r θ
Goal: find out the relationship between dω and dθ, dψ
Differential solid angles
dφ
dθ θ
φ
r sin
r θ
2
( )( sin )
sin
dA r d r d
r d d
θ θ φ
θ θ φ
=
=
Goal: find out the relationship between dω and dθ, dψ
By definition, we know that
1 when =
= dA r
dω
2 sin
d dA d d
ω = r = θ θ φ φ θd d cos
−
=
Differential solid angles
dφ
dθ θ
φ
r sin
r θ
We can prove that Ω =
∫
=2
4
S
dω π
Differential solid angles
dφ
dθ θ
φ
r sin
r θ
We can prove that Ω =
∫
=2
4
S
dω π
π
θ π
θ θ φ
φ θ θ ω
π π
π π
4
cos 2
sin
sin
1 1
0 2
0
0 2
0
2
=
−
=
=
=
= Ω
∫
∫
∫
∫
∫
∫
− d
d d
d d d
S
Isotropic point source
If the total flux of the light source is Φ,
what is the intensity?
Isotropic point source
2
4
S
I d I
ω π
Φ =
=
∫
I 4
π
= Φ
If the total flux of the light source is Φ,
what is the intensity?
Warn’s spotlight
θ
If the total flux is Φ, what is the intensity?
θ
ω
SI ( ) ∝ cos
Warn’s spotlight
θ
If the total flux is Φ, what is the intensity?
⎩ ⎨
⎧ ≥
= otherwise
I c
S
0 ) cos
(
2θ
πω θ
1 S
c 2 0
1 1
S c y 2
cos cos
c 2 cos
cos
1 S
1
0 1
0 2
0
= +
=
=
= +
=
= Φ
+
∫
∫
∫
π π
θ θ
π φ
θ
π
θ
y y
d d
d
c
S S+ Φ
= 2 π
1
c S
Irradiance: isotropic point source
θ h
Φ
What is the irradiance for this point?
Irradiance: isotropic point source
θ h
Φ
r
θ cos r = h
2
cos 4
4 dA r
d dA
Id dA
E d θ
π ω
π
ω Φ
Φ =
= Φ =
=
π ω 4
= Φ
= Φ d I d
Lambert law
Inverse square law
Irradiance: isotropic point source
θ h
Φ
r
θ cos r = h
2 3 2
cos 4
cos 4
4 dA r h
d dA
Id dA
E d θ
π θ
π ω
π
ω Φ
Φ = Φ =
= Φ =
=
π ω 4
= Φ
= Φ
d
I d
Photometry
( ) ( )
Y = ∫ V λ L λ λ d
Luminance