+ All Categories
Home > Documents > Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine...

Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine...

Date post: 11-Jul-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
37
Introduction to Computer Graphics GAMES101, Lingqi Yan, UC Santa Barbara Transformation Cont. Lecture 4: http://www.cs.ucsb.edu/~lingqi/teaching/games101.html
Transcript
Page 1: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

Introduction to Computer GraphicsGAMES101, Lingqi Yan, UC Santa Barbara

Transformation Cont.Lecture 4:

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

Page 2: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Announcement

• Homework 0 will be released TODAY

• This lecture will be difficult :)

2

Page 3: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Last Lecture• Transformation

- Why study transformation

- 2D transformations: rotation, scale, shear

- Homogeneous coordinates

- Composite transform

- 3D transformations

3

Page 4: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Today• 3D transformations

• Viewing (观测) transformation

- View (视图) / Camera transformation

- Projection (投影) transformation

- Orthographic (正交) projection

- Perspective (透视) projection

4

Page 5: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 5 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)

Page 6: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 6

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

⌃⌃⌅

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?

Page 7: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 7Ren 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

Page 8: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 8Ren 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?

Page 9: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 9Ren 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(⇤)

Page 10: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara 10Ren 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!

Page 11: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Today

11

• 3D transformations

• Viewing transformation

- View / Camera transformation

- Projection transformation

- Orthographic projection

- Perspective projection

Page 12: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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)

12

Page 13: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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)

13

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>

Page 14: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

View / Camera Transformation• Key observation

- If the camera and all objects move together, the “photo” will be the same

14

==

• 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)

Page 15: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

View / Camera Transformation

15

• 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>

Page 16: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

View / Camera Transformation

16

• 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>

Page 17: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

View / Camera Transformation

17

• 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!

Page 18: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Today

18

• 3D transformations

• Viewing transformation

- View / Camera transformation

- Projection transformation

- Orthographic projection

- Perspective projection

Page 19: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Projection Transformation• Projection in Computer Graphics

- 3D to 2D

- Orthographic projection

- Perspective projection

19

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

Orthographicprojection

Perspectiveprojection

Page 20: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Projection Transformation• Perspective projection vs. orthographic projection

20

https://stackoverflow.com/questions/36573283/from-perspective-picture-to-orthographic-picture

Page 21: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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

21

Page 22: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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

22

x

z

y

l r

t

bn

f

x

z

Translate

y

x

z

y

Scale

Page 23: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Orthographic Projection• Slightly different orders (to the “simple way”)

- Center cuboid by translating

- Scale into “canonical” cube

23

x

z

y

l r

t

bn

f

x

z

Translate

y

x

z

y

Scale

Page 24: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Orthographic Projection• Transformation matrix?

- Translate (center to origin) first, then scale (length/width/height to 2)

24

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>

Page 25: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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.

25

x

z

y

l r

t

bn

f

x

z

Translate

y

x

z

y

Scale

Page 26: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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

26

B

A’

B’

Center of projection (camera/eye location)

AImage Plane, or Plane of Projection

Page 27: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection• Euclid was wrong??!!

27

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

Page 28: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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

28

Page 29: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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!)

29

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

Frustum Cuboid

n f n f

Page 30: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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)

30

n

Y

Z

z

(x, y, z)

(x’, y’, z’)

y0 =n

zy

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

similar triangle

Page 31: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 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)

31

y0 =n

zy

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

x0 =n

zx

