0% found this document useful (0 votes)
69 views37 pages

GAMES101 Lecture 04

Uploaded by

tadatatsuno
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
69 views37 pages

GAMES101 Lecture 04

Uploaded by

tadatatsuno
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Introduction to Computer Graphics

GAMES101, Lingqi Yan, UC Santa Barbara

Lecture 4:
Transformation Cont.

http://www.cs.ucsb.edu/~lingqi/teaching/games101.html
Announcement

• Homework 0 will be released TODAY

• This lecture will be difficult :)

GAMES101 2 Lingqi Yan, UC Santa Barbara


Last Lecture
• Transformation
- Why study transformation

- 2D transformations: rotation, scale, shear

- Homogeneous coordinates

- Composite transform

- 3D transformations

GAMES101 3 Lingqi Yan, UC Santa Barbara


Today
• 3D transformations

• Viewing (观测) transformation

- View (视图) / Camera transformation

- Projection (投影) transformation

- Orthographic (正交) projection

- Perspective (透视) projection

GAMES101 4 Lingqi Yan, UC Santa Barbara


3D Transformations

Use homogeneous coordinates again:


• 3D point = (x, y, z, 1)T
• 3D vector = (x, y, z, 0)T

Use 4×4 matrices


In general, (x, y, z,for
w)affine
(w != transformations
0) is the 3D point:
⇥ ⇥ ⇥
x (x/w,
a y/w,
b c z/w)
tx x
⇧y ⌃ ⇧d e f ty ⌃ ⇧y ⌃
⇧ ⌃ = ⇧ ⌃·⇧ ⌃
⇤z ⌅ ⇤g h i tz ⌅ ⇤ z ⌅
1 0 0 0 1 1

GAMES101
CS184/284A 5 Lingqi Yan, UC Santa
RenBarbara
Ng
Use homogeneous coordinates again:
• 3D point = (x, y, z, 1)T
3D Transformations
• 3D vector = (x, y, z, 0)T
Use homogeneous coordinates again:
Use 4×4 matrices for affine transformations
• 3D point = (x, y, z, 1)T
⇥ ⇥ ⇥
• 3D vector ⇧ x
= (x,
y ⌃
y, z, a
0) T b c t x
⇧d e f ty ⌃ ⇧y ⌃
x
⇧ ⌃ = ⇧ ⌃·⇧ ⌃
⇤z ⌅ ⇤ g h i tz ⌅ ⇤ z ⌅
Use 4×4 matrices
1 for affine
0 0transformations
0 1 1
⇥ ⇥ ⇥
x a b c tx x
What’s the order?
⇧ ⌃ ⇧ ⌃ ⇧ ⌃
y d e f t y
Linear Transform
CS184/284A ⇧ ⌃
⇤z ⌅first
= or
⇧Translation first?
y ⌃·⇧ ⌃
⇤ g h i tz ⌅ ⇤ z ⌅
Ren Ng

1 0 0 0 1 1

GAMES101 6 Lingqi Yan, UC Santa Barbara


3D Transformations

sx 0 0 0
Scale ⇧0 sy 0 0⌃
S(sx , sy , sz ) = ⇧
⇤0

0 sz 0⌅
0 0 0 1

Translation ⇥
1 0 0 tx
⇧0 1 0 ty ⌃
T(tx , ty , tz ) = ⇧
⇤0

0 1 tz ⌅
0 0 0 1

Coordinate Change
(Frame-to-world) 
u v w o
F(u, v, w, o) =
0 0 0 1

CS184/284A Ren Ng
GAMES101 7 Lingqi Yan, UC Santa Barbara
3D Transformations

Rotation around x-, y-, or z-axis y

⇥ Rotation
1 0 0 0 around
⇧0 cos sin 0⌃ x-axis
Rx ( ) = ⇧
⇤0

sin cos 0⌅
x
0 0 0 1

cos 0 sin 0
⇧ 0 z
1 0 0⌃
Ry ( ) = ⇧
⇤ sin

0 cos 0⌅
0 0 0 1
⇥ Anything strange about Ry?
cos sin 0 0
⇧ sin cos 0 0⌃
Rz ( ) = ⇧
⇤ 0

0 1 0⌅
0 0 0 1
CS184/284A Ren Ng
GAMES101 8 Lingqi Yan, UC Santa Barbara
3D Rotations

Compose any 3D rotation from Rx, Ry, Rz?

Rxyz ( , ⇥, ⇤) = Rx ( ) Ry (⇥) Rz (⇤)

• So-called Euler angles


• Often used in flight simulators: roll, pitch, yaw

