CS580
Illumination and Shading
Ulrich Neumann
CS580
Computer Graphics Rendering
Illumination and shading
Illumination (lighting) and shading
models simulation of light interactions with scene
light sources, geometry, propagation, interaction with surfaces, imaging process in camera
Shading Examples
Images courtesy of Watt, Watt & Watt, and Foley & van Dam
Global versus Local Illumination
Indirect Illumination
Direct
Illumination
Global versus Local Illumination
Global Illumination
Models indirect illumination and occlusions
Reflection
Refraction
Shadows
Local Illumination
Only models
direct illumination
No reflection
No refraction
No shadows
Global versus Local Illumination
Local illumination is a simplified model in which every pixel color is only a function of parameters at that one surface point.
Shadows are based on light visibility.
Inter-reflections are based on reflection path.
Every pixel color is a function of entire scene.
Local Illumination
Global Illumination
Fidelity of Global Illumination
Global illumination effects are modeled with varying degrees of fidelity. Algorithms may produce simple approximations or complex diffusion and shadow effects.
Simple shadows result from binary light visibility tests
Light diffusion produces soft shadows
Light Terminology
Radiant Intensity (I = W/sr)
Illuminating energy emitted by a light source
Irradiance or Illuminance (E = W/m2 )
Light energy falling on a surface area
Radiance or Luminance (L = W/m2/sr)
Light energy reflected by a surface area
Light Source Radiant Intensity
Radiant Intensity per steradian
Ie = power/sr (Watts/steradian)
constant in vacuum at all distances
Ie is constant over distance for a
fixed solid-angle
Solid-angle
sr = surface area (a) of portion of sphere divided by r2
sr = a/r2
Area of sphere surface = 4 pi r2
sr = (4pi r2)/r2 sr = 4pi steradians over sphere of any radius
E = Watt/m2
Energy hitting a surface
Radiance or Power Density
diminishes with “square” of
distance from source
Ie = Power over these areas – a fixed solid-angle
Light Color and Intensity
Ie is specified as coefficients of color spectrum or basis function (RGB, HSV…)
Ie = (R,G,B) | R,G,B [0,1]
three color channels model colored light
Based on human perception (next slide)
arbitrary scale and units
e.g., Ie = (0.1, 0.6, 0.9)
“Color” of light is determined by the
relative levels of RGB intensities
“Brightness” is determined by aggregate or sum of RGB intensities
Color and Perception
Natural light has energy over a
continuous spectrum
We perceive “color”
based on energy
at different frequencies
Energy vs freq histogram
Human eyes have 3 “cone”
sensors that have peaked
sensitivities over different
frequency ranges
3 dimensions (trivariant)
color perception
Color Metamers
Two different spectrums may look like the same color to us since we only sense the levels of three sensor ranges
Differing spectrums that produce the same perceived color are called metamers
RGB color produces a range of perceived colors
that are metamers for
natural light spectrums
What matters is that the three
cone sensors produce the
same brain signals
Metamers are the basis for all
display (and print) technologies
that produce a range of colors
from a mix of basis colors
Propagation
Light interaction in medium or camera
Atmosphere effect, lens effects
We use simple approximations
vacuum – no haze, smoke, thermal shimmer
opaque scene objects – no transparency
ideal camera imaging – no lens flare, color
aberration
FYI: Papers by Ron Henry (USC)
Color Perception through Atmospheric Haze
These are global effects that require
more complex models of lighting,
shading, and cameras than
used for HWs
Modeling Light Source Geometry
Geometry parameters that affect illumination of a scene
Size and shape
Position and orientation
Directional distribution
Ie = f() Directional distribution of intensity can vary for a point-source or a region of an area light-source
Occlusions in the light source structure also modify the intensity and distribution of light energy over different regions in the scene
A large-area source can be approximated
as multiple uniform-intensity regions that
each contribute independently to the scene
Light is addative so complex sources can be
decomposed into a sum of simpler sources
When the source and scene-areas are
small (relative to distance between source and scene), incident intensity can be approximated as a uniform fixed-direction distribution
a far-away source produces a uniform illumination over a scene
Simplified Lighting
The total irradiance E falling on some surface area of a scene requires integral of Ie function over visible hemisphere (prior slide)
even fairly simple cases can be difficult to compute
For simplicity (for HW4) … assume distant point-light sources (e.g., sun, or light bulb in a large room)
Source has uniform radial intensity distribution
E = ~ constant within distances in scene – neglect distance falloff
Solid angle per unit surface area is ~ constant everywhere
Direction to source is constant within scene
This simple approximation of actual physics only requires two parameters to define a light
direction (x,y,z) – vector from surface to light source
intensity (r,g,b) of the light
Irradiance Geometry
Irradiance E: Incident radiant energy per unit area
Diminishes with the cosine of the incident angle
I(x, w) is the light intensity arriving from all directions and entering hemisphere Ω over unit surface area.
Interaction with opaque surfaces
Light hitting an opaque surface reflects a fraction of that light back into the environment.
Two extremes are observed
Mirrors – specular reflection
Incoming ray reflects about
the surface’s normal
perfect mirror has no scattering – just perfect reflection
color shift is possible by attenuation of RGB components
Ideal white chalk – diffuse reflection
Incoming ray scatters equally in all directions (ideal case)
color shift is possible by attenuation of RGB components
Ideal Specular Reflection
Reflection occurs in the “mirror” direction
L is reflected about the normal vector (N) to create R
Ij = Ie Ks Reflected light is attenuated (colored) by Ks
Ks is RGB vector of “specular color” coefficients [0,1]
R
Ie
Ij
Ie and Ij are both RGB color intensity values in their respective vector directions L and R
General Specular Model
Reflection occurs mainly in the “mirror” R direction, but there is some spread in similar directions V (view vector)
Ij(V) = Ie Ks (V•R)spec is the reflected specular intensity in the direction of vector V (for normalized V and R)
Specular reflection is attenuated (colored) by Ks and by the angle between R and V
“spec” exponent controls the
distribution of intensity about R
R
Ie
Ij(V)
Ie and Ij(V) are both RGB color intensity values in their respective vector directions L and V
V
Angle of R and V
(V • R)spec
n = spec
Specular Power
Ij(V) = Ie Ks (V•R)spec
“spec” exponent controls the distribution of energy about R
These images show it’s effect:
Higher values of “spec” produce
smaller, tighter specular
highlights that also make
surfaces appear smoother
R
Ie
Ij(V)
V
Ideal Diffuse Reflection
Reflection or scattering is equal in all directions
for all wavelengths
Rho (ρ) is the ratio of output intensity (in any direction) to input intensity
models the case where L and N are coincident and the surface scatters all wavelengths equally
Ie
Ij
Colored Diffuse Absorption
Reflected intensity Ij = Ie Kd in any direction over the exit hemisphere
Still restricted to case where N and L are coincident
Kd models the absorption (color) of a surface
Kd is RGB vector of “diffuse color” coefficients [0,1] that scale light source Ie RGB components
Ij
Ie
Ij and Ie are RGB color intensity vectors
General Diffuse Model
In the more general case where the direction L varies
Ij = Ie Kd cos() or Ij = Ie Kd (L•N)
cos() accounts for the change in projected surface area of incident light Ie and surface orientation toward/away from light
L•N computes cos () function if L and N are normalized vectors
For either formulation, surfaces facing away from light receive NO illumination
For || || > 90, cos term is clamped to zero. For (L•N) < 0, result is clamped to zero.
Ij
Ie
Ij and Ie are RGB color intensity values
Ie has a direction L
Note that Ij has no specific direction vector associated with it since it is the same over the entire hemisphere defined by N
Ij
General Diffuse Example
Ij = Ie Kd cos() or Ij = Ie Kd (L•N)
cos() accounts for the change in projected surface area of incident light Ie and surface orientation toward/away from light
L•N computes cos () function if L and N are normalized vectors
Kd is RGB vector of “diffuse color” coefficients in range [0,1]
Two lights (UL and LR) produce diffuse reflections on spheres
Diffuse reflection on a sphere from one light
diffuse reflection on a teapot
How many lights?
Combined Specular and Diffuse Reflection
Real materials exhibit a mix of both diffuse and specular reflection characteristics
The diffuse intensity is constant and a bulge or peak of specular intensity occurs near the R direction
A camera “sees” the energy emitted in it’s direction (V or E)
V or E direction
points toward
the viewer, eye, or camera
N
L
R
E
Ie
Examples of Combined Model
The reflection distribution can be a sharp-peak or a broad-bump of reflected energy in the R direction, controlled by the specular-power “spec”
The diffuse reflection produces smooth color variation over the model portion facing the light(s) (view-independent)
The specular reflection produces a highlight that moves as the viewpoint (E) changes (view-dependent)
Where is the sphere bottom?
N
L
R
E
Ie
Ambient Light
Surfaces facing away from a light will be black
No diffuse or specular reflection intensity
To avoid this, create a special light that hits all surfaces
A lumped omnidirectional source is called the ambient light
Ambient light Ia is an fixed intensity vector and
considered “normal” to all surfaces
Ambient light produces an additional diffuse-like
reflection called an ambient reflection
Ka is specified for materials as the “ambient color”
Use separate Ka for HW4
other systems may set Ka = Kd
Only one ambient light is needed and allowed
With ambient light
Without ambient light
Specular, Diffuse, and Ambient
Reflection Components
All 3 reflection behaviors create a complete shading model
Specular reflection intensity
specular component = Ie Ks (RE)spec
Diffuse reflection intensity
diffuse component = Ie Kd (NL)
Ambient reflection intensity
ambient component = Ia Ka
E or V
Complete Shading Equation
Surface color seen by camera at a surface point is modeled by summing the light-surface interactions over all lights
Color C = lights specular + diffuse + ambient components
= (Ks [Ie (RE)s]) + (Kd [Ie (NL)]) + (Ka Ia)
S is a scalar
C, Ie, Ks, Kd, Ka, Ia – are all RGB color vectors ( [0, 1])
R = reflected ray direction vector (normalized)
E = eye ray direction vector (normalized)
N = surface normal vector (normalized)
L = light ray direction vector (normalized)
Specular Power Variations
Parameter Example
with varied Kd, Ks, and spec pwr
Observations about Specular, Diffuse, and Ambient Reflection Components
Absorption (or color) for each reflection component is modeled by
Ks, Kd, Ka ---- each is a vector of fractional attenuations [0,1]
For most real materials, these equations are only approximate
Cos laws approximate the behavior of light with real materials
K terms are often a function of incident/reflection angle and wavelength
Surface appearance is set by specifying Kd, Ks, Ka and spec power s
Kd, Ks, Ka [0,1] for each rgb vector element
Sharpness of specular highlight is controlled by specular power “s”
“s” is often constrained
to be a binary power
for fast calculation
(1, 2, 4, 8, 16, 32, … )
The surface reflection model
applies to any geometry, but
Normal vector at each point
determines appearance
Implementing the Shading Equation
Color C = lights specular + diffuse + ambient components
= (Ks [Ie (RE)s]) + (Kd [Ie (NL)]) + (Ka Ia)
C, Ie, Ks, Kd, Ka, Ia – are all RGB color vectors ( [0, 1])
R = reflected ray direction vector (normalized)
E = eye ray direction vector (normalized)
N = surface normal vector (normalized)
L = light ray direction vector (normalized)
This is an approximate model of illumination of opaque surfaces
But…, geometry is involved -- dot products, cosines
Recall that the rasterizer operates on coordinates after perspective projection. Perspective does not preserve angles or lengths.
Lighting calculations must be done in some space before the perspective projection.
Model, world, or image space?
2
P
1
P
ò
W
=
w
q
w
d
x
I
E
cos
)
,
(
q
)
,
(
w
x
I
W
N
L
diffuse
Ie
Ij
r
=