<latexit sha1_base64="9Vy/9JhE+ej/RY4O2ZmdE3kknpU=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjfSNuSXePGgiFd/ijf/jds2B219MPB4b4aZeX7MmdKO820V1tY3NreK26Wd3b39sn1w2FRRIgltkIhHsu1jRTkTtKGZ5rQdS4pDn9OWP7qb+a0nKhWLxKOexNQL8UCwgBGsjdSzy+Ozm24gMUlFlk6zcc+uOFVnDrRK3JxUIEe9Z391+xFJQio04VipjuvE2kux1IxwmpW6iaIxJiM8oB1DBQ6p8tL54Rk6NUofBZE0JTSaq78nUhwqNQl90xliPVTL3kz8z+skOrj2UibiRFNBFouChCMdoVkKqM8kJZpPDMFEMnMrIkNsYtAmq5IJwV1+eZU0L6quU3UfLiu12zyOIhzDCZyDC1dQg3uoQwMIJPAMr/BmTa0X6936WLQWrHzmCP7A+vwBI3STZQ==</latexit><latexit sha1_base64="9Vy/9JhE+ej/RY4O2ZmdE3kknpU=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjfSNuSXePGgiFd/ijf/jds2B219MPB4b4aZeX7MmdKO820V1tY3NreK26Wd3b39sn1w2FRRIgltkIhHsu1jRTkTtKGZ5rQdS4pDn9OWP7qb+a0nKhWLxKOexNQL8UCwgBGsjdSzy+Ozm24gMUlFlk6zcc+uOFVnDrRK3JxUIEe9Z391+xFJQio04VipjuvE2kux1IxwmpW6iaIxJiM8oB1DBQ6p8tL54Rk6NUofBZE0JTSaq78nUhwqNQl90xliPVTL3kz8z+skOrj2UibiRFNBFouChCMdoVkKqM8kJZpPDMFEMnMrIkNsYtAmq5IJwV1+eZU0L6quU3UfLiu12zyOIhzDCZyDC1dQg3uoQwMIJPAMr/BmTa0X6936WLQWrHzmCP7A+vwBI3STZQ==</latexit><latexit sha1_base64="9Vy/9JhE+ej/RY4O2ZmdE3kknpU=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjfSNuSXePGgiFd/ijf/jds2B219MPB4b4aZeX7MmdKO820V1tY3NreK26Wd3b39sn1w2FRRIgltkIhHsu1jRTkTtKGZ5rQdS4pDn9OWP7qb+a0nKhWLxKOexNQL8UCwgBGsjdSzy+Ozm24gMUlFlk6zcc+uOFVnDrRK3JxUIEe9Z391+xFJQio04VipjuvE2kux1IxwmpW6iaIxJiM8oB1DBQ6p8tL54Rk6NUofBZE0JTSaq78nUhwqNQl90xliPVTL3kz8z+skOrj2UibiRFNBFouChCMdoVkKqM8kJZpPDMFEMnMrIkNsYtAmq5IJwV1+eZU0L6quU3UfLiu12zyOIhzDCZyDC1dQg3uoQwMIJPAMr/BmTa0X6936WLQWrHzmCP7A+vwBI3STZQ==</latexit><latexit sha1_base64="9Vy/9JhE+ej/RY4O2ZmdE3kknpU=">AAAB+HicbVBNS8NAEJ3Ur1o/GvXoZbGInkoigl6EohePFewHtKFstpt26WYTdjfSNuSXePGgiFd/ijf/jds2B219MPB4b4aZeX7MmdKO820V1tY3NreK26Wd3b39sn1w2FRRIgltkIhHsu1jRTkTtKGZ5rQdS4pDn9OWP7qb+a0nKhWLxKOexNQL8UCwgBGsjdSzy+Ozm24gMUlFlk6zcc+uOFVnDrRK3JxUIEe9Z391+xFJQio04VipjuvE2kux1IxwmpW6iaIxJiM8oB1DBQ6p8tL54Rk6NUofBZE0JTSaq78nUhwqNQl90xliPVTL3kz8z+skOrj2UibiRFNBFouChCMdoVkKqM8kJZpPDMFEMnMrIkNsYtAmq5IJwV1+eZU0L6quU3UfLiu12zyOIhzDCZyDC1dQg3uoQwMIJPAMr/BmTa0X6936WLQWrHzmCP7A+vwBI3STZQ==</latexit>

(similar to y’)

• In homogeneous coordinates, 0

BB@

xyz1

1

CCA )

0

BB@

nx/zny/z

unknown1

1

CCA ==

0

BB@

nxny

still unknownz

1

CCA

<latexit sha1_base64="nZO54NGfca8TDoXBiZdVBA1kZVc=">AAACrHicbVFNTxsxEPVuvyD9SuHIxWpUqb2ku6gSXJBQuXArIAKp4lXkdWYTK157Zc+WLKv8uv4Dbv03eJOoCgkjefz0ZubZM5MWSjqMon9B+OLlq9dvdnZbb9+9//Cx/WnvxpnSCugJo4ztp9yBkhp6KFFBv7DA81TBbTo9a+K3f8A6afQ1VgUkOR9rmUnB0VPD9l+Wwljqusg5WjmbzyhjtGrcfeNiBnr0P0jZlRxPkFtr7uhGoZ59X1Toankzz09sXpd6qs2dnj+jdnKyLbKUWBdwKJVilK4L3T8RGrY7UTdaGN0G8Qp0yMouhu0HNjKizEGjUNy5QRwVmNTcohQK5i1WOii4mPIxDDzUPAeX1Ithz+kXz4xoZqw/GumCXa+oee5clac+s+nAbcYa8rnYoMTsOKmlLkoELZYPZaWiaGizOTqSFgSqygMurPR/pWLCLRfo99vyQ4g3W94GN4fdOOrGlz86pz9X49ghB+Qz+UpickROyTm5ID0igm/Br6Af/A674XU4CJNlahisavbJEwuzR7Y51SQ=</latexit><latexit sha1_base64="nZO54NGfca8TDoXBiZdVBA1kZVc=">AAACrHicbVFNTxsxEPVuvyD9SuHIxWpUqb2ku6gSXJBQuXArIAKp4lXkdWYTK157Zc+WLKv8uv4Dbv03eJOoCgkjefz0ZubZM5MWSjqMon9B+OLlq9dvdnZbb9+9//Cx/WnvxpnSCugJo4ztp9yBkhp6KFFBv7DA81TBbTo9a+K3f8A6afQ1VgUkOR9rmUnB0VPD9l+Wwljqusg5WjmbzyhjtGrcfeNiBnr0P0jZlRxPkFtr7uhGoZ59X1Toankzz09sXpd6qs2dnj+jdnKyLbKUWBdwKJVilK4L3T8RGrY7UTdaGN0G8Qp0yMouhu0HNjKizEGjUNy5QRwVmNTcohQK5i1WOii4mPIxDDzUPAeX1Ithz+kXz4xoZqw/GumCXa+oee5clac+s+nAbcYa8rnYoMTsOKmlLkoELZYPZaWiaGizOTqSFgSqygMurPR/pWLCLRfo99vyQ4g3W94GN4fdOOrGlz86pz9X49ghB+Qz+UpickROyTm5ID0igm/Br6Af/A674XU4CJNlahisavbJEwuzR7Y51SQ=</latexit><latexit sha1_base64="nZO54NGfca8TDoXBiZdVBA1kZVc=">AAACrHicbVFNTxsxEPVuvyD9SuHIxWpUqb2ku6gSXJBQuXArIAKp4lXkdWYTK157Zc+WLKv8uv4Dbv03eJOoCgkjefz0ZubZM5MWSjqMon9B+OLlq9dvdnZbb9+9//Cx/WnvxpnSCugJo4ztp9yBkhp6KFFBv7DA81TBbTo9a+K3f8A6afQ1VgUkOR9rmUnB0VPD9l+Wwljqusg5WjmbzyhjtGrcfeNiBnr0P0jZlRxPkFtr7uhGoZ59X1Toankzz09sXpd6qs2dnj+jdnKyLbKUWBdwKJVilK4L3T8RGrY7UTdaGN0G8Qp0yMouhu0HNjKizEGjUNy5QRwVmNTcohQK5i1WOii4mPIxDDzUPAeX1Ithz+kXz4xoZqw/GumCXa+oee5clac+s+nAbcYa8rnYoMTsOKmlLkoELZYPZaWiaGizOTqSFgSqygMurPR/pWLCLRfo99vyQ4g3W94GN4fdOOrGlz86pz9X49ghB+Qz+UpickROyTm5ID0igm/Br6Af/A674XU4CJNlahisavbJEwuzR7Y51SQ=</latexit><latexit sha1_base64="nZO54NGfca8TDoXBiZdVBA1kZVc=">AAACrHicbVFNTxsxEPVuvyD9SuHIxWpUqb2ku6gSXJBQuXArIAKp4lXkdWYTK157Zc+WLKv8uv4Dbv03eJOoCgkjefz0ZubZM5MWSjqMon9B+OLlq9dvdnZbb9+9//Cx/WnvxpnSCugJo4ztp9yBkhp6KFFBv7DA81TBbTo9a+K3f8A6afQ1VgUkOR9rmUnB0VPD9l+Wwljqusg5WjmbzyhjtGrcfeNiBnr0P0jZlRxPkFtr7uhGoZ59X1Toankzz09sXpd6qs2dnj+jdnKyLbKUWBdwKJVilK4L3T8RGrY7UTdaGN0G8Qp0yMouhu0HNjKizEGjUNy5QRwVmNTcohQK5i1WOii4mPIxDDzUPAeX1Ithz+kXz4xoZqw/GumCXa+oee5clac+s+nAbcYa8rnYoMTsOKmlLkoELZYPZaWiaGizOTqSFgSqygMurPR/pWLCLRfo99vyQ4g3W94GN4fdOOrGlz86pz9X49ghB+Qz+UpickROyTm5ID0igm/Br6Af/A674XU4CJNlahisavbJEwuzR7Y51SQ=</latexit>

mult. by z

Page 32: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection

32

• So the “squish” (persp to ortho) projection does this

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

M (4⇥4)persp!ortho

0

BB@

xyz1

1

CCA =

0

BB@

nxny

unknownz

1

CCA

<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="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="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="9YCEgySZyET2l27Cv8DYo61N3vw=">AAACfnicbVHLThsxFPVMXzSlbSjLbtxGINqq6QyKBJtKqN2wQaJSA0hxGnmcm8SKx7bsO0A6ms/gx9jxLd3UM0QVhF7J1tE599j3kVklPSbJTRQ/evzk6bO1560X6y9fvW5vvDnxpnAC+sIo484y7kFJDX2UqODMOuB5puA0m3+v9dNzcF4a/RMXFoY5n2o5kYJjoEbtq6NRaYNuKXNyOkPunLmgxuHMVL/KnR5DmYOnvQ8Vy2AqdWlzjk5eVpeUMbqor9/1lTLQ438i/UpX0nWTrxsDC9zM5WWh59pc6Kp55J5/1O4k3aQJ+hCkS9Ahyzgeta/Z2IgiB41Cce8HaWJxWHKHUiioWqzwYLmY8ykMAtQ8NDUsm/FVdCswYzoxLhyNtGHvOkqee7/Is5BZV+5XtZr8nzYocLI/LKW2BYIWtx9NCkXR0HoXdCwdCFSLALhwMtRKxYw7LjBspBWGkK62/BCc7HbTpJv+6HUOvi3HsUbekvdkh6RkjxyQQ3JM+kSQP9G76GP0KSbxdvw5/nKbGkdLzya5F/H+Xzk1wwo=</latexit>