CS184/284A Ren Ng
GAMES101 9 Lingqi Yan, UC Santa Barbara
Rodrigues’ Rotation Formula

Rotation by angle α around axis n


0 1
0 nz ny
R(n, ↵) = cos(↵) I + (1 cos(↵)) nnT + sin(↵) @ nz 0 nx A
ny nx 0
| {z }
N

How to prove this magic formula?


• Check
Matrix N computes a cross-product: N
out the supplementary material on the course website!
x = n × x
• Assume orthonormal system e1, e2, n
Rn = n
Re1 = cos e1 + sin e2
Re2 = sin e1 + cos e2
CS184/284A Ren Ng
GAMES101 10 Lingqi Yan, UC Santa Barbara
Today
• 3D transformations

• Viewing transformation
- View / Camera transformation

- Projection transformation

- Orthographic projection

- Perspective projection

GAMES101 11 Lingqi Yan, UC Santa Barbara


View / Camera Transformation

• What is view transformation?

• Think about how to take a photo


- Find a good place and arrange people (model transformation)

- Find a good “angle” to put the camera (view transformation)

- Cheese! (projection transformation)

GAMES101 12 Lingqi Yan, UC Santa Barbara


View / Camera Transformation

• How to perform view transformation?

• Define the camera first Up direction

- Position ~e
<latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit>
<latexit

- Look-at / gaze direction <latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit>



- Up direction t̂ <latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit>

Position
(assuming perp. to look-at) Loo
k-a
t di
rec
tion

GAMES101 13 Lingqi Yan, UC Santa Barbara


View / Camera Transformation
• Key observation
- If the camera and all objects move together,
the “photo” will be the same
Y

==
(0, 0, 0) -Z
X

• How about that we always transform the camera to


- The origin, up at Y, look at -Z

- And transform the objects along with the camera

GAMES101 14 Lingqi Yan, UC Santa Barbara


View / Camera Transformation

• Transform the camera by Mview <latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit>

- So it’s located at the origin, up at Y, look at -Z




<latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit>

Mview in math? ~e
<latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit>
<latexit

- Translates e to origin
<latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit>

- Rotates g to -Z
Y
- Rotates t to Y

- Rotates (g x t) To X

- Difficult to write! -Z
X

GAMES101 15 Lingqi Yan, UC Santa Barbara


View / Camera Transformation
• Mview
<latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit>
in math?
- Let’s write Mview = Rview Tview
<latexit sha1_base64="xHF1BYcc/r6NW/eK+ByaqBNbREc=">AAACAnicbZDLSgMxFIbP1Futt1FX4iZYBFdlRgTdCEU3boQqvUE7DJk0bUMzmSHJVMpQ3Pgqblwo4tancOfbmLaz0NYDIR//fw7J+YOYM6Ud59vKLS2vrK7l1wsbm1vbO/buXl1FiSS0RiIeyWaAFeVM0JpmmtNmLCkOA04bweB64jeGVCoWiaoexdQLcU+wLiNYG8m3D279dMjow/jyPoNqdvt20Sk500KL4GZQhKwqvv3V7kQkCanQhGOlWq4Tay/FUjPC6bjQThSNMRngHm0ZFDikykunK4zRsVE6qBtJc4RGU/X3RIpDpUZhYDpDrPtq3puI/3mtRHcvvJSJONFUkNlD3YQjHaFJHqjDJCWajwxgIpn5KyJ9LDHRJrWCCcGdX3kR6qcl1ym5d2fF8lUWRx4O4QhOwIVzKMMNVKAGBB7hGV7hzXqyXqx362PWmrOymX34U9bnD15TmAs=</latexit>

2 3
- Translate e to origin 1 0 0 xe
60 1 0 ye 7
Tview =6
40
7
0 1 ze 5
<latexit sha1_base64="7v4QSZEjspNepsEFl4IrOfaqQeg=">AAACVnicbZHPS8MwFMfTTt2cv6oevQSH4mWjFUEvwtCLxwnbFNZR0uxtBtO0JKk6y/5Jveif4kXMus7fDx58+bz3kpdvwoQzpV331bJLC4tL5cpydWV1bX3D2dzqqjiVFDo05rG8DokCzgR0NNMcrhMJJAo5XIW359P61R1IxWLR1uME+hEZCTZklGiDAidqB9kdg/vJqR/CiIksjIiW7GHi4X3sFll/CAD7fq7nvD7+YnNefwzgG8qxD2LweWjg1NyGmwf+K7xC1FARrcB58gcxTSMQmnKiVM9zE93PiNSMcphU/VRBQugtGUHPSEEiUP0st2WC9wwZ4GEsTQqNc/p9IiORUuMoNJ1mvxv1uzaF/9V6qR6e9DMmklSDoLOLhinHOsZTj/GASaCaj40gVDKzK6Y3RBKqzU9UjQne7yf/Fd3Dhuc2vMujWvOssKOCdtAuOkAeOkZNdIFaqIMoekZvlm2VrBfr3V60y7NW2ypmttGPsJ0Pd6epqQ==</latexit>
0 0 0 1

