![Page 1: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/1.jpg)
CSCI-4530/6530 Advanced Computer Graphics
1
Barb [email protected]
Lally 302
http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S19/
Luxo Jr.
2
Pixar Animation Studios, 1986
![Page 2: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/2.jpg)
Topics for the Semester• Meshes
– representation– simplification– subdivision surfaces– construction/generation– volumetric modeling
• Simulation– particle systems, cloth– rigid body, deformation– wind/water flows– collision detection– weathering
3
• Rendering– ray tracing, shadows– appearance models– local vs. global
illumination– radiosity, photon
mapping, subsurface scattering, etc.
• procedural modeling• texture synthesis• non-photorealistic
rendering • hardware & more …
Mesh Simplification
4
Hoppe “Progressive Meshes” SIGGRAPH 1996
![Page 3: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/3.jpg)
Mesh Generation & Volumetric Modeling
5
Cutler et al., “Simplification and Improvement of Tetrahedral Models for Simulation” 2004
Modeling – Subdivision Surfaces
6
Hoppe et al., “Piecewise Smooth Surface Reconstruction” 1994
Geri’s Game Pixar 1997
![Page 4: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/4.jpg)
Particle Systems
7Star Trek: The Wrath of Khan 1982
Physical Simulation• Rigid Body Dynamics• Collision Detection• Fracture• Deformation
8
Müller et al., “Stable Real-Time Deformations” 2002
![Page 5: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/5.jpg)
Fluid Dynamics
9
Foster & Mataxas, 1996
“Visual Simulation of Smoke”Fedkiw, Stam & Jensen
SIGGRAPH 2001
Ray Casting/Tracing
10
“An Improved Illumination Model for Shaded Display”
Whitted 1980
• For every pixel– Construct a ray from the eye – For every object in the scene
• Find intersection with the ray • Keep the closest
• Shade (interaction of light and material)
• Secondary rays (shadows, reflection, refraction)
![Page 6: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/6.jpg)
Appearance Models
11
θiθr
φi φr
Henrik Wann Jensen
Wojciech Matusik
Subsurface Scattering
12
Surface
Jensen et al., “A Practical Model for
Subsurface Light Transport” SIGGRAPH 2001
![Page 7: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/7.jpg)
Syllabus & Course Websitehttp://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S19/
• Which version should I register for?CSCI 6530 : 4 units of graduate creditCSCI 4530 : 4 units of undergraduate credit
• This is an intensive course aimed at graduate students and undergraduates interested in graphics research, involving significant reading & programming each week. Taking this course in a 5 course overload semester is discouraged.
13
Gradeshttp://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S19/
• This course counts as “communications intensive” for undergraduates. As such, you must satisfactorily complete all readings, presentations, project reports to pass the course.
• As this is an elective (not required) course, I expect to grade this course: “A”, “A-”, “B+”, “B”, “B-”, or “F”– Don’t expect C or D level work to “pass”– I don’t want to give any “F”s
14
![Page 8: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/8.jpg)
Participation/Laptops in Class Policyhttp://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S19/
• Lecture is intended to be discussion-intensive• Laptops, tablet computers, smart phones,
and other internet-connected devices are not allowed– Except during the discussion of the day's assigned
paper: students may use their laptop/tablet to view an electronic version of the paper.
– Other exceptions to this policy are negotiable; please see the instructor in office hours
15
Questions?
![Page 9: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/9.jpg)
17
Outline• Course Overview• Classes of Transformations• Representing Transformations• Combining Transformations• Orthographic & Perspective Projections • Example: Iterated Function Systems (IFS)
18
What is a Transformation?• Maps points (x, y) in one coordinate system to
points (x', y') in another coordinate system
• For example, Iterated Function System (IFS):
x' = ax + by + cy' = dx + ey + f
![Page 10: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/10.jpg)
19
Simple Transformations
Yes, except scale = 0
● Can be combined● Are these operations invertible?
20
Transformations are used to:• Position objects in a scene• Change the shape of objects• Create multiple copies of objects• Projection for virtual cameras• Describe
animations
![Page 11: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/11.jpg)
21
Rigid-Body / Euclidean Transforms
• Preserves distances• Preserves angles
TranslationRotation
Rigid / Euclidean
Identity
22
Similitudes / Similarity Transforms
• Preserves angles
TranslationRotation
Rigid / Euclidean
Similitudes
Isotropic ScalingIdentity
![Page 12: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/12.jpg)
23
Linear Transformations
TranslationRotation
Rigid / EuclideanLinear
Similitudes
Isotropic ScalingIdentity
Scaling
Shear
Reflection
L(p + q) = L(p) + L(q) L(ap) = a L(p)
24
Affine Transformations• preserves
parallel lines
TranslationRotation
Rigid / EuclideanLinear
Similitudes
Isotropic Scaling
Scaling
Shear
ReflectionIdentity
Affine
![Page 13: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/13.jpg)
25
Projective Transformations• preserves lines
TranslationRotation
Rigid / EuclideanLinear
Affine
Projective
Similitudes
Isotropic Scaling
Scaling
Shear
Reflection
Perspective
Identity
General (Free-Form) Transformation• Does not preserve lines• Not as pervasive, computationally more involved
26Sederberg and Parry, Siggraph 1986
![Page 14: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/14.jpg)
27
Outline• Course Overview• Classes of Transformations• Representing Transformations• Combining Transformations• Orthographic & Perspective Projections • Example: Iterated Function Systems (IFS)
28
How are Transforms Represented?
x' = ax + by + cy' = dx + ey + f
x'y'
a bd e
cf
=xy
+
p' = M p + t
![Page 15: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/15.jpg)
29
Homogeneous Coordinates• Add an extra dimension
• in 2D, we use 3 x 3 matrices• In 3D, we use 4 x 4 matrices
• Each point has an extra value, w
x'y'z'w'
=
xyzw
aeim
bfjn
cgko
dhlp
p' = M p
30
Translation in homogeneous coordinates
x' = ax + by + cy' = dx + ey + f
x'y'1
a bd e0 0
cf1
=xy1
p' = M p
x'y'
a bd e
cf
=xy
+
p' = M p + t
Affine formulation Homogeneous formulation
![Page 16: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/16.jpg)
31
Homogeneous Coordinates• Most of the time w = 1, and we can ignore it
• If we multiply a homogeneous coordinate by an affine matrix, w is unchanged
x'y'z'1
=
xyz1
aei0
bfj0
cgk0
dhl1
32
Homogeneous Visualization• Divide by w to normalize (homogenize)• W = 0?
w = 1
w = 2
(0, 0, 1) = (0, 0, 2) = …(7, 1, 1) = (14, 2, 2) = …(4, 5, 1) = (8, 10, 2) = …
Point at infinity (direction)
![Page 17: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/17.jpg)
33
Translate (tx, ty, tz)• Why bother with the
extra dimension?Because now translations can be encoded in the matrix!
=
xyz1
1000
0100
0010
tx
ty
tz
1
Translate(c,0,0)
x
y
p p'
c
x'y'z'1
34
Scale (sx, sy, sz)• Isotropic (uniform)
scaling: sx = sy = sz
x'y'z'1
=
xyz1
sx
000
0sy
00
00sz
0
0001
Scale(s,s,s)
x
p
p'
qq'
y
![Page 18: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/18.jpg)
35
Rotation• About z axis
x'y'z'1
=
xyz1
cos θsin θ
-sin θ cos θ
0010
0001
ZRotate(θ)
x
y
z
p
p'
θ
00
00
36
Rotation• About (kx, ky, kz), a unit
vector on an arbitrary axis(Rodrigues Formula)
x'y'z'1
=
xyz1
kxkx(1-c)+ckykx(1-c)+kzskzkx(1-c)-kys
0
0001
kzkx(1-c)-kzskzkx(1-c)+ckzkx(1-c)-kxs
0
kxkz(1-c)+kyskykz(1-c)-kxskzkz(1-c)+c
0
where c = cos θ & s = sin θ
Rotate(k, θ)
x
y
z
θ
k
![Page 19: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/19.jpg)
37
Storage• Often, w is not stored (always 1)• Needs careful handling of direction vs. point
– Mathematically, the simplest is to encode directions with w = 0
– In terms of storage, using a 3-component array for both direction and points is more efficient
– Which requires to have special operation routines for points vs. directions
38
Outline• Course Overview• Classes of Transformations• Representing Transformations• Combining Transformations• Orthographic & Perspective Projections • Example: Iterated Function Systems (IFS)
![Page 20: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/20.jpg)
39
How are transforms combined?
(0,0)(1,1)
(2,2)
(0,0)
(5,3)
(3,1)Scale(2,2) Translate(3,1)
TS =20
02
00
10
01
31
20
02
31=
Scale then Translate
Use matrix multiplication: p' = T ( S p ) = TS p
Caution: matrix multiplication is NOT commutative!
0 0 1 0 0 1 0 0 1
40
Non-commutative CompositionScale then Translate: p' = T ( S p ) = TS p
Translate then Scale: p' = S ( T p ) = ST p
(0,0)
(1,1)(4,2)
(3,1)
(8,4)
(6,2)
(0,0)(1,1)
(2,2)
(0,0)
(5,3)
(3,1)Scale(2,2) Translate(3,1)
Translate(3,1) Scale(2,2)
![Page 21: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/21.jpg)
41
TS =200
020
001
100
010
311
ST =20
02
00
10
01
31
Non-commutative CompositionScale then Translate: p' = T ( S p ) = TS p
200
020
311
20
02
62
=
=
Translate then Scale: p' = S ( T p ) = ST p
0 0 1 0 0 1 0 0 1
Pop Worksheet!
Write down the 3x3 matrix that transforms this set of 4 points:
A: (0,0) B: (1,0) C: (1,1) D: (0,1)
to these new positions: A’: (-1, 1) B’: (-1, 0) C’: (0, 0) D’: (0, 1)
Show your work.
If you finish early… Solve the problem using a different technique.
Teams of 2!Raise your hand if you don’t have a partner.
NOTE: We’ll be doing pair worksheets throughout the term. You should aim to meet your classmates and work with a new and different partner on EVERY worksheet. We’ll track who you work with and a portion of the worksheet grade will be based on the number of unique worksheet partners.
![Page 22: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/22.jpg)
43
Outline• Course Overview• Classes of Transformations• Representing Transformations• Combining Transformations• Orthographic & Perspective Projections • Example: Iterated Function Systems (IFS)
44
Orthographic vs. Perspective• Orthographic
• Perspective
![Page 23: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/23.jpg)
45
Simple Orthographic Projection• Project all points along the z axis to the z = 0 plane
xy01
=
xyz1
1000
0100
0000
0001
46
• Project all points along the z axis to the z = d plane, eyepoint at the origin:
Simple Perspective Projection
xyz
z / d
=
xyz1
1000
0100
001
1/d
0000
x * d / zy * d / z
d1
=
homogenize
By similar triangles: x’/x = d/z x’ = (x*d)/z (x’,y’,z’)
’
![Page 24: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/24.jpg)
47
Alternate Perspective Projection• Project all points along the z axis to the z = 0 plane,
eyepoint at the (0,0,-d):
xy0
(z + d)/ d
=
xyz1
1000
0100
000
1/d
0001
x * d / (z + d)y * d / (z + d)
01
=
homogenize(x’,y’,z’)
By similar triangles: x’/x = d/(z+d) x’ = (x*d)/(z+d)
48
In the limit, as d → ∞
1000
0100
000
1/d
0001
1000
0100
0000
0001
→
...is simply an orthographic projection
this perspective projection matrix...
![Page 25: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/25.jpg)
Outline• Course Overview• Classes of Transformations• Representing Transformations• Combining Transformations• Orthographic & Perspective Projections • Example: Iterated Function Systems (IFS)
49
50
Iterated Function Systems (IFS)
• Capture self-similarity• Contraction
(reduce distances)• An attractor is a
fixed point
![Page 26: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/26.jpg)
51
Example: Sierpinski Triangle• Described by a set of n affine transformations • In this case, n = 3
– translate & scale by 0.5
52
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_itersrandomly pick one of the transformations(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
Increasing the number of iterations
![Page 27: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/27.jpg)
53
Another IFS: The Dragon
54
3D IFS in OpenGL / Apple Metal
![Page 28: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/28.jpg)
55
Assignment 0: OpenGL/Metal Warmup
• Get familiar with:– C++ environment– OpenGL / Metal– Transformations– simple Vector &
Matrix classes
• Have Fun!• Due ASAP (start it today!)• ¼ of the points of the other HWs
(but you should still do it and submit it!)
56
Questions?
Image by Henrik Wann Jensen
![Page 29: Advanced Computer Graphics CSCI-4530/6530cutler/classes/advancedgraphics/S19/lectures/01...–For every object in the scene •Find intersection with the ray •Keep the closest •Shade](https://reader033.vdocuments.us/reader033/viewer/2022042612/5f419abbeb12d614fa1c44a4/html5/thumbnails/29.jpg)
57
For Next Time:• Read Hugues Hoppe “Progressive Meshes”
SIGGRAPH 1996• Post a comment or question on the course
Submitty discussion forum by 10am on Friday
Volunteer to be “Discussant”?Note: This is not a “presentation”. Don’t make slides! Be sure to read blurb (& linked webpage) on course webpage about Assigned Readings & Discussants.
58
• How do we represent meshes?• How to automatically decide what parts of the
mesh are important / worth preserving?• Algorithm performance: memory, speed?• What were the original target applications?
Are those applications still valid? Are there other modern applications that can leverage this technique?
Questions to think about: