Transformation Cont.Lecture 4:
CS180 / 280: Introduction to Computer GraphicsWinter 2021, Lingqi Yan, UC Santa Barbara
http://www.cs.ucsb.edu/~lingqi/teaching/cs180.html
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Announcement• Homework 1 will be released TODAY
- Start early
• The next 2 lectures will be difficult :)
2
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Last Lecture
• Transformation- Why study transformation
- 2D transformations: rotation, scale, shear
- Homogeneous coordinates
- Composite transform
3
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Today• Recap of useful math
• 3D transformations
• Viewing transformation- View / Camera transformation
- Projection transformation
- Orthographic projection
- Perspective projection
4
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Recap: Orthogonal Matrix
5
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Recap: “Extracting a column”
6
<latexit sha1_base64="l74gNFWeYXkvr9x/laDCLzR63ec=">AAACgXicbVHbbtNAEF27F1pTaIDHvqwaQOWByI5AICGkXAqEtyCRtlIcRev1OFllvbZ214jIyn/wXbzxM6jjJBLF6UhHczRz5rKzUS6Fsb7/x3H39g8OHxwdew9PHj0+bTx5emWyQnMY8Uxm+iZiBqRQMLLCSrjJNbA0knAdLfpV/voHaCMy9d0uc5ikbKZEIjizGJo2foURzIQq85RZLX6uvC59SXuIfhh6l+g/IT4j/4J+gPjqhaDif/qQx5n16l0CrPAr1NQfd5Tdak7Vv6acNpp+y18b3SXBljTJ1obTxu8wzniRgrJcMmPGgZ/bScm0FVwCLloYyBlfsBmMkSqWgpmU6wuu6AuMxDTJNEJZuo7erShZaswyjVCJC85NPVcF78uNC5u8n5RC5YUFxTeDkkJSm9HqO2gsNHArl0gY1wJ3pXzONOMWP606QlB/8i65areCty3/25tmp7c9xxE5I+fkggTkHemQARmSEeHkr/Pcee203D33leu77Y3UdbY1z8h/5n64BUKKu9w=</latexit>0
@A B C
D E F
G H I
1
A ·
0
@100
1
A =
0
@A
D
G
1
A
<latexit sha1_base64="3PZB6iMQs0Fs+qPyk5Kl2OxDtOg=">AAACgXicbVHbThsxEPUu1y60pPDIi0VKRR8aeRGISqgSDbf0DSQCSNko8noniYXXu7K9FdGK/+h38dafQUxCpMKGkY7m6MwZezyOcyWtY+yf58/NLywuLX8IVlY/flqrfV6/tllhBLRFpjJzG3MLSmpoO+kU3OYGeBoruInvjsf1mz9grMz0lRvl0E35QMu+FNyh1Kv9jWIYSF3mKXdG3j8Ev+hX2kQcR1FwgvkUcYb8HHML8TuIQCf//ZFIMhdUT2HYESJYxf1zxtlE1ymiVXH2anXWYJOgsySckjqZxkWv9hglmShS0E4obm0nZLnrltw4KRTgoIWFnIs7PoAOUs1TsN1yssEHuo1KQvuZQWhHJ+rrjpKn1o7SGJ044NBWa2PxvVqncP0f3VLqvHCgxctF/UJRl9Hxd9BEGhBOjZBwYSTOSsWQGy4cftp4CWH1ybPkercR7jfY5V79qDldxzLZJFtkh4TkgByRFrkgbSLIk/fF++41/Dn/m8/83Rer7017Nsib8A+fAUdLu98=</latexit>0
@A B C
D E F
G H I
1
A ·
0
@010
1
A =
0
@B
E
H
1
A
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara7 Ren NgCS184/284A
3D Transformations
Use homogeneous coordinates again:
• 3D point = (x, y, z, 1)T
• 3D vector = (x, y, z, 0)T
Use 4×4 matrices for affine transformations�
⇧⇧⇤
x�
y�
z�
1
⇥
⌃⌃⌅ =
�
⇧⇧⇤
a b c txd e f tyg h i tz0 0 0 1
⇥
⌃⌃⌅ ·
�
⇧⇧⇤
xyz1
⇥
⌃⌃⌅
In general, (x, y, z, w) (w != 0) is the 3D point:
(x/w, y/w, z/w)
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara8Ren NgCS184/284A
3D Transformations
Scale
Translation
Coordinate Change(Frame-to-world)
T(tx, ty, tz) =
�
⇧⇧⇤
1 0 0 tx0 1 0 ty0 0 1 tz0 0 0 1
⇥
⌃⌃⌅
S(sx, sy, sz) =
�
⇧⇧⇤
sx 0 0 00 sy 0 00 0 sz 00 0 0 1
⇥
⌃⌃⌅
F(u,v,w,o) =
u v w o0 0 0 1
�
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara9Ren NgCS184/284A
3D Transformations
Rotation around x-, y-, or z-axis
Rx(�) =
�
⇧⇧⇤
1 0 0 00 cos � � sin � 00 sin� cos � 00 0 0 1
⇥
⌃⌃⌅
Ry(�) =
�
⇧⇧⇤
cos � 0 sin� 00 1 0 0
� sin � 0 cos � 00 0 0 1
⇥
⌃⌃⌅
Rz(�) =
�
⇧⇧⇤
cos � � sin� 0 0sin � cos � 0 0
0 0 1 00 0 0 1
⇥
⌃⌃⌅
y
z
x
Rotation around x-axis
Anything strange about Ry?
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara10Ren NgCS184/284A
3D Rotations
Compose any 3D rotation from Rx, Ry, Rz?
• So-called Euler angles
• Often used in flight simulators: roll, pitch, yaw
Rxyz(�,⇥, ⇤) = Rx(�)Ry(⇥)Rz(⇤)
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara11Ren NgCS184/284A
Rodrigues’ Rotation Formula
Rotation by angle α around axis n
How to prove this magic formula?
• Matrix N computes a cross-product: N x = n × x
• Assume orthonormal system e1, e2, n
R(n,↵) = cos(↵) I + (1� cos(↵))nnT + sin(↵)
0
@0 �nz ny
nz 0 �nx
�ny nx 0
1
A
| {z }N
Rn = nRe1 = cos � e1 + sin� e2
Re2 = � sin � e1 + cos � e2
Check out the supplementary material on the course website!
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Today
12
• 3D transformations
• Viewing transformation- View / Camera transformation
- Projection transformation
- Orthographic projection
- Perspective projection
CS180 / 280, Winter 2021 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)
13
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
View / Camera Transformation
• How to perform view transformation?
• Define the camera first- Position
- Look-at / gaze direction
- Up direction (assuming perp. to look-at)
14
Position
Up direction
Look-at direction
~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 sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit><latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit><latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit>
g<latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit>
t<latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit>
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
View / Camera Transformation• Key observation
- If the camera and all objects move together, the “photo” will be the same
15
==
• 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
Y
X
-Z(0, 0, 0)
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
View / Camera Transformation
16
• Transform the camera by- So it’s located at the origin, up at Y, look at -Z
• Mview in math?- Translates e to origin
- Rotates g to -Z
- Rotates t to Y
- Rotates (g x t) To X
- Difficult to write!
Mview<latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit>
Y
X
-Z
~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 sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit><latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit><latexit sha1_base64="fruLMXButdm+3hKupgnEySA42HE=">AAAB7nicbVBNS8NAEJ3Ur1q/oh69LBbBU0lE0GPRi8cK9gPaUDbbSbt0swm7m0IJ/RFePCji1d/jzX/jts1BWx8MPN6bYWZemAqujed9O6WNza3tnfJuZW//4PDIPT5p6SRTDJssEYnqhFSj4BKbhhuBnVQhjUOB7XB8P/fbE1SaJ/LJTFMMYjqUPOKMGiu1exNkOc76btWreQuQdeIXpAoFGn33qzdIWBajNExQrbu+l5ogp8pwJnBW6WUaU8rGdIhdSyWNUQf54twZubDKgESJsiUNWai/J3Iaaz2NQ9sZUzPSq95c/M/rZia6DXIu08ygZMtFUSaIScj8dzLgCpkRU0soU9zeStiIKsqMTahiQ/BXX14nraua79X8x+tq/a6IowxncA6X4MMN1OEBGtAEBmN4hld4c1LnxXl3PpatJaeYOYU/cD5/AJUEj7c=</latexit>
g<latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit><latexit sha1_base64="JRmPpRc6+ziFmRSUNjVSJ5Dkido=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFfDjtV6p+zZ+DrJKgIFUo0OhXvnoDzbKEK2SSWtsN/BTDnBoUTPJpuZdZnlI2pkPedVTRhNswn587JedOGZBYG1cKyVz9PZHTxNpJErnOhOLILnsz8T+vm2F8E+ZCpRlyxRaL4kwS1GT2OxkIwxnKiSOUGeFuJWxEDWXoEiq7EILll1dJ67IW+LXg4apavy3iKMEpnMEFBHANdbiHBjSBwRie4RXevNR78d69j0XrmlfMnMAfeJ8/lmePuA==</latexit>
t<latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit><latexit sha1_base64="qTVnGIGoy9VTmA6RVP920/L8OkE=">AAAB7nicbVDLSgNBEOz1GeMr6tHLYBA8hV0R9Bj04jGCeUCyhNnJbDJkdmaZ6RXCko/w4kERr36PN//GSbIHTSxoKKq66e6KUiks+v63t7a+sbm1Xdop7+7tHxxWjo5bVmeG8SbTUptORC2XQvEmCpS8kxpOk0jydjS+m/ntJ26s0OoRJykPEzpUIhaMopPavRHFHKf9StWv+XOQVRIUpAoFGv3KV2+gWZZwhUxSa7uBn2KYU4OCST4t9zLLU8rGdMi7jiqacBvm83On5NwpAxJr40ohmau/J3KaWDtJIteZUBzZZW8m/ud1M4xvwlyoNEOu2GJRnEmCmsx+JwNhOEM5cYQyI9ythI2ooQxdQmUXQrD88ippXdYCvxY8XFXrt0UcJTiFM7iAAK6hDvfQgCYwGMMzvMKbl3ov3rv3sWhd84qZE/gD7/MHqiiPxQ==</latexit>
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
View / Camera Transformation
17
• in math?- Let’s write
- Translate e to origin
- 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
Mview<latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit><latexit sha1_base64="qUG8zMQxKJZhoh6+ZB/njTmSiQk=">AAAB73icbVBNS8NAEJ34WetX1aOXxSJ4KokIeix68SJUsB/QhrLZTtqlm03c3VRK6J/w4kERr/4db/4bt20O2vpg4PHeDDPzgkRwbVz321lZXVvf2CxsFbd3dvf2SweHDR2nimGdxSJWrYBqFFxi3XAjsJUopFEgsBkMb6Z+c4RK81g+mHGCfkT7koecUWOl1l03G3F8mnRLZbfizkCWiZeTMuSodUtfnV7M0gilYYJq3fbcxPgZVYYzgZNiJ9WYUDakfWxbKmmE2s9m907IqVV6JIyVLWnITP09kdFI63EU2M6ImoFe9Kbif147NeGVn3GZpAYlmy8KU0FMTKbPkx5XyIwYW0KZ4vZWwgZUUWZsREUbgrf48jJpnFc8t+LdX5Sr13kcBTiGEzgDDy6hCrdQgzowEPAMr/DmPDovzrvzMW9dcfKZI/gD5/MHWiWQKQ==</latexit>
WHY?
Mview = RviewTview<latexit sha1_base64="xHF1BYcc/r6NW/eK+ByaqBNbREc=">AAACAnicbZDLSgMxFIbP1Futt1FX4iZYBFdlRgTdCEU3boQqvUE7DJk0bUMzmSHJVMpQ3Pgqblwo4tancOfbmLaz0NYDIR//fw7J+YOYM6Ud59vKLS2vrK7l1wsbm1vbO/buXl1FiSS0RiIeyWaAFeVM0JpmmtNmLCkOA04bweB64jeGVCoWiaoexdQLcU+wLiNYG8m3D279dMjow/jyPoNqdvt20Sk500KL4GZQhKwqvv3V7kQkCanQhGOlWq4Tay/FUjPC6bjQThSNMRngHm0ZFDikykunK4zRsVE6qBtJc4RGU/X3RIpDpUZhYDpDrPtq3puI/3mtRHcvvJSJONFUkNlD3YQjHaFJHqjDJCWajwxgIpn5KyJ9LDHRJrWCCcGdX3kR6qcl1ym5d2fF8lUWRx4O4QhOwIVzKMMNVKAGBB7hGV7hzXqyXqx362PWmrOymX34U9bnD15TmAs=</latexit><latexit sha1_base64="xHF1BYcc/r6NW/eK+ByaqBNbREc=">AAACAnicbZDLSgMxFIbP1Futt1FX4iZYBFdlRgTdCEU3boQqvUE7DJk0bUMzmSHJVMpQ3Pgqblwo4tancOfbmLaz0NYDIR//fw7J+YOYM6Ud59vKLS2vrK7l1wsbm1vbO/buXl1FiSS0RiIeyWaAFeVM0JpmmtNmLCkOA04bweB64jeGVCoWiaoexdQLcU+wLiNYG8m3D279dMjow/jyPoNqdvt20Sk500KL4GZQhKwqvv3V7kQkCanQhGOlWq4Tay/FUjPC6bjQThSNMRngHm0ZFDikykunK4zRsVE6qBtJc4RGU/X3RIpDpUZhYDpDrPtq3puI/3mtRHcvvJSJONFUkNlD3YQjHaFJHqjDJCWajwxgIpn5KyJ9LDHRJrWCCcGdX3kR6qcl1ym5d2fF8lUWRx4O4QhOwIVzKMMNVKAGBB7hGV7hzXqyXqx362PWmrOymX34U9bnD15TmAs=</latexit><latexit sha1_base64="xHF1BYcc/r6NW/eK+ByaqBNbREc=">AAACAnicbZDLSgMxFIbP1Futt1FX4iZYBFdlRgTdCEU3boQqvUE7DJk0bUMzmSHJVMpQ3Pgqblwo4tancOfbmLaz0NYDIR//fw7J+YOYM6Ud59vKLS2vrK7l1wsbm1vbO/buXl1FiSS0RiIeyWaAFeVM0JpmmtNmLCkOA04bweB64jeGVCoWiaoexdQLcU+wLiNYG8m3D279dMjow/jyPoNqdvt20Sk500KL4GZQhKwqvv3V7kQkCanQhGOlWq4Tay/FUjPC6bjQThSNMRngHm0ZFDikykunK4zRsVE6qBtJc4RGU/X3RIpDpUZhYDpDrPtq3puI/3mtRHcvvJSJONFUkNlD3YQjHaFJHqjDJCWajwxgIpn5KyJ9LDHRJrWCCcGdX3kR6qcl1ym5d2fF8lUWRx4O4QhOwIVzKMMNVKAGBB7hGV7hzXqyXqx362PWmrOymX34U9bnD15TmAs=</latexit><latexit sha1_base64="xHF1BYcc/r6NW/eK+ByaqBNbREc=">AAACAnicbZDLSgMxFIbP1Futt1FX4iZYBFdlRgTdCEU3boQqvUE7DJk0bUMzmSHJVMpQ3Pgqblwo4tancOfbmLaz0NYDIR//fw7J+YOYM6Ud59vKLS2vrK7l1wsbm1vbO/buXl1FiSS0RiIeyWaAFeVM0JpmmtNmLCkOA04bweB64jeGVCoWiaoexdQLcU+wLiNYG8m3D279dMjow/jyPoNqdvt20Sk500KL4GZQhKwqvv3V7kQkCanQhGOlWq4Tay/FUjPC6bjQThSNMRngHm0ZFDikykunK4zRsVE6qBtJc4RGU/X3RIpDpUZhYDpDrPtq3puI/3mtRHcvvJSJONFUkNlD3YQjHaFJHqjDJCWajwxgIpn5KyJ9LDHRJrWCCcGdX3kR6qcl1ym5d2fF8lUWRx4O4QhOwIVzKMMNVKAGBB7hGV7hzXqyXqx362PWmrOymX34U9bnD15TmAs=</latexit>
Tview =
2
664
1 0 0 �xe
0 1 0 �ye0 0 1 �ze0 0 0 1
3
775
<latexit sha1_base64="7v4QSZEjspNepsEFl4IrOfaqQeg=">AAACVnicbZHPS8MwFMfTTt2cv6oevQSH4mWjFUEvwtCLxwnbFNZR0uxtBtO0JKk6y/5Jveif4kXMus7fDx58+bz3kpdvwoQzpV331bJLC4tL5cpydWV1bX3D2dzqqjiVFDo05rG8DokCzgR0NNMcrhMJJAo5XIW359P61R1IxWLR1uME+hEZCTZklGiDAidqB9kdg/vJqR/CiIksjIiW7GHi4X3sFll/CAD7fq7nvD7+YnNefwzgG8qxD2LweWjg1NyGmwf+K7xC1FARrcB58gcxTSMQmnKiVM9zE93PiNSMcphU/VRBQugtGUHPSEEiUP0st2WC9wwZ4GEsTQqNc/p9IiORUuMoNJ1mvxv1uzaF/9V6qR6e9DMmklSDoLOLhinHOsZTj/GASaCaj40gVDKzK6Y3RBKqzU9UjQne7yf/Fd3Dhuc2vMujWvOssKOCdtAuOkAeOkZNdIFaqIMoekZvlm2VrBfr3V60y7NW2ypmttGPsJ0Pd6epqQ==</latexit><latexit sha1_base64="7v4QSZEjspNepsEFl4IrOfaqQeg=">AAACVnicbZHPS8MwFMfTTt2cv6oevQSH4mWjFUEvwtCLxwnbFNZR0uxtBtO0JKk6y/5Jveif4kXMus7fDx58+bz3kpdvwoQzpV331bJLC4tL5cpydWV1bX3D2dzqqjiVFDo05rG8DokCzgR0NNMcrhMJJAo5XIW359P61R1IxWLR1uME+hEZCTZklGiDAidqB9kdg/vJqR/CiIksjIiW7GHi4X3sFll/CAD7fq7nvD7+YnNefwzgG8qxD2LweWjg1NyGmwf+K7xC1FARrcB58gcxTSMQmnKiVM9zE93PiNSMcphU/VRBQugtGUHPSEEiUP0st2WC9wwZ4GEsTQqNc/p9IiORUuMoNJ1mvxv1uzaF/9V6qR6e9DMmklSDoLOLhinHOsZTj/GASaCaj40gVDKzK6Y3RBKqzU9UjQne7yf/Fd3Dhuc2vMujWvOssKOCdtAuOkAeOkZNdIFaqIMoekZvlm2VrBfr3V60y7NW2ypmttGPsJ0Pd6epqQ==</latexit><latexit sha1_base64="7v4QSZEjspNepsEFl4IrOfaqQeg=">AAACVnicbZHPS8MwFMfTTt2cv6oevQSH4mWjFUEvwtCLxwnbFNZR0uxtBtO0JKk6y/5Jveif4kXMus7fDx58+bz3kpdvwoQzpV331bJLC4tL5cpydWV1bX3D2dzqqjiVFDo05rG8DokCzgR0NNMcrhMJJAo5XIW359P61R1IxWLR1uME+hEZCTZklGiDAidqB9kdg/vJqR/CiIksjIiW7GHi4X3sFll/CAD7fq7nvD7+YnNefwzgG8qxD2LweWjg1NyGmwf+K7xC1FARrcB58gcxTSMQmnKiVM9zE93PiNSMcphU/VRBQugtGUHPSEEiUP0st2WC9wwZ4GEsTQqNc/p9IiORUuMoNJ1mvxv1uzaF/9V6qR6e9DMmklSDoLOLhinHOsZTj/GASaCaj40gVDKzK6Y3RBKqzU9UjQne7yf/Fd3Dhuc2vMujWvOssKOCdtAuOkAeOkZNdIFaqIMoekZvlm2VrBfr3V60y7NW2ypmttGPsJ0Pd6epqQ==</latexit><latexit sha1_base64="7v4QSZEjspNepsEFl4IrOfaqQeg=">AAACVnicbZHPS8MwFMfTTt2cv6oevQSH4mWjFUEvwtCLxwnbFNZR0uxtBtO0JKk6y/5Jveif4kXMus7fDx58+bz3kpdvwoQzpV331bJLC4tL5cpydWV1bX3D2dzqqjiVFDo05rG8DokCzgR0NNMcrhMJJAo5XIW359P61R1IxWLR1uME+hEZCTZklGiDAidqB9kdg/vJqR/CiIksjIiW7GHi4X3sFll/CAD7fq7nvD7+YnNefwzgG8qxD2LweWjg1NyGmwf+K7xC1FARrcB58gcxTSMQmnKiVM9zE93PiNSMcphU/VRBQugtGUHPSEEiUP0st2WC9wwZ4GEsTQqNc/p9IiORUuMoNJ1mvxv1uzaF/9V6qR6e9DMmklSDoLOLhinHOsZTj/GASaCaj40gVDKzK6Y3RBKqzU9UjQne7yf/Fd3Dhuc2vMujWvOssKOCdtAuOkAeOkZNdIFaqIMoekZvlm2VrBfr3V60y7NW2ypmttGPsJ0Pd6epqQ==</latexit>
R�1view =
2
664
xg⇥t xt x�g 0yg⇥t yt y�g 0zg⇥t zt z�g 00 0 0 1
3
775
<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><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><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><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>
Rview =
2
664
xg⇥t yg⇥t zg⇥t 0xt yt zt 0x�g y�g z�g 00 0 0 1
3
775
<latexit sha1_base64="TaBFaV1y/08M5o/IEHLmsCoFMK0=">AAACrXicfVHbbtQwEHXCraRctvSRF4tVEUJiSdBK9AWpal94XFC3LayXyPHOZq06TmRPSrdW/q5fwBt/gzcbCrSoI410fM7MeC5ZpaTFOP4ZhHfu3rv/YONhtPno8ZOnva1nR7asjYCxKFVpTjJuQUkNY5So4KQywItMwXF2erDSj8/AWFnqQ1xWMC14ruVcCo6eSnuXn1N3JuF784FlkEvtsoKjkedNdJ46tuDo8oahLMDS9oVNQ1/S5S3axS1aTBnzhbEtgW0w/qHdm7wrvgYXv0Grxy1YexIx0LOrXtNePx7ErdGbIOlAn3Q2Sns/2KwUdQEaheLWTpK4wqnjBqVQ0ESstlBxccpzmHiouZ9j6tptN3THMzM6L413jbRl/85wvLB2WWQ+0ve3sNe1Ffk/bVLjfHfqpK5qBC3WH81rRbGkq9PRmTQgUC094MJI3ysVC264QH/gyC8huT7yTXD0bpAMB8NPw/7efreODfKcvCCvSELekz3ykYzImIjgdTAKvgRfw7fhOGTht3VoGHQ52+QfC/Nfpi7N+g==</latexit>
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
View / Camera Transformation
18
• 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!
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Today
19
• 3D transformations
• Viewing transformation- View / Camera transformation
- Projection transformation
- Orthographic projection
- Perspective projection
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Projection Transformation• Projection in Computer Graphics
- 3D to 2D
- Orthographic projection
- Perspective projection
20
Fig. 7.1 from Fundamentals of Computer Graphics, 4th Edition
Orthographicprojection
Perspectiveprojection
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Projection Transformation• Perspective projection vs. orthographic projection
21
https://stackoverflow.com/questions/36573283/from-perspective-picture-to-orthographic-picture
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Projection Transformation• Why is the pigeon so big?
22
Pigeon
Wall
People
CS180 / 280, Winter 2021 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
23
CS180 / 280, Winter 2021 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
24
x
z
y
l r
t
bn
f
x
z
Translate
y
x
z
y
Scale
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Orthographic Projection• Slightly different orders (to the “simple way”)
- Center cuboid by translating
- Scale into “canonical” cube
25
x
z
y
l r
t
bn
f
x
z
Translate
y
x
z
y
Scale
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara
Orthographic Projection• Transformation matrix?
- Translate (center to origin) first, then scale (length/width/height to 2)
26
x
z
y
l r
t
bn
f
x
z
Translate
y
x
z
y
Scale
Mortho =
2
664
2r�l 0 0 00 2
t�b 0 00 0 2
n�f 00 0 0 1
3
775
2
664
1 0 0 � r+l2
0 1 0 � t+b2
0 0 1 �n+f2
0 0 0 1
3
775
<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><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><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><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>
CS180 / 280, Winter 2021 Lingqi Yan, UC Santa Barbara27
Ren NgCS184/284A
3D Transformations
Use homogeneous coordinates again:
• 3D point = (x, y, z, 1)T
• 3D vector = (x, y, z, 0)T
Use 4×4 matrices for affine transformations�
⇧⇧⇤
x�
y�
z�
1
⇥
⌃⌃⌅ =
�
⇧⇧⇤
a b c txd e f tyg h i tz0 0 0 1
⇥
⌃⌃⌅ ·
�
⇧⇧⇤
xyz1
⇥
⌃⌃⌅
What’s the order? Linear Transform first or Translation first?
Recall: The Implicit Order
CS180 / 280, Winter 2021 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.
28
x
z
y
l r
t
bn
f
x
z
Translate
y
x
z
y
Scale
Thank you!