Upload
roger-payne
View
224
Download
0
Embed Size (px)
Citation preview
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