- Rotate g to -Z, t to Y, (g x t) To X

- Consider its inverse rotation: X to (g x t), Y to t, Z to -g


2 3 WHY? 2 3
xĝ⇥t̂ xt x g 0 xĝ⇥t̂ yĝ⇥t̂ zĝ⇥t̂ 0
6 yĝ⇥t̂ yt y g 07 6 xt yt zt 07
1
Rview 6
=4 7 Rview = 4 6 7
zĝ⇥t̂ zt z g 0 5 x g y g z g 05
<latexit sha1_base64="ZiDOGk5piCsajb0S1Eo3WOdKGjI=">AAACrXicdVFNbxMxEPVu+SgphRSOXCyiIoTUdBchtZdKVblwDIi0hThdeZ3JxqrXu7JnSzbW/jt+ATf+Dc4mQqSlI4315s0b+XmclkpajKLfQbj14OGjx9tPOjtPd5897+69OLdFZQQMRaEKc5lyC0pqGKJEBZelAZ6nCi7S64/L/sUNGCsL/RXrEsY5z7ScSsHRU0n355fE3Uj40Vy5g7g5YSlkUrs052jkvJknjs04uqxhKHOwbYFNQ9/QeYLt6Q6yZRlRxmh9v7xu5fWGfHG/fNHKFxvyqAWrjBnoyV+bSbcX9aM26F0Qr0GPrGOQdH+xSSGqHDQKxa0dxVGJY8cNSqGg6bDKQsnFNc9g5KHm3t3Ytdtu6L5nJnRaGJ8aacv+O+F4bm2dp17p/c3s7d6S/F9vVOH0eOykLisELVYXTStFsaDLr6MTaUCgqj3gwkjvlYoZN1yg/+COX0J8+8l3wfn7fhz1488feqdn63Vsk1fkNXlLYnJETsknMiBDIoJ3wSD4FnwPD8NhyMKrlTQM1jMvyUaE2R/Nvc91</latexit>
0 0 0 1 0 0 0 1
GAMES101 16 Lingqi Yan, UC Santa Barbara
View / Camera Transformation

• Summary
- Transform objects together with the camera

- Until camera’s at the origin, up at Y, look at -Z

• Also known as ModelView Transformation

• But why do we need this?


- For projection transformation!

GAMES101 17 Lingqi Yan, UC Santa Barbara


Today
• 3D transformations

• Viewing transformation
- View / Camera transformation

- Projection transformation

- Orthographic projection

- Perspective projection

GAMES101 18 Lingqi Yan, UC Santa Barbara


Projection Transformation
• Projection in Computer Graphics
- 3D to 2D

- Orthographic projection

- Perspective projection

Orthographic Perspective
projection projection

Fig. 7.1 from Fundamentals of Computer Graphics, 4th Edition


GAMES101 19 Lingqi Yan, UC Santa Barbara
Projection Transformation
• Perspective projection vs. orthographic projection

https://stackoverflow.com/questions/36573283/from-perspective-picture-to-orthographic-picture
GAMES101 20 Lingqi Yan, UC Santa Barbara
Orthographic Projection
• A simple way of understanding
- Camera located at origin, looking at -Z, up at Y (looks familiar?)

- Drop Z coordinate

- Translate and scale the resulting rectangle to [-1, 1]2

GAMES101 21 Lingqi Yan, UC Santa Barbara


Orthographic Projection
• In general
- We want to map a cuboid [l, r] x [b, t] x [f, n] to
the “canonical (正则、规范、标准)” cube [-1, 1]3

t f
y y y

n Translate Scale
b x x
l r x

z z z

GAMES101 22 Lingqi Yan, UC Santa Barbara


Orthographic Projection
• Slightly different orders (to the “simple way”)
- Center cuboid by translating

- Scale into “canonical” cube

t f
y y y

n Translate Scale
b x x
l r x

z z z

GAMES101 23 Lingqi Yan, UC Santa Barbara


