24
Transformations CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel

Transformations CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel

Embed Size (px)

Citation preview

Transformations

CS4395: Computer Graphics 1

Mohan SridharanBased 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

transformation rasterizer

u

u

v

T

T(u)

T(v)

T(u)T(u)

T(v)

T(v)

vertices vertices pixels

framebuffer

(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

object translation: 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+dx

y’=y+dy

z’=z+dz

CS4395: Computer Graphics 9

note that this expression is in four dimensions and expressespoint = vector + point

Translation Matrix• We can also express translation using a 4 x 4 matrix T in

homogeneous coordinates:p’=Tp where

T = T(dx, dy, dz) =

• This form is better for implementation:– All affine transformations can be expressed this way.– Multiple transformations can be concatenated together.

CS4395: Computer Graphics 10

1000

d100

d010

d001

z

y

x

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’=Rz()p

CS4395: Computer Graphics 12

x’=x cos –y sin y’ = x sin + y cos z’ =z

Rotation Matrix (about z-axis)

R = Rz() =

CS4395: Computer Graphics 13

1000

0100

00 cossin

00sin cos

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 = Rx() =

R = Ry() =

1000

0 cos sin0

0 sin- cos0

0001

1000

0 cos0 sin-

0010

0 sin0 cos

Scaling

S = S(sx, sy, sz) =

CS4395: Computer Graphics 15

1000

000

000

000

z

y

x

s

s

s

x’=sxxy’=syxz’=szx

p’=Sp

Expand or contract along each axis (fixed point of origin)

Reflection

• Corresponds to negative scale factors!

CS4395: Computer Graphics 16

originalsx = -1 sy = 1

sx = -1 sy = -1 sx = 1 sy = -1

Inverses

• Though general formulae can be used, simple geometric observations help:– Translation: T-1(dx, dy, dz) = T(-dx, -dy, -dz)

– Rotation: R -1() = R(-)

• Holds for any rotation matrix.

• Note that since cos(-) = cos() and sin(-)=-sin()

R -1() = R T()

– Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)

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 = pTCTBTAT

CS4395: Computer Graphics 19

General Rotation About the Origin

CS4395: Computer Graphics 20

x

z

yv

A rotation by about an arbitrary axiscan be decomposed into the concatenationof rotations about the x, y, and z axes!

R() = Rz(z) Ry(y) Rx(x)

x y z are called the Euler angles

Note that rotations do not commute!Can use rotations in another order butwith different angles.

Rotation About a Point other than the Origin

• Move fixed point to origin.• Rotate.• Move fixed point back.

M = T(pf) R() T(-pf)

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’ = yz’ = z

1000

0100

0010

00cot 1

H() =