Mpersp!ortho =

0

BB@

n 0 0 00 n 0 0? ? ? ?0 0 1 0

1

CCA

<latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit>

WHY?

Page 33: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection

33

• How to figure out the third row of Mpersp->ortho

- Any information that we can use?

Mpersp!ortho =

0

BB@

n 0 0 00 n 0 0? ? ? ?0 0 1 0

1

CCA

<latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit><latexit sha1_base64="5wR38YN7MeBsxyA3t6hOFh5Zdpo=">AAACYXicbVBNTxsxEPVuUz5CgYUec7GIQJyiXYREL1URvfRSKZUIRMpGkdeZJBZe27JnKdEqf7K3XrjwR+oNqzR8jPTkp/dm7PHLjBQO4/hvEH5ofNzY3Npu7nza3duPDg5vnC4shx7XUtt+xhxIoaCHAiX0jQWWZxJus7vvlX97D9YJra5xbmCYs6kSE8EZemkUPfwclcb7hqZWTGfIrNW/qbY404uvaQZToUqTM7TiYaHoCY1XSNMlUevCN0/+o+6okFRnCmq8umwUteNOvCz6liQ1aZO6uqPoTzrWvMhBIZfMuUESGxyWzKLgEhbNtHBgGL9jUxh4qlgOblguE1rQY6+M6URbD4V0qa5PlCx3bp5nvtPvN3OvvUp8zxsUOPkyLIUyBYLizw9NCklR0ypuOhYWOMq5J4xb4XelfMYs4+hDb/oQktdffktuzjpJ3El+nbcvr+o4tkiLHJFTkpALckl+kC7pEU4eg0awG+wFT+F2GIWHz61hUM98Ji8qbP0DL02s1Q==</latexit>

• 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

Page 34: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection

34

• Any point on the near plane will not change0

BB@

xyn1

1

CCA )

0

BB@

xyn1

1

CCA ==

0

BB@

nxnyn2

n

1

CCA

<latexit sha1_base64="Rgv8ma+pWaANoPAAKsPdBWNLMVw=">AAACg3iclVFNTwIxEO2uoohfqEcvjURjYoK7hEQvJEQvHtHIR8Ii6ZYBGrrdTdtVyIY/4s/y5r+xuxCj4MVJOn15b146nfEjzpR2nE/L3tjMbW3ndwq7e/sHh8Wj45YKY0mhSUMeyo5PFHAmoKmZ5tCJJJDA59D2J/ep3n4FqVgonvUsgl5ARoINGSXaUP3iu+fDiIkkCoiWbDqfYs/DszSJNLkeiMG3iL0nNhprImX4hv9lrNXwqkFkDrGwvFSy65epXyw5ZScLvA7cJSihZTT6xQ9vENI4AKEpJ0p1XSfSvYRIzSiHecGLFUSETsgIugYKEoDqJdkM5/jcMAM8DKU5QuOM/elISKDULPBNpelvrFa1lPxL68Z6eNtLmIhiDYIuHhrGHOsQpwvBAyaBaj4zgFDJTK+YjokkVJu1FcwQ3NUvr4NWpew6ZfexWqrfLceRR6foDF0iF92gOnpADdRE1ELWhXVtOXbOvrIrdnVRaltLzwn6FXbtC3MlwjI=</latexit><latexit sha1_base64="Rgv8ma+pWaANoPAAKsPdBWNLMVw=">AAACg3iclVFNTwIxEO2uoohfqEcvjURjYoK7hEQvJEQvHtHIR8Ii6ZYBGrrdTdtVyIY/4s/y5r+xuxCj4MVJOn15b146nfEjzpR2nE/L3tjMbW3ndwq7e/sHh8Wj45YKY0mhSUMeyo5PFHAmoKmZ5tCJJJDA59D2J/ep3n4FqVgonvUsgl5ARoINGSXaUP3iu+fDiIkkCoiWbDqfYs/DszSJNLkeiMG3iL0nNhprImX4hv9lrNXwqkFkDrGwvFSy65epXyw5ZScLvA7cJSihZTT6xQ9vENI4AKEpJ0p1XSfSvYRIzSiHecGLFUSETsgIugYKEoDqJdkM5/jcMAM8DKU5QuOM/elISKDULPBNpelvrFa1lPxL68Z6eNtLmIhiDYIuHhrGHOsQpwvBAyaBaj4zgFDJTK+YjokkVJu1FcwQ3NUvr4NWpew6ZfexWqrfLceRR6foDF0iF92gOnpADdRE1ELWhXVtOXbOvrIrdnVRaltLzwn6FXbtC3MlwjI=</latexit><latexit sha1_base64="Rgv8ma+pWaANoPAAKsPdBWNLMVw=">AAACg3iclVFNTwIxEO2uoohfqEcvjURjYoK7hEQvJEQvHtHIR8Ii6ZYBGrrdTdtVyIY/4s/y5r+xuxCj4MVJOn15b146nfEjzpR2nE/L3tjMbW3ndwq7e/sHh8Wj45YKY0mhSUMeyo5PFHAmoKmZ5tCJJJDA59D2J/ep3n4FqVgonvUsgl5ARoINGSXaUP3iu+fDiIkkCoiWbDqfYs/DszSJNLkeiMG3iL0nNhprImX4hv9lrNXwqkFkDrGwvFSy65epXyw5ZScLvA7cJSihZTT6xQ9vENI4AKEpJ0p1XSfSvYRIzSiHecGLFUSETsgIugYKEoDqJdkM5/jcMAM8DKU5QuOM/elISKDULPBNpelvrFa1lPxL68Z6eNtLmIhiDYIuHhrGHOsQpwvBAyaBaj4zgFDJTK+YjokkVJu1FcwQ3NUvr4NWpew6ZfexWqrfLceRR6foDF0iF92gOnpADdRE1ELWhXVtOXbOvrIrdnVRaltLzwn6FXbtC3MlwjI=</latexit><latexit sha1_base64="Rgv8ma+pWaANoPAAKsPdBWNLMVw=">AAACg3iclVFNTwIxEO2uoohfqEcvjURjYoK7hEQvJEQvHtHIR8Ii6ZYBGrrdTdtVyIY/4s/y5r+xuxCj4MVJOn15b146nfEjzpR2nE/L3tjMbW3ndwq7e/sHh8Wj45YKY0mhSUMeyo5PFHAmoKmZ5tCJJJDA59D2J/ep3n4FqVgonvUsgl5ARoINGSXaUP3iu+fDiIkkCoiWbDqfYs/DszSJNLkeiMG3iL0nNhprImX4hv9lrNXwqkFkDrGwvFSy65epXyw5ZScLvA7cJSihZTT6xQ9vENI4AKEpJ0p1XSfSvYRIzSiHecGLFUSETsgIugYKEoDqJdkM5/jcMAM8DKU5QuOM/elISKDULPBNpelvrFa1lPxL68Z6eNtLmIhiDYIuHhrGHOsQpwvBAyaBaj4zgFDJTK+YjokkVJu1FcwQ3NUvr4NWpew6ZfexWqrfLceRR6foDF0iF92gOnpADdRE1ELWhXVtOXbOvrIrdnVRaltLzwn6FXbtC3MlwjI=</latexit>

