8
Modeling Transformations Adam Finkelstein Princeton University COS 426, Spring 2005 Modeling Transformations Specify transformations for objects ! Allows definitions of objects in own coordinate systems ! Allows use of object definition multiple times in a scene H&B Figure 109 Overview 2D Transformations ! Basic 2D transformations ! Matrix representation ! Matrix composition 3D Transformations ! Basic 3D transformations ! Same as 2D Transformation Hierarchies ! Scene graphs ! Ray casting 2D Modeling Transformations Scale Rotate Translate Scale Translate x y World Coordinates Modeling Coordinates 2D Modeling Transformations x y World Coordinates Modeling Coordinates Let’s look at this in detail… 2D Modeling Transformations x y Modeling Coordinates

Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

  • Upload
    others

  • View
    28

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Modeling Transformations

Adam Finkelstein

Princeton University

COS 426, Spring 2005

Modeling Transformations

• Specify transformations for objects! Allows definitions of objects in own coordinate systems

! Allows use of object definition multiple times in a scene

H&B Figure 109

Overview

• 2D Transformations! Basic 2D transformations

! Matrix representation

! Matrix composition

• 3D Transformations! Basic 3D transformations

! Same as 2D

• Transformation Hierarchies! Scene graphs

! Ray casting

2D Modeling Transformations

ScaleRotate

Translate

ScaleTranslate

x

y

World Coordinates

Modeling

Coordinates

2D Modeling Transformations

x

y

World Coordinates

Modeling

Coordinates

Let’s look

at this in

detail…

2D Modeling Transformations

x

y

Modeling

Coordinates

Page 2: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

2D Modeling Transformations

x

y

Modeling

Coordinates

Scale .3, .3Rotate -90

Translate 5, 3

2D Modeling Transformations

x

y

Modeling

Coordinates

Scale .3, .3Rotate -90

Translate 5, 3

2D Modeling Transformations

x

y

Modeling

Coordinates

Scale .3, .3Rotate -90

Translate 5, 3

World Coordinates

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

Transformations can be combined

(with simple algebra)

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

x’ = x*sx

y’ = y*sy

x’ = x*sx

y’ = y*sy

(x,y)

(x’,y’)

Page 3: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

x’ = (x*sx)*cos" # (y*sy)*sin"

y’ = (x*sx)*sin" + (y*sy)*cos"

x’ = (x*sx)*cos" # (y*sy)*sin"

y’ = (x*sx)*sin" + (y*sy)*cos"

(x’,y’)

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

x’ = ((x*sx)*cos" # (y*sy)*sin") + tx

y’ = ((x*sx)*sin" + (y*sy)*cos") + ty

x’ = ((x*sx)*cos" # (y*sy)*sin") + tx

y’ = ((x*sx)*sin" + (y*sy)*cos") + ty

(x’,y’)

Basic 2D Transformations

• Translation:! x’ = x + tx

! y’ = y + ty

• Scale:! x’ = x * sx

! y’ = y * sy

• Shear:! x’ = x + hx*y

! y’ = y + hy*x

• Rotation:! x’ = x*cos" - y*sin"! y’ = x*sin" + y*cos"

x’ = ((x*sx)*cos" # (y*sy)*sin") + tx

y’ = ((x*sx)*sin" + (y*sy)*cos") + ty

x’ = ((x*sx)*cos" # (y*sy)*sin") + tx

y’ = ((x*sx)*sin" + (y*sy)*cos") + ty

Overview

• 2D Transformations! Basic 2D transformations

! Matrix representation

! Matrix composition

• 3D Transformations! Basic 3D transformations

! Same as 2D

• Transformation Hierarchies! Scene graphs

! Ray casting

Matrix Representation

• Represent 2D transformation by a matrix

• Multiply matrix by column vector$ apply transformation to point

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&

dc

ba

dycxy

byaxx

+=

+=

'

'

Matrix Representation

• Transformations combined by multiplication

!"#

$%&!"

#$%

&!"

#$%

&!"#

$%&=

!"#

$%&

yx

lk

ji

hg

fedcba

yx'

'

Matrices are a convenient and efficient wayto represent a sequence of transformations!

Page 4: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Identity?

yyxx

=='

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

yx

10

01

'

'

2D Scale around (0,0)?