Orthographic Projection
• Transformation matrix?
- Translate (center to origin) first, then scale (length/width/height to 2)
2 2 32 r+l
3
r l 0 0 0 1 0 0 2
6 0 2
0 07 60 1 0 t+b 7
Mortho =6
4 0
t b 76 2 7
0 2
n f 05 40 0 1 n+f 5
2
<latexit sha1_base64="u8/BLw7fEet5/HcZUdx/JAiPmO8=">AAAC+XicbZJNaxsxEIa124+k7kec5tiLqEkpGJtVKDSXQmgvuRRSqJOA1xitrLVFtNIizYYaoX/SSw8tpdf+k976byrbG2OvOzDwMs+r0eysslIKC0nyN4rv3X/wcG//Uevxk6fPDtqHzy+trgzjA6alNtcZtVwKxQcgQPLr0nBaZJJfZTcfFvzqlhsrtPoM85KPCjpVIheMQiiND6ODj2OnDcy0f5dmfCqUywoKRnzxOM0NZe7EO9OTHr/CyTrTdCnWBuhlvgm3DKqX+yZcJEm5mqxvbA5ANpy9VS/TlT40vOtDtil0s01656ip6uZNujvDuN1J+sky8K4gteigOi7G7T/pRLOq4AqYpNYOSVLCyFEDgknuW2lleUnZDZ3yYZCKFtyO3PLPeXwcKhOcaxNSAV5WN084Wlg7L8J2j8N8M9tki+L/2LCC/HTkhCor4IqtLsoriUHjxTPAE2E4AzkPgjIjwqyYzWjYEoTH0gpLIM1P3hWXJ32S9MmnN52z9/U69tEL9BK9RgS9RWfoHF2gAWLRbfQ1+h79iF38Lf4Z/1pZ46g+c4S2Iv79D5zd3MY=</latexit>
0 0 0 1 0 0 0 1
t f
y y y

n Translate Scale
b x x
l r x

z z z

GAMES101 24 Lingqi Yan, UC Santa Barbara


Orthographic Projection
• Caveat
- Looking at / along -Z is making near and far not intuitive (n > f)

- FYI: that’s why OpenGL (a Graphics API) uses left hand coords.

t f
y y y

n Translate Scale
b x x
l r x

z z z

GAMES101 25 Lingqi Yan, UC Santa Barbara


Perspective Projection
• Most common in Computer Graphics, art, visual system

• Further objects are smaller

• Parallel lines not parallel; converge to single point

Image A
Plane Plane, or
of Pro
jection
A’

B
B’

Center of projection
(camera/eye location)

GAMES101 26 Lingqi Yan, UC Santa Barbara


Perspective Projection
• Euclid was wrong??!!

https://en.wikipedia.org/wiki/Parallel_(geometry)

GAMES101 27 Lingqi Yan, UC Santa Barbara


Perspective Projection
• Before we move on

• Recall: property of homogeneous coordinates


- (x, y, z, 1), (kx, ky, kz, k != 0), (xz, yz, z2, z != 0) all represent
the same point (x, y, z) in 3D

- e.g. (1, 0, 0, 1) and (2, 0, 0, 2) both represent (1, 0, 0)

• Simple, but useful

GAMES101 28 Lingqi Yan, UC Santa Barbara


Perspective Projection
• How to do perspective projection
- First “squish” the frustum into a cuboid (n -> n, f -> f) (Mpersp->ortho)

- Do orthographic projection (Mortho, already known!)

Frustum Cuboid

n f n f

Fig. 7.13 from Fundamentals of Computer Graphics, 4th Edition

GAMES101 29 Lingqi Yan, UC Santa Barbara


Perspective Projection
• In order to find a transformation
- Recall the key idea: Find the relationship between transformed
points (x’, y’, z’) and the original points (x, y, z)

Y (x, y, z)

(x’, y’, z’) similar


triangle
n 0
Z y = y
z
n
<latexit sha1_base64="gYCqVp7QCzxySMpbJ4utMPl9GkQ=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjdCGvJLvHhQxKs/xZv/xm2bg7Y+GHi8N8PMPD/mTGnH+bZKa+sbm1vl7crO7t5+1T44bKsokYS2SMQj2fWxopwJ2tJMc9qNJcWhz2nHn9zN/M4TlYpF4lGnMfVCPBIsYARrIw3sanp20w8kJpnIs2meDuyaU3fmQKvELUgNCjQH9ld/GJEkpEITjpXquU6svQxLzQineaWfKBpjMsEj2jNU4JAqL5sfnqNTowxREElTQqO5+nsiw6FSaeibzhDrsVr2ZuJ/Xi/RwbWXMREnmgqyWBQkHOkIzVJAQyYp0Tw1BBPJzK2IjLGJQZusKiYEd/nlVdK+qLtO3X24rDVuizjKcAwncA4uXEED7qEJLSCQwDO8wps1tV6sd+tj0Vqyipkj+APr8wcmipNn</latexit>

