Transformations CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel
Objectives Introduce standard transformations: – Rotation. – Translation. – Scaling. – Shear. Derive homogeneous coordinate transformation matrices. Build arbitrary transformation matrices from simple transformations. CS4395: Computer Graphics 2
General Transformations A transformation maps points to other points and/or vectors to other vectors. CS4395: Computer Graphics 3 Q=T(P) v=T(u)
Affine Transformations Preserves lines. Characteristic of many important transformations: – Rigid body transformations: rotation, translation. – Scaling, shear. In CG: Only need to transform end-points of line segments. Let implementation draw line segment between the transformed endpoints. CS4395: Computer Graphics 4
Pipeline Implementation v CS4395: Computer Graphics 5 transformationrasterizer u u v T T(u) T(v) T(u) T(v) vertices pixels frame buffer (from application program)
Notation Will be working with coordinate-free representations of transformations and representations within a particular frame. P,Q, R: points in an affine space. u, v, w : vectors in an affine space; , , : scalars. p, q, r : representations of points: -array of 4 scalars in homogeneous coordinates. u, v, w : representations of points: -array of 4 scalars in homogeneous coordinates. CS4395: Computer Graphics 6
Translation Move (translate, displace) a point to a new location: Displacement determined by a vector d: – Three degrees of freedom. – P’=P+d. CS4395: Computer Graphics 7 P P’ d
How many ways? Although we can move a point to a new location in infinite ways, when we move many points there is usually only one way CS4395: Computer Graphics 8 objecttranslation: every point displaced by same vector
Translation Using Representations Using the homogeneous coordinate representation in some frame: p=[ x y z 1] T p’=[x’ y’ z’ 1] T d=[dx dy dz 0] T Hence p’ = p + d or: x’=x+d x y’=y+d y z’=z+d z CS4395: Computer Graphics 9 note that this expression is in four dimensions and expresses point = vector + point
Translation Matrix We can also express translation using a 4 x 4 matrix T in homogeneous coordinates: p ’= Tp where T = T (d x, d y, d z ) = This form is better for implementation: – All affine transformations can be expressed this way. – Multiple transformations can be concatenated together. CS4395: Computer Graphics 10
Rotation (2D) Consider rotation about the origin by degrees: – radius stays the same, angle increases by CS4395: Computer Graphics 11 x’=x cos –y sin y’ = x sin + y cos x = r cos y = r sin x = r cos ( y = r sin (
Rotation about the z axis Rotation about z axis in three dimensions leaves all points with the same z. – Equivalent to rotation in 2D in planes of constant z: – In homogeneous coordinates: p ’= R z ( )p CS4395: Computer Graphics 12 x’=x cos –y sin y’ = x sin + y cos z’ =z
Rotation Matrix (about z-axis) R = R z ( ) = CS4395: Computer Graphics 13
Rotation about x and y axes Same argument as for rotation about z axis: – For rotation about x axis, x is unchanged. – For rotation about y axis, y is unchanged. CS4395: Computer Graphics 14 R = R x ( ) = R = R y ( ) =
Scaling S = S(s x, s y, s z ) = CS4395: Computer Graphics 15 x’=s x x y’=s y x z’=s z x p’=Sp Expand or contract along each axis (fixed point of origin)
Reflection Corresponds to negative scale factors! CS4395: Computer Graphics 16 original s x = -1 s y = 1 s x = -1 s y = -1s x = 1 s y = -1
Inverses Though general formulae can be used, simple geometric observations help: – Translation: T -1 (d x, d y, d z ) = T (-d x, -d y, -d z ) – Rotation: R -1 ( ) = R(- ) Holds for any rotation matrix. Note that since cos(- ) = cos( ) and sin(- )=-sin( ) R -1 ( ) = R T ( ) – Scaling: S -1 (s x, s y, s z ) = S(1/s x, 1/s y, 1/s z ) CS4395: Computer Graphics 17
Concatenation Form arbitrary affine transformation matrices by multiplying rotation, translation, and scaling matrices. Because the same transformation is applied to many vertices, the cost of forming matrix M=ABCD is not significant compared to the cost of computing Mp for many vertices p. The challenge: how to form a desired transformation from the specifications in the application? CS4395: Computer Graphics 18
Order of Transformations Matrix on the right is applied first. Mathematically, the following are equivalent: p’ = ABCp = A(B(Cp)) Many references use column matrices to represent points: p ’T = p T C T B T A T CS4395: Computer Graphics 19
General Rotation About the Origin CS4395: Computer Graphics 20 x z y v A rotation by about an arbitrary axis can be decomposed into the concatenation of rotations about the x, y, and z axes! R( ) = R z ( z ) R y ( y ) R x ( x ) x y z are called the Euler angles Note that rotations do not commute! Can use rotations in another order but with different angles.
Rotation About a Point other than the Origin Move fixed point to origin. Rotate. Move fixed point back. M = T(p f ) R( ) T(-p f ) CS4395: Computer Graphics 21
Instancing In modeling, we often start with a simple object centered at the origin, oriented with the axis, and at a standard size. We apply an instance transformation to its vertices to scale, orient, locate. CS4395: Computer Graphics 22
Shear Helpful to add one more basic transformation. Equivalent to pulling faces in opposite directions. CS4395: Computer Graphics 23
Shear Matrix Consider simple shear along x axis: CS4395: Computer Graphics 24 x’ = x + y cot y’ = y z’ = z H( ) =