�0 0 A B

0

BB@

xyn1

1

CCA = n2

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

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

M (4⇥4)persp!ortho

0

BB@

xyz1

1

CCA =

0

BB@

nxny

unknownz

1

CCA

<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="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="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="9YCEgySZyET2l27Cv8DYo61N3vw=">AAACfnicbVHLThsxFPVMXzSlbSjLbtxGINqq6QyKBJtKqN2wQaJSA0hxGnmcm8SKx7bsO0A6ms/gx9jxLd3UM0QVhF7J1tE599j3kVklPSbJTRQ/evzk6bO1560X6y9fvW5vvDnxpnAC+sIo484y7kFJDX2UqODMOuB5puA0m3+v9dNzcF4a/RMXFoY5n2o5kYJjoEbtq6NRaYNuKXNyOkPunLmgxuHMVL/KnR5DmYOnvQ8Vy2AqdWlzjk5eVpeUMbqor9/1lTLQ438i/UpX0nWTrxsDC9zM5WWh59pc6Kp55J5/1O4k3aQJ+hCkS9Ahyzgeta/Z2IgiB41Cce8HaWJxWHKHUiioWqzwYLmY8ykMAtQ8NDUsm/FVdCswYzoxLhyNtGHvOkqee7/Is5BZV+5XtZr8nzYocLI/LKW2BYIWtx9NCkXR0HoXdCwdCFSLALhwMtRKxYw7LjBspBWGkK62/BCc7HbTpJv+6HUOvi3HsUbekvdkh6RkjxyQQ3JM+kSQP9G76GP0KSbxdvw5/nKbGkdLzya5F/H+Xzk1wwo=</latexit>

replace z with n

n2 has nothingto do with x and y

Page 35: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection

35

�0 0 A B

0

BB@

xyn1

1

CCA = n2

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

• What do we have now?

An+B = n2<latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit>

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

BB@

00f1

1

CCA )

0

BB@

00f1

1

CCA ==

0

BB@

00f2

f

1

CCA

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

Af +B = f2<latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit>

Page 36: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

GAMES101 Lingqi Yan, UC Santa Barbara

Perspective Projection

36

• Solve for A and B

An+B = n2<latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit><latexit sha1_base64="cV93bogGcvzIGlyEVosDDkQywA8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LmR5JxUyTWRj+VuoeiW3BnIMvEyUoQMtW7hq9OLWRqhNExQrduemxh/TJXhTOAk30k1JpQNaR/blkoaofbHs5sn5NQqPRLGypY0ZKb+nhjTSOtRFNjOiJqBXvSm4n9eOzXhlT/mMkkNSjZfFKaCmJhMAyA9rpAZMbKEMsXtrYQNqKLM2JjyNgRv8eVl0iiXPLfk3V8UK9UsjhwcwwmcgQeXUIE7qEEdGCTwDK/w5qTOi/PufMxbV5xs5gj+wPn8ASPyj8k=</latexit>