ysyyxsxx*'

*'

==

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

sysx

yx

0

0

'

'

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Rotate around (0,0)?

yxyyxx*cos*sin'

*sin*cos'

!+!=!"!=

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&!"#

$%&

'''('

=!"#

$%&

yx

yx

cossin

sincos

'

'

2D Shear?

yxshyyyshxxx

+=+=*'

*'

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

shyshx

yx

1

1

'

'

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Mirror over Y axis?

yyxx

=!=

'

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&!"#

$%&'=

!"#

$%&

yx

yx

10

01

'

'

2D Mirror over (0,0)?

yyxx!=!=

'

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

!"#

$%&!"#

$%&

''

=!"#

$%&

yx

yx

10

01

'

'

!"#

$%&!"#

$%&=

!"#

$%&

yx

dcba

yx'

'

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Translation?

tyyytxxx+=+=

'

'

Only linear 2D transformations can be represented with a 2x2 matrix

NO!

Linear Transformations

• Linear transformations are combinations of …! Scale,

! Rotation,

! Shear, and

! Mirror

• Properties of linear transformations:! Satisfies:

! Origin maps to origin

! Lines map to lines

! Parallel lines remain parallel

! Ratios are preserved

! Closed under composition

)()()( 22112211 pppp TsTsssT +=+

!"

#$%

&!"

#$%

&=!

"

#$%

&

y

x

dc

ba

y

x

'

'

2D Translation

• 2D translation represented by a 3x3 matrix! Point represented with homogeneous coordinates

tyyytxxx+=+=

'

'

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

1100

10

01

1

'

'

y

x

ty

tx

y

x

Page 5: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Homogeneous Coordinates

• Add a 3rd coordinate to every 2D point! (x, y, w) represents a point at location (x/w, y/w)

! (x, y, 0) represents a point at infinity

! (0, 0, 0) is not allowed

1 2

1

2(2,1,1) or (4,2,2) or (6,3,3)

Convenient coordinate system to

represent many useful transformations

x

y

Basic 2D Transformations

• Basic 2D transformations as 3x3 matrices

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

''

'('

=

!!!

"

#

$$$

%

&

1100

0cossin

0sincos

1

'

'

y

x

y

x

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

1100

10

01

1

'

'

y

x

ty

tx

y

x

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

1100

01

01

1

'

'

y

x

shy

shx

y

x

Translate

Rotate Shear

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

1100

00

00

1

'

'

y

x

sy

sx

y

x

Scale

Affine Transformations

• Affine transformations are combinations of …! Linear transformations, and

! Translations

• Properties of affine transformations:! Origin does not necessarily map to origin

! Lines map to lines

! Parallel lines remain parallel

! Ratios are preserved

! Closed under composition

!!

"

#

$$

%

&

!!

"

#

$$

%

&=

!!

"

#

$$

%

&

w

yx

fedcba

w

yx

100

'

'

Projective Transformations

• Projective transformations …! Affine transformations, and

! Projective warps

• Properties of projective transformations:! Origin does not necessarily map to origin

! Lines map to lines

! Parallel lines do not necessarily remain parallel

! Ratios are not preserved (but “cross-ratios” are)

! Closed under composition

!!

"

#

$$

%

&

!!

"

#

$$

%

&=

!!

"

#

$$

%

&

w

yx

ihg

fedcba

w

yx

'

'

'

Overview

• 2D Transformations! Basic 2D transformations

! Matrix representation

! Matrix composition

• 3D Transformations! Basic 3D transformations

! Same as 2D

• Transformation Hierarchies! Scene graphs

! Ray casting

Matrix Composition

• Transformations can be combined bymatrix multiplication

!!

"

#

$$

%

&

'''

(

)

***

+

,

!!

"

#

$$

%

&

!!"

#

$$%

&---.-

!!

"

#

$$

%

&=

!!

"

#

$$

%

&

w

yx

sysx

tytx

w

yx

100

00

00

100

0cossin

0sincos

100

10

01

'

'

'

