Download presentation
Presentation is loading. Please wait.
Published byAugustus Knight Modified over 9 years ago
1
Transformations CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003
2
David Luebke 2 12/23/2015 Admin ● Call roll ● Assn 1 ■ Remember, due Monday 10 AM (ie, don’t skip class) ■ Several people have turned in already – nice job
3
David Luebke 3 12/23/2015 Recap: Translations ● For convenience we usually describe objects in relation to their own coordinate system ● We can translate or move points to a new position by adding offsets to their coordinates: ■ Note that this translates all points uniformly
4
David Luebke 4 12/23/2015 Recap: Scaling ● Scaling operation: ● Or, in matrix form: scaling matrix
5
David Luebke 5 12/23/2015 Recap: 3-D Rotation ● 3x3 matrix for rotation about the z-axis:
6
David Luebke 6 12/23/2015 Recap: 3-D Rotation ● 3x3 matrix for rotation about the y-axis:
7
David Luebke 7 12/23/2015 Recap: 3-D Rotation ● 3x3 matrix for rotation about the x-axis:
8
David Luebke 8 12/23/2015 Recap: Composing Canonical Rotations ● Goal: rotate about arbitrary vector A by ■ Idea: we know how to rotate about X,Y,Z So, rotate about Y by until A lies in the YZ plane Then rotate about X by until A coincides with +Z Then rotate about Z by Then reverse the rotation about X (by - ) Then reverse the rotation about Y (by - )
9
David Luebke 9 12/23/2015 Composing Canonical Rotations ● First: rotating about Y by until A lies in YZ ■ Draw it… ● How exactly do we calculate ? ■ Project A onto XZ plane ■ Find angle to X: = -(90° - ) = - 90 ° ● Second: rotating about X by until A lies on Z ● How do we calculate ?
10
David Luebke 10 12/23/2015 Composing Canonical Rotations ● Why are we slogging through all this tedium? ● A: Because you’ll have to do it on the test
11
David Luebke 11 12/23/2015 3-D Rotation Matrices ● So an arbitrary rotation about A composites several canonical rotations together ● We can express each rotation as a matrix ● Compositing transforms == multiplying matrices ● Thus we can express the final rotation as the product of canonical rotation matrices ● Thus we can express the final rotation with a single matrix!
12
David Luebke 12 12/23/2015 Compositing Matrices ● So we have the following matrices: p: The point to be rotated about A by R y : Rotate about Y by R x : Rotate about X by R z : Rotate about Z by R x -1 : Undo rotation about X by R y -1 : Undo rotation about Y by ● In what order should we multiply them?
13
David Luebke 13 12/23/2015 Compositing Matrices ● Remember: the transformations, in order, are written from right to left ■ In other words, the first matrix to affect the vector goes next to the vector, the second next to the first, etc. ■ This is the rule with column vectors (OpenGL); row vectors would be the opposite ● So in our case: p’ = R y -1 R x -1 R z R x R y p
14
David Luebke 14 12/23/2015 Rotation Matrices ● Notice these two matrices: R x : Rotate about X by R x -1 : Undo rotation about X by ● How can we calculate R x -1 ? ■ Obvious answer: calculate R x (- ) ■ Clever answer: exploit fact that rotation matrices are orthogonal ● What is an orthogonal matrix? ● What property are we talking about?
15
David Luebke 15 12/23/2015 Rotation Matrices ● Rotation matrix is orthogonal ■ Columns/rows linearly independent ■ Columns/rows sum to 1 ● The inverse of an orthogonal matrix is just its transpose:
16
David Luebke 16 12/23/2015 Translation Matrices? ● We can composite scale matrices just as we did rotation matrices ● But how to represent translation as a matrix? ● Answer: with homogeneous coordinates
17
David Luebke 17 12/23/2015 Homogeneous Coordinates ● Homogeneous coordinates: represent coordinates in 3 dimensions with a 4-vector (Note that typically w = 1 in object coordinates)
18
David Luebke 18 12/23/2015 Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4x4:
19
David Luebke 19 12/23/2015 Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4x4:
20
David Luebke 20 12/23/2015 Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4x4:
21
David Luebke 21 12/23/2015 Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4x4:
22
David Luebke 22 12/23/2015 Homogeneous Coordinates ● How can we represent translation as a 4x4 matrix? ● A: Using the rightmost column:
23
David Luebke 23 12/23/2015 Translation Matrices ● Now that we can represent translation as a matrix, we can composite it with other transformations ● Ex: rotate 90° about X, then 10 units down Z:
24
David Luebke 24 12/23/2015 Translation Matrices ● Now that we can represent translation as a matrix, we can composite it with other transformations ● Ex: rotate 90° about X, then 10 units down Z:
25
David Luebke 25 12/23/2015 Translation Matrices ● Now that we can represent translation as a matrix, we can composite it with other transformations ● Ex: rotate 90° about X, then 10 units down Z:
26
David Luebke 26 12/23/2015 Translation Matrices ● Now that we can represent translation as a matrix, we can composite it with other transformations ● Ex: rotate 90° about X, then 10 units down Z:
27
David Luebke 27 12/23/2015 Transformation Commutativity ● Is matrix multiplication, in general, commutative? Does AB = BA? ● What about rotation, scaling, and translation matrices? ■ Does R x R y = R y R x ? ■ Does R A S = SR A ? ■ Does R A T = TR A ?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.