Af +B = f2<latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit><latexit sha1_base64="dUsWxJ1iy60PPvO5Ug0Huo9Tni8=">AAAB83icbVDLSgNBEOz1GeMr6tHLYBAEIewGQS9CjBePEcwDkjXMTnqTIbOzy8ysEEJ+w4sHRbz6M978GyfJHjSxoKGo6qa7K0gE18Z1v52V1bX1jc3cVn57Z3dvv3Bw2NBxqhjWWSxi1QqoRsEl1g03AluJQhoFApvB8HbqN59QaR7LBzNK0I9oX/KQM2qs1LkJyTmpkmsSPpa7haJbcmcgy8TLSBEy1LqFr04vZmmE0jBBtW57bmL8MVWGM4GTfCfVmFA2pH1sWypphNofz26ekFOr9EgYK1vSkJn6e2JMI61HUWA7I2oGetGbiv957dSEV/6YyyQ1KNl8UZgKYmIyDYD0uEJmxMgSyhS3txI2oIoyY2PK2xC8xZeXSaNc8tySd39RrFSzOHJwDCdwBh5cQgXuoAZ1YJDAM7zCm5M6L8678zFvXXGymSP4A+fzBwtSj7k=</latexit>

A = n+ f<latexit sha1_base64="1zIaFRyhT2WN+k3aHKqzTsYGb10=">AAAB8HicbVDLSgNBEOz1GeMr6tHLYBAEIeyKoBch6sVjBPOQZAmzk9lkyDyWmVkhLPkKLx4U8ernePNvnCR70MSChqKqm+6uKOHMWN//9paWV1bX1gsbxc2t7Z3d0t5+w6hUE1oniivdirChnElat8xy2ko0xSLitBkNbyd+84lqw5R8sKOEhgL3JYsZwdZJj9foCkl0iuJuqexX/CnQIglyUoYctW7pq9NTJBVUWsKxMe3AT2yYYW0Z4XRc7KSGJpgMcZ+2HZVYUBNm04PH6NgpPRQr7UpaNFV/T2RYGDMSkesU2A7MvDcR//PaqY0vw4zJJLVUktmiOOXIKjT5HvWYpsTykSOYaOZuRWSANSbWZVR0IQTzLy+Sxlkl8CvB/Xm5epPHUYBDOIITCOACqnAHNagDAQHP8ApvnvZevHfvY9a65OUzB/AH3ucPYuWO0Q==</latexit><latexit sha1_base64="1zIaFRyhT2WN+k3aHKqzTsYGb10=">AAAB8HicbVDLSgNBEOz1GeMr6tHLYBAEIeyKoBch6sVjBPOQZAmzk9lkyDyWmVkhLPkKLx4U8ernePNvnCR70MSChqKqm+6uKOHMWN//9paWV1bX1gsbxc2t7Z3d0t5+w6hUE1oniivdirChnElat8xy2ko0xSLitBkNbyd+84lqw5R8sKOEhgL3JYsZwdZJj9foCkl0iuJuqexX/CnQIglyUoYctW7pq9NTJBVUWsKxMe3AT2yYYW0Z4XRc7KSGJpgMcZ+2HZVYUBNm04PH6NgpPRQr7UpaNFV/T2RYGDMSkesU2A7MvDcR//PaqY0vw4zJJLVUktmiOOXIKjT5HvWYpsTykSOYaOZuRWSANSbWZVR0IQTzLy+Sxlkl8CvB/Xm5epPHUYBDOIITCOACqnAHNagDAQHP8ApvnvZevHfvY9a65OUzB/AH3ucPYuWO0Q==</latexit><latexit sha1_base64="1zIaFRyhT2WN+k3aHKqzTsYGb10=">AAAB8HicbVDLSgNBEOz1GeMr6tHLYBAEIeyKoBch6sVjBPOQZAmzk9lkyDyWmVkhLPkKLx4U8ernePNvnCR70MSChqKqm+6uKOHMWN//9paWV1bX1gsbxc2t7Z3d0t5+w6hUE1oniivdirChnElat8xy2ko0xSLitBkNbyd+84lqw5R8sKOEhgL3JYsZwdZJj9foCkl0iuJuqexX/CnQIglyUoYctW7pq9NTJBVUWsKxMe3AT2yYYW0Z4XRc7KSGJpgMcZ+2HZVYUBNm04PH6NgpPRQr7UpaNFV/T2RYGDMSkesU2A7MvDcR//PaqY0vw4zJJLVUktmiOOXIKjT5HvWYpsTykSOYaOZuRWSANSbWZVR0IQTzLy+Sxlkl8CvB/Xm5epPHUYBDOIITCOACqnAHNagDAQHP8ApvnvZevHfvY9a65OUzB/AH3ucPYuWO0Q==</latexit><latexit sha1_base64="1zIaFRyhT2WN+k3aHKqzTsYGb10=">AAAB8HicbVDLSgNBEOz1GeMr6tHLYBAEIeyKoBch6sVjBPOQZAmzk9lkyDyWmVkhLPkKLx4U8ernePNvnCR70MSChqKqm+6uKOHMWN//9paWV1bX1gsbxc2t7Z3d0t5+w6hUE1oniivdirChnElat8xy2ko0xSLitBkNbyd+84lqw5R8sKOEhgL3JYsZwdZJj9foCkl0iuJuqexX/CnQIglyUoYctW7pq9NTJBVUWsKxMe3AT2yYYW0Z4XRc7KSGJpgMcZ+2HZVYUBNm04PH6NgpPRQr7UpaNFV/T2RYGDMSkesU2A7MvDcR//PaqY0vw4zJJLVUktmiOOXIKjT5HvWYpsTykSOYaOZuRWSANSbWZVR0IQTzLy+Sxlkl8CvB/Xm5epPHUYBDOIITCOACqnAHNagDAQHP8ApvnvZevHfvY9a65OUzB/AH3ucPYuWO0Q==</latexit>