GAMES101 30 Lingqi Yan, UC Santa Barbara


Perspective Projection
• In order to find a transformation
- Find the relationship between transformed points (x’, y’, z’)
and the original points (x, y, z)

n 0 n 0
y = y x = x (similar to y’)
z
<latexit sha1_base64="gYCqVp7QCzxySMpbJ4utMPl9GkQ=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjdCGvJLvHhQxKs/xZv/xm2bg7Y+GHi8N8PMPD/mTGnH+bZKa+sbm1vl7crO7t5+1T44bKsokYS2SMQj2fWxopwJ2tJMc9qNJcWhz2nHn9zN/M4TlYpF4lGnMfVCPBIsYARrIw3sanp20w8kJpnIs2meDuyaU3fmQKvELUgNCjQH9ld/GJEkpEITjpXquU6svQxLzQineaWfKBpjMsEj2jNU4JAqL5sfnqNTowxREElTQqO5+nsiw6FSaeibzhDrsVr2ZuJ/Xi/RwbWXMREnmgqyWBQkHOkIzVJAQyYp0Tw1BBPJzK2IjLGJQZusKiYEd/nlVdK+qLtO3X24rDVuizjKcAwncA4uXEED7qEJLSCQwDO8wps1tV6sd+tj0Vqyipkj+APr8wcmipNn</latexit>
z
<latexit sha1_base64="9Vy/9JhE+ej/RY4O2ZmdE3kknpU=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjfSNuSXePGgiFd/ijf/jds2B219MPB4b4aZeX7MmdKO820V1tY3NreK26Wd3b39sn1w2FRRIgltkIhHsu1jRTkTtKGZ5rQdS4pDn9OWP7qb+a0nKhWLxKOexNQL8UCwgBGsjdSzy+Ozm24gMUlFlk6zcc+uOFVnDrRK3JxUIEe9Z391+xFJQio04VipjuvE2kux1IxwmpW6iaIxJiM8oB1DBQ6p8tL54Rk6NUofBZE0JTSaq78nUhwqNQl90xliPVTL3kz8z+skOrj2UibiRFNBFouChCMdoVkKqM8kJZpPDMFEMnMrIkNsYtAmq5IJwV1+eZU0L6quU3UfLiu12zyOIhzDCZyDC1dQg3uoQwMIJPAMr/BmTa0X6936WLQWrHzmCP7A+vwBI3STZQ==</latexit>

• In homogeneous coordinates,
0 1 0 1 mult. 0 1
x nx/z nx
By C B ny/z C by z B ny C
B C)B C == B C
@z A @unknownA @still unknownA
1 1 z
<latexit sha1_base64="nZO54NGfca8TDoXBiZdVBA1kZVc=">AAACrHicbVFNTxsxEPVuvyD9SuHIxWpUqb2ku6gSXJBQuXArIAKp4lXkdWYTK157Zc+WLKv8uv4Dbv03eJOoCgkjefz0ZubZM5MWSjqMon9B+OLlq9dvdnZbb9+9//Cx/WnvxpnSCugJo4ztp9yBkhp6KFFBv7DA81TBbTo9a+K3f8A6afQ1VgUkOR9rmUnB0VPD9l+Wwljqusg5WjmbzyhjtGrcfeNiBnr0P0jZlRxPkFtr7uhGoZ59X1Toankzz09sXpd6qs2dnj+jdnKyLbKUWBdwKJVilK4L3T8RGrY7UTdaGN0G8Qp0yMouhu0HNjKizEGjUNy5QRwVmNTcohQK5i1WOii4mPIxDDzUPAeX1Ithz+kXz4xoZqw/GumCXa+oee5clac+s+nAbcYa8rnYoMTsOKmlLkoELZYPZaWiaGizOTqSFgSqygMurPR/pWLCLRfo99vyQ4g3W94GN4fdOOrGlz86pz9X49ghB+Qz+UpickROyTm5ID0igm/Br6Af/A674XU4CJNlahisavbJEwuzR7Y51SQ=</latexit>

GAMES101 31 Lingqi Yan, UC Santa Barbara


