Title: CS 445 / 645 Introduction to Computer Graphics
1CS 445 / 645Introduction to Computer Graphics
2Lighting Review
- Lighting Models
- Ambient
- Normals dont matter
- Lambert/Diffuse
- Angle between surface normal and light
- Phong/Specular
- Surface normal, light, and viewpoint
3Applying Illumination
- We now have an illumination model for a point on
a surface - Assuming that our surface is defined as a mesh of
polygonal facets, which points should we use? - Keep in mind
- Its a fairly expensive calculation
- Several possible answers, each with different
implications for the visual quality of the result
4Applying Illumination
- With polygonal/triangular models
- Each facet has a constant surface normal
- If the light is directional, the diffuse
reflectance is constant across the facet. Why?
5Flat Shading
- The simplest approach, flat shading, calculates
illumination at a single point for each polygon - If an object really is faceted, is this accurate?
6Is flat shading realistic for faceted object?
- No
- For point sources, the direction to light varies
across the facet
7Flat Shading
- We can refine it a bit by evaluating the Phong
lighting model at each pixel of each polygon, but
the result is still clearly faceted - To get smoother-looking surfaceswe introduce
vertex normals at eachvertex - Usually different from facet normal
- Used only for shading
- Think of as a better approximation of the real
surface that the polygons approximate
8Vertex Normals
- Vertex normals may be
- Provided with the model
- Computed from first principles
- Approximated by averaging the normals of the
facets that share the vertex
9Gouraud Shading
- This is the most common approach
- Perform Phong lighting at the vertices
- Linearly interpolate the resulting colors over
faces - Along edges
- Along scanlines
C1
c1 t1(c2-c1)
- This is what OpenGL does
- Does this eliminate the facets?
C3
C2
c1 t1(c2-c1) t3(c1 t2(c3-c1)- c1
t1(c2-c1))
c1 t2(c3-c1)
10Gouraud Shading
- Artifacts
- Often appears dull, chalky
- Lacks accurate specular component
- If included, will be averaged over entire polygon
11Gouraud Shading
- Artifacts
- Mach Banding
- Artifact at discontinuities in intensity or
intensity slope
C1
C4
C3
C2
Discontinuity in rateof color changeoccurs here
12Phong Shading
- Phong shading is not the same as Phong lighting,
though they are sometimes mixed up - Phong lighting the empirical model weve been
discussing to calculate illumination at a point
on a surface - Phong shading linearly interpolating the surface
normal across the facet, applying the Phong
lighting model at every pixel - Same input as Gouraud shading
- Usually very smooth-looking results
- But, considerably more expensive
13Phong Shading
- Linearly interpolate the vertex normals
- Compute lighting equations at each pixel
- Can use specular component
N1
N4
Remember Normals used in diffuse and specular
terms Discontinuity in normals rate of change
is harder to detect
N3
N2
14Shortcomings of Shading
- Polygonal silhouettes remain
Gouraud Phong
15Perspective Distortion
Imageplane
Break up large polygonswith many smaller ones
i
i
i
i
i
i
u
u
u
u
u
u
Z into the scene
Notice that linear interpolation in screen
spacedoes not align with linear interpolation in
world space
16Perspective Distortion
Imageplane
Break up large polygonswith many smaller ones
Z into the scene
Notice that linear interpolation in screen
spacedoes not align with linear interpolation in
world space
17Interpolation dependent on polygon orientation
Rotate -90oand colorsame point
18Problems at Shared Vertices
Vertex B is shared by the two rectangles on the
right, but not by the one on the left
C
H
D
The first portion of the scanlineis interpolated
between DE and ACThe second portion of the
scanlineis interpolated between BC and GHA
large discontinuity could arise
B
G
F
E
A
19Bad Vertex Averaging
20Shading Models (Direct lighting)
- Flat Shading
- Compute Phong lighting once for entire polygon
- Gouraud Shading
- Compute Phong lighting at the vertices and
interpolate lighting values across polygon - Phong Shading
- Compute averaged vertex normals
- Interpolate normals across polygon and perform
Phong lighting across polygon
21Global Illumination
- Weve glossed over how light really works
- And we will continue to do so
- One step better
- Global Illumination
- The notion that a point is illuminated by more
than light from local lights it is illuminated
by all the emitters and reflectors in the global
scene
22The Rendering Equation
- Jim Kajiya (Current head of Microsoft Research)
developed this in 1986 - I(x, x) is the total intensity from point x to
x - g(x, x) 0 when x/x are occluded and 1/d2
otherwise (d distance between x and x) - e(x, x) is the intensity emitted by x to x
- r(x, x,x) is the intensity of light reflected
from x to x through x - S is all points on all surfaces
23The Rendering Equation
- The light that hits x from x is the direct
illumination from x and all the light reflected
by x from all x - To implement
- Must handle recursion effectively
- Must support diffuse and specular light
- Must model object shadowing
24Shading Models (Indirect lighting)
25Recursive Ray Tracing
- Cast a ray from the viewers eye through each
pixel - Compute intersection of this ray with objects
from scene - Closest intersecting object determines color
26Recursive Ray Tracing
- Cast a ray from intersected object to light
sources and determine shadow/lighting conditions - Also spawn secondary rays
- Reflection rays and refraction rays
- Use surface normal as guide (angle of incidence
equals angle of reflection) - If another object is hit, determine the light it
illuminates by recursing through ray tracing
27Recursive Ray Tracing
- Stop recursing when
- ray fails to intersect an object
- user-specified maximum depth is reached
- system runs out of memory
- Common numerical accuracy error
- Spawn secondary ray from intersection point
- Secondary ray intersects another polygon on same
object
28Recursive Ray Tracing
- Still producing PhDs after all these years
- Many opportunities to improve efficiency and
accuracy of ray tracing - Reduce the number of rays cast
- Accurately capture shadows caused by non-lights
(ray tracing from the light source) - Expensive to recompute as eyepoint changes
29Image Synthesis Class
- Prof. Humphreys is looking for students
- Modeled after Stanford course (lets beat em)
- See http//graphics.stanford.edu/courses/cs348b-c
ompetition/
30Radiosity
- Ray tracing models specular reflection and
refractive transparency, but still uses an
ambient term to account for other lighting
effects - Radiosity is the rate at which energy is emitted
or reflected by a surface - By conserving light energy in a volume, these
radiosity effects can be traced