2. CS 354 2
Today’s material
In-class quiz
On surfaces & programmable tessellation
lecture
Lecture topic
What to study for the final
3. CS 354 3
On a sheet of paper
Daily Quiz • Write your EID, name, and date
• Write #1, #2, #3, #4 followed by its answer
1. How many control points
specify a bi-cubic Bezier path?
Multiple choice: Subdivision
surfaces repeatedly apply
these two steps
a) refinement & smoothing
3. How many control points
specify a Bezier triangle patch? b) divide & conquer
c) sort & merge
4. Programmable tessellation d) push & pop
relies on two programmable
shader stages. What are the e) push & pull
names of these two stages?
(Give either the OpenGL or
Direct3D names.)
4. CS 354 4
Last time, this time
Last lecture, we discussed
Surfaces, programmable tessellation,
non-photorealistic graphics
This lecture
Review for the final
Course-Instructor survey
Last 10 minutes of class
Projects
Project 4 on ray tracing on Piazza
Due Thursday May 3, 2012 (extended)
As announced, no slip days
Arrange your demo with TA for Friday, May 4
6. CS 354 6
What will you learn
What you should have learned
Fundamentals of computer graphics
Transformations and viewing
Rasterization and ray tracing
Lighting and shading
Graphics hardware technology
Mathematics for computer graphics
Practical graphics programming
OpenGL programming
Shader programming
Performance analysis
7. CS 354 7
When and where
is the final exam?
Thursday, May 10, 2:00-5:00 pm
Three hours
Afternoon
Burdine 116
Same room as
weekly lecture
you are here
8. CS 354 8
Exam Instructions & Policies
Open textbook
Open notes, including lecture slides
Calculators allowed/encouraged
Prohibitions
No smart phones
No computers
No Internet access
Show your work to justify your answer and
provide a basis for partial credit
Sit with an empty seat between each student
9. CS 354 9
Final exam generalities
Cumulative
Covers material in both halves of the course
Revisit your mid-term & homework assignments
Knowledge from projects
Textbook readings
1/3 first half, 2/3 second half
Exam structure
Math questions
Concept questions
Some multiple choice, some fill-in-the-blank, some true-or-
false
No essay questions; some “explain briefly” questions
About 80% longer than mid-term
10. CS 354 10
Final exam scope
Every lecture is covered by at least one
exam question
Concepts developed in the projects is fair
game
Variations of quiz questions, sometimes
lifted exactly
See Piazza for all the quiz answers
Search for #quiz
11. CS 354 11
Bezier Curve Formulation
Given control points, specify parametric
formula for Bezier curve
Quadratic (3 control points)
P0*(1-t)2 + 2*P1*(1-t)*t + P2*t2
Cubic (4 control points)
P0*(1-t)3 + P1*3*t*(1-t)2 + P2*3*t2*(1-t)+P3*t3
Be prepared to evaluate the Bezier curve
for various values of “t”
12. CS 354 12
Bezier Curves
Geometric intuition
Given four cubic Bezier control points
P0, P1, P2, P3
What is the geometric interpretation of the
vector from P0 to P1 and P2 to P3?
Be able to show these directions are the
tangents of the curve at the end-points
Differentiate and evaluate at t=0 and t=1
13. CS 354 13
Bezier Curves
De Casteljau's algorithm
Given a cubic Bezier curve C(t)
Defined by control points P0, P1, P2, P3
How to evaluate C(t) with De Casteljau’s approach?
Make new points with linear interpolation
AB = lerp(P0,P1,t)
BC = lerp(P1,P2,t)
CD = lerp(P2,P3,t)
ABC = lerp(AB,BC,t)
BCD = lerp(BC,CD,t)
ABCD = lerp(ABC,BCD,t)
lerp(a,b,t) = a+t*(b-a) = (1-t)*a + t*b
ABCD evaluates to C(t)
15. CS 354 15
Bezier Subdivision
Original Bezier curve C(t) can be split into
two sub-curves C1(t) and C2(t)
Assuming C(t)’s control points are
P0, P1, P2, P3
C1(t)’s control points are
P0,AB,ABC,ABCD
C2(t)’s control points are
ABCD,BCD,CD,P3
16. CS 354 16
Bezier Surface Evaluation
Given bicubic Bezier path form
Evaluate P(u,v)
Also compute gradients dP/du and dP/dv
Compute surface normal
Assume simple enough control points to
make this tractable
17. CS 354 17
Ray Tracing Math
Ray-Sphere Intersection
Given ray with origin O and direction D
ray(t) = O + D*t
Given sphere at C with radius r and P is on the sphere
(P-C)•(P-C)=r2
Compute the values of t where the ray intersects the
sphere
Involves solving the quadratic formula
Interpretation of the intersection
What does zero solutions mean?
What does two solutions mean?
What does one solution mean?
What do parametric values of t<0 mean?
Compute actual point(s) of intersection of ray and sphere
18. CS 354 18
Ray Tracing Math
Ray-Sphere Shading
Given an intersection point on a sphere
Determine the surface normal
Easy because normal N just normalized P-C
Given lighting position L
Compute diffuse coefficient
max(0,normalize(L-P)•N)
Why the max with zero?
Given eye position E
Compute half-angle vector H=normalize(E-P+
19. CS 354 19
Ray Types
Eye (or view) rays
From eye to surfaces
Light (or shadow) rays
Surface in shadow of light if ray obstructed
Surface illuminated by light if ray unobstructed
Reflected rays
Specular bounce
Refracted rays
Ray travels through interface
Be able to compute refracted vector given incoming
ray direction, surface normal, and index of refraction
Be able to identify types of rays in a diagram
20. CS 354 20
Rendering Equation
Be able to identify and briefly explain the
constituent parts of the Rendering
Equation
Explain two different forms
What does each form integrate over?
Hemisphere of incoming directions at surface point
All possible surface points in the scene
21. CS 354 21
Rendering Equation
Theory for light-surface interactions
Lo (x, ω , λ , t ) = Le (x, ω , λ , t ) + ∫ f r (x, ω ′, ω , λ , t ) Li (x, ω ′, λ , t ) (−ω ′ • n) dω ′
Ω
22. CS 354 22
Rendering Equation Parts
Lo (x, ω , λ , t ) = Le (x, ω , λ , t ) + ∫ f r (x, ω ′, ω , λ , t ) Li (x, ω ′, λ , t ) (−ω ′ • n) dω ′
Ω
Lo = outgoing light from x in direction ω
x = point on a surface
ω = normalized outgoing light vector
λ = wavelength of light
t = time
Le = emitted light at x going towards from ω
n = surface normal at x
23. CS 354 23
Rendering Equation Integral
∫ = integrate over a region
Ω = region of a hemisphere
Together: “integrate overall the incoming directions
for a hemisphere at a point x”
ωˊ = normalized incoming light vector
Li = incoming light at x coming from ωˊ
n = surface normal at x
(-ωˊ • n) = cosine of angle between incoming
light and surface normal
dωˊ = differential of incoming angle
24. CS 354 24
Bidirectional Reflectance
Distribution Function
Ratio of differential outgoing (reflected) radiance
to differential incoming irradiance
dLr (x, ω , λ , t ) dLr (x, ω , λ , t )
f r (x, ω ′, ω , λ , t ) = =
dEi (x, ω ′, λ , t ) dLi (x, ω ′, λ , t ) (−ω ′ • n) dω ′
Physically based BRDF properties L = radiance
Must be non-negative E = irradiance
Must be reciprocal
Swap incoming & relected directions generates same ratio
Conserves energy
Integrating over entire hemisphere must be ≤ 1
25. CS 354 25
Cosine Weighting for Irradiance
At shallow angles, incoming light spreads over a
wider area of the surface
Thus spreading the energy
Thus dimming the received light
26. CS 354 26
Two Versions of
Rendering Equation
Occlusion (G) is zero
o
Le (x, ω , λ , t ) +
Le (x, ω , λ , t ) +
Lo (x, ω , λ , t ) =
∫
Ω
f r (x, ω ′, ω , λ , t ) Li (x, ω ′, λ , t ) (−ω ′ • n) dω ′ Lo (x, ω , λ , t ) =
∫ f r (x, ωyx , ω , λ , t ) L(y, ωyx , λ , t ) G (x, y ) dy
y∈Γ
Integrate over hemisphere Integrate over all surface points
27. CS 354 27
Global Illumination Terms
Be able to explain
Irradiance vs. radiance
Form factor
Percent of energy from patch A that reaches (is
transferred to) patch B
Radiosity
Caustics
Photon mapping can simulate these
Why can’t normal ray tracing simulate these?
28. CS 354 28
Typography
Typographic units
Em, Pica, Point
Character encoding
Unicode
How does Unicode relate to the 7-bit and 8-bit
ASCII character sets?
Why is kerning done?
Why font hinting? Why ClearType?
Identify serif vs. non-serif type faces
29. CS 354 29
Resolution-independent 2D
What is a path?
What is a contour?
How are curved segments indicated?
Quadratic and cubic Bezier curves + elliptical arcs
How do you know if a point is within a path?
Non-zero rule, even-odd rule
How are paths shaded (painted?)
Gradients, solid color, images
30. CS 354 30
Blend Modes
Given f(Ac,Bc) and X, Y, Z parameters,
build up a Porter-Duff blend equation
Evaluate that blend equation for a given
source and destination RGBA value
31. CS 354 31
Graphics Pipeline Stages
Know their order
Mid-term asked to order stages
Worth revisiting
32. CS 354 32
Coordinate Space
Transformations
Be able to recognize / specify the following
coordinate space transformations
Translate
Rotate
Scale (uniform, non-uniform)
Orthographic view
Perspective view
Be able to concatenate transformations
Be able to transform normals and positions
by concatenated transformations
33. CS 354 33
Edge Equation Setup
for Rasterization
Given three points in window space, generate
the three edge equations
Front facing or back facing?
Test if pixel locations are inside/outside the
triangle
34. CS 354 34
Plane Equation Setup
for Interpolation
Given window-space vertices for a
triangle, be able to setup plane equation
for interpolating Z
35. CS 354 35
Mipmap Generation
Extend to 3D textures
How many bytes would a 256x128x128
texture take up?
Width, height, and depth dimensions half with
successively smaller mipmap levels
Be able to generate texels for a small
mipmap pyramid
Say 8x2
36. CS 354 36
GLSL Shading Language
Be able to map implement simple GLSL
standard library routines in GLSL as
simple math operations and sqrt
Example: length
sqrt(v.x*v.x+v.y*v.y+v.z*v.z)
Others: dot, mul, normalize, reflect, refract,
distance, determinant
Know the standard GLSL types
So you can not which types are not actual
GLSL built-in types
37. CS 354 37
Scene Graph
Be able to identify when a bounding box is
trivially outside a view frustum
Are all its vertices on the “wrong” side of a
view frustum clip plane?
Then trivially culled
Briefly distinguish
View frustum culling
Occlusion culling
Portal culling
38. CS 354 38
Acceleration Structures
Name common acceleration structures
Weight advantages and disadvantages
Explain ray traversal given a heirarchical
acceleration structure
39. CS 354 39
Shadows
Name dominant shadowing algorithms for
interactive rendering
Understand their artifacts and limitations
Order the shadow algorithm steps properly
Given 2D diagrams, be able to tell if points
are “inside” or “outside” a shadow volume
40. CS 354 40
Color
Perform color space conversions
RGB to YIQ
What is a color gamut?
41. CS 354 41
Particle system
Given a particle with initial velocity
shooting it upward and gravity, when will it
hit the ground?
Involves solving a quadratic equation
Algorithmic complexity of N particles
mutually attracted by inverse square law
(gravity)
How could this be reduced?
42. CS 354 42
Compression
Why does hardware’s DXTC/S3TC
formats have a fixed compression ratio?
What is the ratio?
Why is sampling chroma values at a lower
frequency than luminance values a
common compression technique?
43. CS 354 43
Forces Driving Improvements in
Computer Graphics
Em
Pa barra Computer g
sin tor
ral ea
leli ssing I ncr nduc
Gra sm o
ph
ics of Graphics mic nsity
Se De
Particularly the Moore’s
hardware-amenable, Law
latency tolerant
nature of rasterization
Human desire for Visual
Intuition and Entertainment
Particularly
interactive video games
44. CS 354 44
Course-Instructor Survey
Instructor’s Name
Mark Kilgard
Course Abbreviation and Number
CS 354
Course Unique Number
53035
Semester and Year
Spring 2012