Perspective Projection
• So the “squish” (persp to ortho) projection does this
0 1 0 1
x nx
(4⇥4) By C B ny C
Mpersp!ortho B C=B C
@ z A @unknownA
1 z
<latexit sha1_base64="9YCEgySZyET2l27Cv8DYo61N3vw=">AAACfnicbVHLThsxFPVMXzSlbSjLbtxGINqq6QyKBJtKqN2wQaJSA0hxGnmcm8SKx7bsO0A6ms/gx9jxLd3UM0QVhF7J1tE599j3kVklPSbJTRQ/evzk6bO1560X6y9fvW5vvDnxpnAC+sIo484y7kFJDX2UqODMOuB5puA0m3+v9dNzcF4a/RMXFoY5n2o5kYJjoEbtq6NRaYNuKXNyOkPunLmgxuHMVL/KnR5DmYOnvQ8Vy2AqdWlzjk5eVpeUMbqor9/1lTLQ438i/UpX0nWTrxsDC9zM5WWh59pc6Kp55J5/1O4k3aQJ+hCkS9Ahyzgeta/Z2IgiB41Cce8HaWJxWHKHUiioWqzwYLmY8ykMAtQ8NDUsm/FVdCswYzoxLhyNtGHvOkqee7/Is5BZV+5XtZr8nzYocLI/LKW2BYIWtx9NCkXR0HoXdCwdCFSLALhwMtRKxYw7LjBspBWGkK62/BCc7HbTpJv+6HUOvi3HsUbekvdkh6RkjxyQQ3JM+kSQP9G76GP0KSbxdvw5/nKbGkdLzya5F/H+Xzk1wwo=</latexit>

• Already good enough to figure out part of Mpersp->ortho


0 1
n 0 0 0
B0 n 0 0C
Mpersp!ortho =B
@?
C WHY?
? ? ?A
<latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit>
0 0 1 0
GAMES101 32 Lingqi Yan, UC Santa Barbara
Perspective Projection
• How to figure out the third row of Mpersp->ortho
0 1
- Any information that we can use? n 0 0 0
B0 n 0 0C
Mpersp!ortho =B
@?
C
? ? ?A
<latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit>
0 0 1 0

• Observation: the third row is responsible for z’


- Any point on the near plane will not change

- Any point’s z on the far plane will not change

GAMES101 33 Lingqi Yan, UC Santa Barbara


Perspective Projection
Any point on the near plane will not change •
0 1 0 1 0 1 0 1 0 1
x nx replace x x nx
B C B
y C B ny C C z with n B y C B y C B ny C
(4⇥4) B
Mpersp!ortho @ A = @ B C ) B C == B 2 C
z unknownA @n A @n A @n A
1 z 1 1 n
<latexit sha1_base64="9YCEgySZyET2l27Cv8DYo61N3vw=">AAACfnicbVHLThsxFPVMXzSlbSjLbtxGINqq6QyKBJtKqN2wQaJSA0hxGnmcm8SKx7bsO0A6ms/gx9jxLd3UM0QVhF7J1tE599j3kVklPSbJTRQ/evzk6bO1560X6y9fvW5vvDnxpnAC+sIo484y7kFJDX2UqODMOuB5puA0m3+v9dNzcF4a/RMXFoY5n2o5kYJjoEbtq6NRaYNuKXNyOkPunLmgxuHMVL/KnR5DmYOnvQ8Vy2AqdWlzjk5eVpeUMbqor9/1lTLQ438i/UpX0nWTrxsDC9zM5WWh59pc6Kp55J5/1O4k3aQJ+hCkS9Ahyzgeta/Z2IgiB41Cce8HaWJxWHKHUiioWqzwYLmY8ykMAtQ8NDUsm/FVdCswYzoxLhyNtGHvOkqee7/Is5BZV+5XtZr8nzYocLI/LKW2BYIWtx9NCkXR0HoXdCwdCFSLALhwMtRKxYw7LjBspBWGkK62/BCc7HbTpJv+6HUOvi3HsUbekvdkh6RkjxyQQ3JM+kSQP9G76GP0KSbxdvw5/nKbGkdLzya5F/H+Xzk1wwo=</latexit> <latexit sha1_base64="Rgv8ma+pWaANoPAAKsPdBWNLMVw=">AAACg3iclVFNTwIxEO2uoohfqEcvjURjYoK7hEQvJEQvHtHIR8Ii6ZYBGrrdTdtVyIY/4s/y5r+xuxCj4MVJOn15b146nfEjzpR2nE/L3tjMbW3ndwq7e/sHh8Wj45YKY0mhSUMeyo5PFHAmoKmZ5tCJJJDA59D2J/ep3n4FqVgonvUsgl5ARoINGSXaUP3iu+fDiIkkCoiWbDqfYs/DszSJNLkeiMG3iL0nNhprImX4hv9lrNXwqkFkDrGwvFSy65epXyw5ZScLvA7cJSihZTT6xQ9vENI4AKEpJ0p1XSfSvYRIzSiHecGLFUSETsgIugYKEoDqJdkM5/jcMAM8DKU5QuOM/elISKDULPBNpelvrFa1lPxL68Z6eNtLmIhiDYIuHhrGHOsQpwvBAyaBaj4zgFDJTK+YjokkVJu1FcwQ3NUvr4NWpew6ZfexWqrfLceRR6foDF0iF92gOnpADdRE1ELWhXVtOXbOvrIrdnVRaltLzwn6FXbtC3MlwjI=</latexit>

