Transformations CS 445645 Introduction to Computer Graphics David

  • Slides: 27
Download presentation
Transformations CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003 David Luebke 1

Transformations CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003 David Luebke 1 10/17/2021

Admin ● Call roll ● Assn 1 ■ Remember, due Monday 10 AM (ie,

Admin ● Call roll ● Assn 1 ■ Remember, due Monday 10 AM (ie, don’t skip class) ■ Several people have turned in already – nice job David Luebke 2 10/17/2021

Recap: Translations ● For convenience we usually describe objects in relation to their own

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 David Luebke 3 10/17/2021

Recap: Scaling ● Scaling operation: ● Or, in matrix form: scaling matrix David Luebke

Recap: Scaling ● Scaling operation: ● Or, in matrix form: scaling matrix David Luebke 4 10/17/2021

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the z-axis:

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the z-axis: David Luebke 5 10/17/2021

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the y-axis:

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the y-axis: David Luebke 6 10/17/2021

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the x-axis:

Recap: 3 -D Rotation ● 3 x 3 matrix for rotation about the x-axis: David Luebke 7 10/17/2021

Recap: Composing Canonical Rotations ● Goal: rotate about arbitrary vector A by ■ Idea:

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 - ) David Luebke 8 10/17/2021

Composing Canonical Rotations ● First: rotating about Y by until A lies in YZ

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 ? David Luebke 9 10/17/2021

Composing Canonical Rotations ● Why are we slogging through all this tedium? ● A:

Composing Canonical Rotations ● Why are we slogging through all this tedium? ● A: Because you’ll have to do it on the test David Luebke 10 10/17/2021

3 -D Rotation Matrices ● So an arbitrary rotation about A composites several ●

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! David Luebke 11 10/17/2021

Compositing Matrices ● So we have the following matrices: p: The point to be

Compositing Matrices ● So we have the following matrices: p: The point to be rotated about A by Ry : Rotate about Y by Rx : Rotate about X by Rz : Rotate about Z by Rx -1: Undo rotation about X by Ry -1 : Undo rotation about Y by ● In what order should we multiply them? David Luebke 12 10/17/2021

Compositing Matrices ● Remember: the transformations, in order, are written from right to left

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 (Open. GL); row vectors would be the opposite ● So in our case: p’ = Ry -1 Rx -1 Rz Rx Ry p David Luebke 13 10/17/2021

Rotation Matrices ● Notice these two matrices: Rx : Rotate about X by Rx

Rotation Matrices ● Notice these two matrices: Rx : Rotate about X by Rx -1: Undo rotation about X by ● How can we calculate Rx -1? ■ Obvious answer: calculate Rx (- ) ■ Clever answer: exploit fact that rotation matrices are orthogonal ● What is an orthogonal matrix? ● What property are we talking about? David Luebke 14 10/17/2021

Rotation Matrices ● Rotation matrix is orthogonal ■ Columns/rows linearly independent ■ Columns/rows sum

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: David Luebke 15 10/17/2021

Translation Matrices? ● We can composite scale matrices just as we did rotation matrices

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 David Luebke 16 10/17/2021

Homogeneous Coordinates ● Homogeneous coordinates: represent coordinates in 3 dimensions with a 4 -vector

Homogeneous Coordinates ● Homogeneous coordinates: represent coordinates in 3 dimensions with a 4 -vector (Note that typically w = 1 in object coordinates) David Luebke 17 10/17/2021

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4 x 4: David Luebke 18 10/17/2021

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4 x 4: David Luebke 19 10/17/2021

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4 x 4: David Luebke 20 10/17/2021

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier

Homogeneous Coordinates ● Homogeneous coordinates seem unintuitive, but they make graphics operations much easier ● Our transformation matrices are now 4 x 4: David Luebke 21 10/17/2021

Homogeneous Coordinates ● How can we represent translation as a 4 x 4 matrix?

Homogeneous Coordinates ● How can we represent translation as a 4 x 4 matrix? ● A: Using the rightmost column: David Luebke 22 10/17/2021

Translation Matrices ● Now that we can represent translation as a matrix, we can

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: David Luebke 23 10/17/2021

Translation Matrices ● Now that we can represent translation as a matrix, we can

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: David Luebke 24 10/17/2021

Translation Matrices ● Now that we can represent translation as a matrix, we can

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: David Luebke 25 10/17/2021

Translation Matrices ● Now that we can represent translation as a matrix, we can

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: David Luebke 26 10/17/2021

Transformation Commutativity ● Is matrix multiplication, in general, commutative? Does AB = BA? ●

Transformation Commutativity ● Is matrix multiplication, in general, commutative? Does AB = BA? ● What about rotation, scaling, and translation matrices? ■ Does Rx. Ry = Ry. Rx? ■ Does RAS = SRA ? ■ Does RAT = TRA ? David Luebke 27 10/17/2021