B = �nf<latexit sha1_base64="Df63RBUG32geAUdl7q2iGx/W34A=">AAAB7nicbVBNS8NAEJ3Ur1q/qh69LBbBiyURQS9CqRePFewHtKFstpN26WYTdjdCCf0RXjwo4tXf481/47bNQVsfDDzem2FmXpAIro3rfjuFtfWNza3idmlnd2//oHx41NJxqhg2WSxi1QmoRsElNg03AjuJQhoFAtvB+G7mt59QaR7LRzNJ0I/oUPKQM2qs1K6TW3Ihw3654lbdOcgq8XJSgRyNfvmrN4hZGqE0TFCtu56bGD+jynAmcFrqpRoTysZ0iF1LJY1Q+9n83Ck5s8qAhLGyJQ2Zq78nMhppPYkC2xlRM9LL3kz8z+umJrzxMy6T1KBki0VhKoiJyex3MuAKmRETSyhT3N5K2IgqyoxNqGRD8JZfXiWty6rnVr2Hq0qtnsdRhBM4hXPw4BpqcA8NaAKDMTzDK7w5ifPivDsfi9aCk88cwx84nz+5RI6A</latexit><latexit sha1_base64="Df63RBUG32geAUdl7q2iGx/W34A=">AAAB7nicbVBNS8NAEJ3Ur1q/qh69LBbBiyURQS9CqRePFewHtKFstpN26WYTdjdCCf0RXjwo4tXf481/47bNQVsfDDzem2FmXpAIro3rfjuFtfWNza3idmlnd2//oHx41NJxqhg2WSxi1QmoRsElNg03AjuJQhoFAtvB+G7mt59QaR7LRzNJ0I/oUPKQM2qs1K6TW3Ihw3654lbdOcgq8XJSgRyNfvmrN4hZGqE0TFCtu56bGD+jynAmcFrqpRoTysZ0iF1LJY1Q+9n83Ck5s8qAhLGyJQ2Zq78nMhppPYkC2xlRM9LL3kz8z+umJrzxMy6T1KBki0VhKoiJyex3MuAKmRETSyhT3N5K2IgqyoxNqGRD8JZfXiWty6rnVr2Hq0qtnsdRhBM4hXPw4BpqcA8NaAKDMTzDK7w5ifPivDsfi9aCk88cwx84nz+5RI6A</latexit><latexit sha1_base64="Df63RBUG32geAUdl7q2iGx/W34A=">AAAB7nicbVBNS8NAEJ3Ur1q/qh69LBbBiyURQS9CqRePFewHtKFstpN26WYTdjdCCf0RXjwo4tXf481/47bNQVsfDDzem2FmXpAIro3rfjuFtfWNza3idmlnd2//oHx41NJxqhg2WSxi1QmoRsElNg03AjuJQhoFAtvB+G7mt59QaR7LRzNJ0I/oUPKQM2qs1K6TW3Ihw3654lbdOcgq8XJSgRyNfvmrN4hZGqE0TFCtu56bGD+jynAmcFrqpRoTysZ0iF1LJY1Q+9n83Ck5s8qAhLGyJQ2Zq78nMhppPYkC2xlRM9LL3kz8z+umJrzxMy6T1KBki0VhKoiJyex3MuAKmRETSyhT3N5K2IgqyoxNqGRD8JZfXiWty6rnVr2Hq0qtnsdRhBM4hXPw4BpqcA8NaAKDMTzDK7w5ifPivDsfi9aCk88cwx84nz+5RI6A</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 = MorthoMpersp!ortho<latexit sha1_base64="WpPNOtMiJjLpI1J0etlrsOBg8DM=">AAACFnicbZDLSgMxFIYz9VbrrerSTbAIbiwzIuhGKLpxI1SwF2hLyaSZTmgmGZIzShnmKdz4Km5cKOJW3Pk2phdBWw8EPv7/HE7O78eCG3DdLye3sLi0vJJfLaytb2xuFbd36kYlmrIaVULppk8ME1yyGnAQrBlrRiJfsIY/uBz5jTumDVfyFoYx60SkL3nAKQErdYtH1900tn6cnVtSGkKV/UhtzfshEK3VPZ443WLJLbvjwvPgTaGEplXtFj/bPUWTiEmgghjT8twYOinRwKlgWaGdGBYTOiB91rIoScRMJx2fleEDq/RwoLR9EvBY/T2RksiYYeTbzohAaGa9kfif10ogOOukXMYJMEkni4JEYFB4lBHucc0oiKEFQjW3f8U0JJpQsLEUbAje7MnzUD8ue27ZuzkpVS6mceTRHtpHh8hDp6iCrlAV1RBFD+gJvaBX59F5dt6c90lrzpnO7KI/5Xx8A9QUoQc=</latexit><latexit sha1_base64="WpPNOtMiJjLpI1J0etlrsOBg8DM=">AAACFnicbZDLSgMxFIYz9VbrrerSTbAIbiwzIuhGKLpxI1SwF2hLyaSZTmgmGZIzShnmKdz4Km5cKOJW3Pk2phdBWw8EPv7/HE7O78eCG3DdLye3sLi0vJJfLaytb2xuFbd36kYlmrIaVULppk8ME1yyGnAQrBlrRiJfsIY/uBz5jTumDVfyFoYx60SkL3nAKQErdYtH1900tn6cnVtSGkKV/UhtzfshEK3VPZ443WLJLbvjwvPgTaGEplXtFj/bPUWTiEmgghjT8twYOinRwKlgWaGdGBYTOiB91rIoScRMJx2fleEDq/RwoLR9EvBY/T2RksiYYeTbzohAaGa9kfif10ogOOukXMYJMEkni4JEYFB4lBHucc0oiKEFQjW3f8U0JJpQsLEUbAje7MnzUD8ue27ZuzkpVS6mceTRHtpHh8hDp6iCrlAV1RBFD+gJvaBX59F5dt6c90lrzpnO7KI/5Xx8A9QUoQc=</latexit><latexit sha1_base64="WpPNOtMiJjLpI1J0etlrsOBg8DM=">AAACFnicbZDLSgMxFIYz9VbrrerSTbAIbiwzIuhGKLpxI1SwF2hLyaSZTmgmGZIzShnmKdz4Km5cKOJW3Pk2phdBWw8EPv7/HE7O78eCG3DdLye3sLi0vJJfLaytb2xuFbd36kYlmrIaVULppk8ME1yyGnAQrBlrRiJfsIY/uBz5jTumDVfyFoYx60SkL3nAKQErdYtH1900tn6cnVtSGkKV/UhtzfshEK3VPZ443WLJLbvjwvPgTaGEplXtFj/bPUWTiEmgghjT8twYOinRwKlgWaGdGBYTOiB91rIoScRMJx2fleEDq/RwoLR9EvBY/T2RksiYYeTbzohAaGa9kfif10ogOOukXMYJMEkni4JEYFB4lBHucc0oiKEFQjW3f8U0JJpQsLEUbAje7MnzUD8ue27ZuzkpVS6mceTRHtpHh8hDp6iCrlAV1RBFD+gJvaBX59F5dt6c90lrzpnO7KI/5Xx8A9QUoQc=</latexit><latexit sha1_base64="WpPNOtMiJjLpI1J0etlrsOBg8DM=">AAACFnicbZDLSgMxFIYz9VbrrerSTbAIbiwzIuhGKLpxI1SwF2hLyaSZTmgmGZIzShnmKdz4Km5cKOJW3Pk2phdBWw8EPv7/HE7O78eCG3DdLye3sLi0vJJfLaytb2xuFbd36kYlmrIaVULppk8ME1yyGnAQrBlrRiJfsIY/uBz5jTumDVfyFoYx60SkL3nAKQErdYtH1900tn6cnVtSGkKV/UhtzfshEK3VPZ443WLJLbvjwvPgTaGEplXtFj/bPUWTiEmgghjT8twYOinRwKlgWaGdGBYTOiB91rIoScRMJx2fleEDq/RwoLR9EvBY/T2RksiYYeTbzohAaGa9kfif10ogOOukXMYJMEkni4JEYFB4lBHucc0oiKEFQjW3f8U0JJpQsLEUbAje7MnzUD8ue27ZuzkpVS6mceTRHtpHh8hDp6iCrlAV1RBFD+gJvaBX59F5dt6c90lrzpnO7KI/5Xx8A9QUoQc=</latexit>

Page 37: Lecture 4: Transformation Cont. - UCSB · 2020-02-21 · Use 4×4 matrices for affine transformations ⇧ ⇧ ⇤ x y z 1 ⇥ ⌃ ⌃ ⌅ = ⇧ ⇧ ⇤ ab c t x de f t y gh i t z

Thank you!


Recommended