• So the third row must be of the form (0 0 A B)


0 1
x
By C n2 has nothing
0 0 A B C
B @ A=n 2
n to do with x and y

<latexit sha1_base64="qVcHsPCvwxEnxEvGQyxpiwV+lqE=">AAACRXicbVBNSwMxEM36WevXqkcvwaJ4KrtF0ItQ68VjBfsB3Vqy6bQNzWaXJCstS/+cF+/e/AdePCjiVbNtEds6MMPjvTdk8vyIM6Ud58VaWl5ZXVvPbGQ3t7Z3du29/aoKY0mhQkMeyrpPFHAmoKKZ5lCPJJDA51Dz+9epXnsAqVgo7vQwgmZAuoJ1GCXaUC3b83zoMpFEAdGSDUYOPsFpX5kueSDav8qccYA9Dw/TIdLhznjxJcbivtCyc07eGRdeBO4U5NC0yi372WuHNA5AaMqJUg3XiXQzIVIzymGU9WIFEaF90oWGgYIEoJrJOIURPjZMG3dCaVpoPGb/biQkUGoY+MZpzuypeS0l/9Mase5cNBMmoliDoJOHOjHHOsRppLjNJFDNhwYQKpm5FdMekYRqE3zWhODOf3kRVAt518m7t2e5YmkaRwYdoiN0ilx0joroBpVRBVH0iF7RO/qwnqw369P6mliXrOnOAZop6/sHM0SwRw==</latexit>
1
GAMES101 34 Lingqi Yan, UC Santa Barbara
Perspective Projection
• What do we have now?
0 1
x
By C
0 0 A B B @n A
C = n2 An + B = n
<latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit>
2

1 <latexit sha1_base64="qVcHsPCvwxEnxEvGQyxpiwV+lqE=">AAACRXicbVBNSwMxEM36WevXqkcvwaJ4KrtF0ItQ68VjBfsB3Vqy6bQNzWaXJCstS/+cF+/e/AdePCjiVbNtEds6MMPjvTdk8vyIM6Ud58VaWl5ZXVvPbGQ3t7Z3du29/aoKY0mhQkMeyrpPFHAmoKKZ5lCPJJDA51Dz+9epXnsAqVgo7vQwgmZAuoJ1GCXaUC3b83zoMpFEAdGSDUYOPsFpX5kueSDav8qccYA9Dw/TIdLhznjxJcbivtCyc07eGRdeBO4U5NC0yi372WuHNA5AaMqJUg3XiXQzIVIzymGU9WIFEaF90oWGgYIEoJrJOIURPjZMG3dCaVpoPGb/biQkUGoY+MZpzuypeS0l/9Mase5cNBMmoliDoJOHOjHHOsRppLjNJFDNhwYQKpm5FdMekYRqE3zWhODOf3kRVAt518m7t2e5YmkaRwYdoiN0ilx0joroBpVRBVH0iF7RO/qwnqw369P6mliXrOnOAZop6/sHM0SwRw==</latexit>

• Any point’s z on the far plane will not change


0 1 0 1 0 1
0 0 0
B0C B0C B0C
B C ) B C == B 2 C Af + B = f 2
@f A @f A @f A <latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit>

1 1 f
<latexit sha1_base64="m2OuDPSbSe1+rLBFqELXXuZdYDk=">AAACgXiclVFNSwMxEM1u/aj1q+rRS7AKerDsFkFBCkUvHqtYW+jWkk1n29Bsdkmyaln6P/xd3vwzYrotYq0IDmTyeG8emcz4MWdKO867ZeeWlldW82uF9Y3Nre3izu6DihJJoUEjHsmWTxRwJqChmebQiiWQ0OfQ9IfXE735BFKxSNzrUQydkPQFCxgl2lDd4qvnQ5+JNA6Jluxl7GDPw1kKJsn1QPS+ROzdsf5AEymjZ/wvY7WK/zA8VrJrztItlpyykwVeBO4MlNAs6t3im9eLaBKC0JQTpdquE+tOSqRmlMO44CUKYkKHpA9tAwUJQXXSbIJjfGSYHg4iaY7QOGO/O1ISKjUKfVNp+huon9qE/E1rJzq46KRMxIkGQacPBQnHOsKTdeAek0A1HxlAqGSmV0wHRBKqzdIKZgjuzy8vgodK2XXK7u1ZqXY1G0ce7aMDdIxcdI5q6AbVUQNR9GEdWqdW2c7ZJ7ZjV6altjXz7KG5sC8/AUJ+wG4=</latexit>