p’ = T(tx,ty) R(") S(sx,sy) p

Page 6: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Matrix Composition

• Matrices are a convenient and efficient way to

represent a sequence of transformations

! General purpose representation

! Hardware matrix multiply

! Efficiency with premultiplication

» Matrix multiplication is associative

p’ = (T * (R * (S*p) ) )p’ = (T*R*S) * p

Matrix Composition

• Be aware: order of transformations matters» Matrix multiplication is not commutative

p’ = T * R * S * p

“Global” “Local”

Matrix Composition

• Rotate by " around arbitrary point (a,b)! M=T(a,b) * R(") * T(-a,-b)

• Scale by sx,sy around arbitrary point (a,b)! M=T(a,b) * S(sx,sy) * T(-a,-b)

(a,b)

(a,b)

The trick:

First, translate (a,b) to the origin.

Next, do the rotation about origin.

Finally, translate back.

(Use the same trick.)

Overview

• 2D Transformations! Basic 2D transformations

! Matrix representation

! Matrix composition

• 3D Transformations! Basic 3D transformations

! Same as 2D

• Transformation Hierarchies! Scene graphs

! Ray casting

3D Transformations

• Same idea as 2D transformations! Homogeneous coordinates: (x,y,z,w)

! 4x4 transformation matrices

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

wz

yx

ponm

lkji

hgfedcba

wz

yx

'

'

'

'

Basic 3D Transformations

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

wz

yx

wz

yx

1000

0100

0010

0001

'

'

'

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

wz

yx

tz

tytx

wz

yx

1000

100

010

001

'

'

'

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

wz

yx

sz

sysx

wz

yx

1000

000

000

000

'

'

'

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&'

=

!!!

"

#

$$$

%

&

wz

yx

wz

yx

1000

0100

0010

0001

'

'

'

Identity Scale

Translation Mirror over X axis

Page 7: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Basic 3D Transformations

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&'''('

=

!!!

"

#

$$$

%

&

wz

yx

wz

yx

1000

0100

00cossin

00sincos

'

'

'

Rotate around Z axis:

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

''

'('

=

!!!

"

#

$$$

%

&

wz

yx

wz

yx

1000

0cos0sin

0010

0sin0cos

'

'

'

Rotate around Y axis:

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

'''('

=

!!!

"

#

$$$

%

&

wz

yx

wz

yx

1000

0cossin0

0sincos0

0001

'

'

'

Rotate around X axis:

Overview

• 2D Transformations! Basic 2D transformations

! Matrix representation

! Matrix composition

• 3D Transformations! Basic 3D transformations

! Same as 2D

• Transformation Hierarchies! Scene graphs

! Ray casting

Angel Figures 8.8 & 8.9

Transformation Hierarchies

• Scene may have hierarchy of coordinate systems! Each level stores matrix

representing transformation

from parent’s coordinate system

Base[M1]

Upper Arm[M2]

Lower Arm[M3]

Robot Arm

Transformation Example 1

Rose et al. `96

• Well-suited for humanoid characters

Root

LHip

LKnee

LAnkle

RHip

RKnee

RAnkle

Chest

LCollar

LShld

LElbow

LWrist

LCollar

LShld

LElbow

LWrist

Neck

Head

Transformation Example 1

Mike Marr, COS 426,

Princeton University, 1995

Transformation Example 2

• An object may appear in a scene multiple times

Draw same 3D data with

different transformations

Page 8: Modeling Transformations · 2005. 2. 24. · ¥2D Transformations!Basic 2D transformations!Matrix representation!Matrix composition ¥3D Transformations!Basic 3D transformations!Same

Transformation Example 2

Building

Floor 4 Floor5Floor 3Floor 2Floor 1

Chair KBookshelf 1

Desk ChairBookshelf

Desk 1 Desk 2 Chair 1

Floor Furniture

Office NOffice 1

Office Furniture

DefinitionsDefinitions

InstancesInstances

Angel Figures 8.8 & 8.9

Ray Casting With Hierarchies

• Transform rays, not primitives! For each node ...

» Transform ray by inverse of matrix

» Intersect with primitives

» Transform hit by matrix

Base[M1]

Upper Arm[M2]

Lower Arm[M3]

Robot Arm

Summary

• Coordinate systems! World coordinates

! Modeling coordinates

• Representations of 3D modeling transformations! 4x4 Matrices

» Scale, rotate, translate, shear, projections, etc.

» Not arbitrary warps

• Composition of 3D transformations! Matrix multiplication (order matters)

! Transformation hierarchies