Upload
sugar
View
29
Download
0
Tags:
Embed Size (px)
DESCRIPTION
CS 445 / 645: Introductory Computer Graphics. Light. Fiat Lux. Learn more about Paul Debevec’s research http://www.debevec.org/FiatLux/h. Administrivia. Assignment 3 Due Sunday, October 21 st at Midnight Midterm Exam Tuesday, October 23 rd See web page for reading material - PowerPoint PPT Presentation
Citation preview
CS 445 / 645: Introductory Computer Graphics
Light
Fiat Lux
Learn more about Paul Debevec’s research– http://www.debevec.org/FiatLux/h
Administrivia
Assignment 3 Due– Sunday, October 21st at Midnight
Midterm Exam– Tuesday, October 23rd
– See web page for reading material– More review info in class after break
Lighting and Shading
Lighting Models– Ambient
Normals don’t matter
– Lambert/Diffuse Angle between surface normal and light
– Phong/Specular Surface normal, light, and viewpoint
Shading Models…
Applying 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:– It’s a fairly expensive calculation– Several possible answers, each with different
implications for the visual quality of the result
Applying 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
Flat Shading
The simplest approach, flat shading, calculates illumination at a single point for each polygon:
If an object really is faceted, is this accurate?
Is flat shading realistic for faceted object?
No:– For point sources, the direction to light varies
across the facet
– For specular reflectance, direction to eye varies across the facet
Flat 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
Vertex 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
Gouraud 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
C2
C3
c1 + t1(c2-c1)
c1 + t2(c3-c1)c1 + t1(c2-c1) + t3(c1 + t2(c3-c1)- c1 + t1(c2-c1))
– This is what OpenGL does Does this eliminate the facets?
Gouraud Shading Artifacts
– Often appears dull, chalky– Lacks accurate specular component
If included, will be averaged over entire polygon
C1
C2
C3
Can’t shade that effect!
Gouraud Shading
C1
C2
C3
Artifacts– Mach Banding
Artifact at discontinuities in intensity or intensity slope
C4
Discontinuity in rateof color change
occurs here
Phong Shading
Phong shading is not the same as Phong lighting, though they are sometimes mixed up– Phong lighting: the empirical model we’ve 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
Phong Shading
Linearly interpolate the vertex normals– Compute lighting equations at each pixel– Can use specular component
N1
N2
N3
N4
lights
i
n
sdiambientatotalshinyRVkLNkIIkI
#
1
ˆˆˆˆ
Remember: Normals used in diffuse and specular terms
Discontinuity in normal’s rate of change is harder to detect
Shortcomings of Shading
Polygonal silhouettes remain
Gouraud Phong
Perspective Distortion
Z – into the scene
Imageplane
Notice that linear interpolation in screen spacedoes not align with linear interpolation in world space
Break up large polygonswith many smaller ones
Perspective Distortion
Notice that linear interpolation in screen spacedoes not align with linear interpolation in world space
Z – into the scene
Imageplane
Break up large polygonswith many smaller ones
Interpolation dependent on polygon orientation
A
D
C
B
B
A
D
C
Interpolate betweenAB and AD
Interpolate betweenAB and BC
Rotate -90o
and colorsame point
Problems at Shared Vertices
B
A
C
Vertex B is shared by the two rectangles on the right, but not by the one on the left
E
D
F
H
GThe first portion of the scanlineis interpolated between DE and AC
The second portion of the scanlineis interpolated between BC and GH
A large discontinuity could arise
Bad Vertex Averaging
Global Illumination
We’ve 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
The ‘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’) (x, x’) is the intensity emitted by x’ to x (x, x’,x’’) is the intensity of light reflected from x’’ to
x through x’ S is all points on all surfaces
S
dxxxIxxxxxxxgxxI '''',''',',',',',
The ‘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
Recursive Ray Tracing
Cast a ray from the viewer’s eye through each pixel
Compute intersection of this ray with objects from scene
Closest intersecting object determines color
Recursive 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
Recursive 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
Recursive Ray Tracing
Still producing PhD’s 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
Radiosity
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