GAMES101 35 Lingqi Yan, UC Santa Barbara


Perspective Projection
• Solve for A and B

An + B = n2
<latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit>
A=n+f
<latexit sha1_base64="1zIaFRyhT2WN+k3aHKqzTsYGb10=">AAAB8HicbVDLSgNBEOz1GeMr6tHLYBAEIeyKoBch6sVjBPOQZAmzk9lkyDyWmVkhLPkKLx4U8ernePNvnCR70MSChqKqm+6uKOHMWN//9paWV1bX1gsbxc2t7Z3d0t5+w6hUE1oniivdirChnElat8xy2ko0xSLitBkNbyd+84lqw5R8sKOEhgL3JYsZwdZJj9foCkl0iuJuqexX/CnQIglyUoYctW7pq9NTJBVUWsKxMe3AT2yYYW0Z4XRc7KSGJpgMcZ+2HZVYUBNm04PH6NgpPRQr7UpaNFV/T2RYGDMSkesU2A7MvDcR//PaqY0vw4zJJLVUktmiOOXIKjT5HvWYpsTykSOYaOZuRWSANSbWZVR0IQTzLy+Sxlkl8CvB/Xm5epPHUYBDOIITCOACqnAHNagDAQHP8ApvnvZevHfvY9a65OUzB/AH3ucPYuWO0Q==</latexit>

2 B = nf
Af + B = f <latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit>
<latexit sha1_base64="Df63RBUG32geAUdl7q2iGx/W34A=">AAAB7nicbVBNS8NAEJ3Ur1q/qh69LBbBiyURQS9CqRePFewHtKFstpN26WYTdjdCCf0RXjwo4tXf481/47bNQVsfDDzem2FmXpAIro3rfjuFtfWNza3idmlnd2//oHx41NJxqhg2WSxi1QmoRsElNg03AjuJQhoFAtvB+G7mt59QaR7LRzNJ0I/oUPKQM2qs1K6TW3Ihw3654lbdOcgq8XJSgRyNfvmrN4hZGqE0TFCtu56bGD+jynAmcFrqpRoTysZ0iF1LJY1Q+9n83Ck5s8qAhLGyJQ2Zq78nMhppPYkC2xlRM9LL3kz8z+umJrzxMy6T1KBki0VhKoiJyex3MuAKmRETSyhT3N5K2IgqyoxNqGRD8JZfXiWty6rnVr2Hq0qtnsdRhBM4hXPw4BpqcA8NaAKDMTzDK7w5ifPivDsfi9aCk88cwx84nz+5RI6A</latexit>

• Finally, every entry in Mpersp->ortho is known!

• What’s next?
- Do orthographic projection (Mortho) to finish
- Mpersp = Mortho Mpersp!ortho <latexit sha1_base64="WpPNOtMiJjLpI1J0etlrsOBg8DM=">AAACFnicbZDLSgMxFIYz9VbrrerSTbAIbiwzIuhGKLpxI1SwF2hLyaSZTmgmGZIzShnmKdz4Km5cKOJW3Pk2phdBWw8EPv7/HE7O78eCG3DdLye3sLi0vJJfLaytb2xuFbd36kYlmrIaVULppk8ME1yyGnAQrBlrRiJfsIY/uBz5jTumDVfyFoYx60SkL3nAKQErdYtH1900tn6cnVtSGkKV/UhtzfshEK3VPZ443WLJLbvjwvPgTaGEplXtFj/bPUWTiEmgghjT8twYOinRwKlgWaGdGBYTOiB91rIoScRMJx2fleEDq/RwoLR9EvBY/T2RksiYYeTbzohAaGa9kfif10ogOOukXMYJMEkni4JEYFB4lBHucc0oiKEFQjW3f8U0JJpQsLEUbAje7MnzUD8ue27ZuzkpVS6mceTRHtpHh8hDp6iCrlAV1RBFD+gJvaBX59F5dt6c90lrzpnO7KI/5Xx8A9QUoQc=</latexit>

GAMES101 36 Lingqi Yan, UC Santa Barbara


Thank you!

You might also like