lecture 2 transformations · lecture 2 1 lecture 2 transformations. transformations. what is a...

Post on 10-Jun-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Computer Graphics

Lecture 2 1

Lecture 2

Transformations

Transformations.

What is a transformation?

• P′=T(P) What does it do?

Transform the coordinates / normal vectors of objects

Why use them?

2

• Modelling

-Moving the objects to the desired location in the environment -Multiple instances of a prototype shape

-Kinematics of linkages/skeletons – character animation

• Viewing– Virtual camera: parallel and perspective projections

Types of Transformations

– Geometric Transformations• Translation• Rotation• scaling

•• Linear Linear (preserves parallel lines) • Non-uniform scales, shears or skews

3

• Non-uniform scales, shears or skews– Projection (preserves lines)

• Perspective projection• Parallel projection

– Non-linear (lines become curves) • Twists, bends, warps, morphs,

Geometric Transformation

– Once the models are prepared, we need to place them in the environment

– Objects are defined in their own local coordinate system

– We need to translate, rotate and scale them to put them into the world coordinate system

22/09/2011 Lecture 1 4

2D Translations.

dyydxx

yxP

yxPP

yx +=′+=′

′′′

torscolumn vec theDefine

axis.y toparallel d axis, x toparallel d distance a ),(Point totranslate

),,( as defined Point

yx

5

TPP

d

dT

y

xP

y

xP

+=′

=

′′

=′

=

Now

,,

torscolumn vec theDefine

y

x

PP’

2D Scaling from the origin.

=′=′

′′′

. ,.

axis.y thealong s and

axis, x thealong sfactor aby ),(Point to(stretch) scale a Perform

),,( as defined Point

y

x

yx ysyxsx

yxP

yxPP

6

=

′′

⋅=′

=

y

x.

0

0

y

xor

Now

0

0

matrix theDefine

y

x

y

x

s

sPSP

s

sS

PP’

2D Rotation about the origin.

y

P’(x’,y’) θ

7

x

r

r

P’(x’,y’)

P(x,y)

2D Rotation about the origin.

y

P’(x’,y’)

8

x

r

r

P’(x’,y’)

P(x,y)

θφ

y

φφ

sin.

cos.

ry

rx

==

x

2D Rotation about the origin.

y

P’(x’,y’)

θφθφφθθφθφφθ

cos.sin.sin.cos.)sin(.

sin.sin.cos.cos.)cos(.

rrry

rrrx

+=+=′−=+=′

9

x

r

r

P’(x’,y’)

P(x,y)

θφ

yφφ

sin.

cos.

ry

rx

==

x

2D Rotation about the origin.

θφθφφθθφθφφθ

cos.sin.sin.cos.)sin(.

sin.sin.cos.cos.)cos(.

rrry

rrrx

+=+=′−=+=′

Substituting for r :

10

φφ

sin.

cos.

ry

rx

==

Gives us :

θθθθ

cos.sin.

sin.cos.

yxy

yxx

+=′−=′

2D Rotation about the origin.

θθθθ

cos.sin.

sin.cos.

yxy

yxx

+=′−=′

Rewritingin matrix form gives us :

11

Rewritingin matrix form gives us :

−=

′′

y

x

y

x.

cossin

sincos

θθθθ

PRPR ⋅=′

−= ,

cossin

sincosmatrix theDefine

θθθθ

Transformations.• Translation.

– P′=T + P

• Scale

– P′=S ⋅ P

• Rotation

– P′=R ⋅ P

• We would like all transformations to be multiplications so we can concatenate them

• ⇒ express points in homogenous coordinates.

12

−=

′′

y

x

y

x.

cossin

sincos

θθθθ

Homogeneous coordinates

• Add an extra coordinate, W, to a point.

– P(x,y,W).

• Two sets of homogeneous coordinates represent the

same point if they are a multiple of each other.same point if they are a multiple of each other.

– (2,5,3) and (4,10,6) represent the same point.

• If W≠ 0 , divide by it to get Cartesian coordinates of point

(x/W,y/W,1).

• If W=0, point is said to be at infinity.

13

Translations in homogenised

coordinates

• Transformation matrices for 2D translation

are now 3x3.are now 3x3.

14

=

′′

1

.

100

10

01

1

y

x

d

d

y

x

y

x

11

=

+=′+=′

y

x

dyy

dxx

Concatenation.

• When we perform 2 translations on the same point

),( 11 yx PddTP ⋅=′

15

),(),(),(

:expect weSo

),(),(),(

),(

21212211

21212211

22

yyxxyxyx

yyxxyxyx

yx

ddddTddTddT

PddddTPddTddTP

PddTP

++=⋅

⋅++=⋅⋅=′′

′⋅=′′

Concatenation.

0101

: is ),(),(product matrix The

21

2211

xx

yxyx

dd

ddTddT

16

?

100

10.

100

10 2

2

1

1

=

y

x

y

x

dd

Matrix product is variously referred to as compounding, concatenation, or composition

Concatenation.

++

=

010101

: is ),(),(product matrix The

2121

2211

xxxx

yxyx

dddd

ddTddT

17

Matrix product is variously referred to as compounding, concatenation, or composition.

+=

100

10

100

10.

100

10 2121 yyyy dddd

Properties of translations.

),(),(),(),( 3.

),(),(),( 2.

)0,0( 1.

yyxxyxyx

ssTttTttTssT

tstsTttTssT

IT

⋅=⋅

++=⋅=

18

),(),(T 4.

),(),(),(),( 3.1-

yxyx

yxyxyxyx

ssTss

ssTttTttTssT

−−=

⋅=⋅

Note : 3. translation matrices are commutative.

Homogeneous form of scale.

=

y

x

yx s

sssS

0

0),(

Recall the (x,y) form of Scale :

19

=100

00

00

),( y

x

yx s

s

ssS

In homogeneous coordinates :

Concatenation of scales.

00ss00s00s

: is ),(),(product matrix The

x2x1x2x1

2211

⋅ yxyx ssSssS

20

!multiply easy to -matrix in the elements diagonalOnly

100

0ss0

00ss

100

0s0

00s

.

100

0s0

00s

y2y1

x2x1

y2

x2

y1

x1

⋅⋅

=

Homogeneous form of rotation.

−=

′′

1

.

100

0cossin

0sincos

1

y

x

y

x

θθθθ

21

)()(

: i.e ,orthogonal are matricesRotation

).()(

matrices,rotation For

1

1

θθ

θθ

TRR

RR

=

−=

Orthogonality of rotation

matrices.

−=

= 0cossin

0sincos

)( ,0cossin

0sincos

)( θθθθ

θθθθθ

θ TRR

22

−=

=100

0cossin)( ,

100

0cossin)( θθθθθθ TRR

−=

−−−−−

=−100

0cossin

0sincos

100

0cossin

0sincos

)( θθθθ

θθθθ

θR

Other properties of rotation.

and

)()()(

)0(

φθφθ RRR

IR

+=⋅=

23

careful more be toneed ,rotations 3DFor

same theis

rotation of axis thebecauseonly is But this

)()()()(

and

θφφθ RRRR ⋅=⋅

How are transforms combined?

(0,0)

(1,1) (2,2)

(0,0)

(5,3)

(3,1) Scale(2,2) Translate(3,1)

Scale then Translate

Use matrix multiplication: p' = T ( S p ) = TS p

02/10/09 Lecture 4 24

TS =2

0

0

2

0

0

1

0

0

1

3

1

2

0

0

2

3

1=

Use matrix multiplication: p' = T ( S p ) = TS p

Caution: matrix multiplication is NOT commutative!

0 0 1 0 0 1 0 0 1

Non-commutative Composition

Scale then Translate: p' = T ( S p ) = TS p

(0,0)

(1,1) (2,2)

(0,0)

(5,3)

(3,1) Scale(2,2) Translate(3,1)

02/10/09 Lecture 4 25

Translate then Scale: p' = S ( T p ) = ST p

(0,0)

(1,1) (4,2)

(3,1)

(8,4)

(6,2) Translate(3,1) Scale(2,2)

Non-commutative Composition

TS =2

0

0

0

2

0

0

0

1

1

0

0

0

1

0

3

1

1

Scale then Translate: p' = T ( S p ) = TS p

2

0

0

0

2

0

3

1

1

=

02/10/09 Lecture 4 26

ST =2

0

0

2

0

0

1

0

0

1

3

1

2

0

0

2

6

2=

Translate then Scale: p' = S ( T p ) = ST p

0 0 1 0 0 1 0 0 1

How are transforms combined?

(0,0)

(1,1) (0,sqrt(2))

(0,0)

(3,sqrt(2))

(3,0)

Rotate 45 deg Translate(3,0)

Rotate then Translate

Translate then Rotate

02/10/09 Lecture 4 27

Caution: matrix multiplication is NOT commutative!

Translate then Rotate

(0,0)

(1,1)

(0,0) (3,0)

Rotate 45 deg Translate(3,0) (3/sqrt(2),3/sqrt(2))

Non-commutative Composition

TR =0

1

0

-1

0

0

0

0

1

1

0

0

0

1

0

3

1

1

Rotate then Translate: p' = T ( R p ) = TR p

0

0

0

-1

0

0

3

1

1=

0

1

0

-1

0

0

0

0

1

0

1

0

-1

0

0

0

0

1

02/10/09 Lecture 4 28

RT =1

0

0

1

3

1

0

1

0

-1

0

0

-1

3

1=

=Translate then Rotate: p' = R ( T p ) = RT p

0 0 1

0

1

0

-1

0

0

0

0

1

0

1

0

-1

0

0

0

0

1

0

1

0

-1

0

0

0

0

1

Types of transformations.

• Rotation and translation

– Angles and distances are preserved

– Unit cube is always unit cube

– Rigid-Body transformations.

• Rotation, translation and scale.

– Angles & distances not preserved.

– But parallel lines are.

29

Transformations of coordinate

systems.• Have been discussing transformations as

transforming points.

• Always need to think the transformation in the • Always need to think the transformation in the world coordinate system

• Sometimes this might not be so convenient

– i.e. rotating objects at its location

30

Transformations of coordinate

systems - Example • Concatenate local

transformation matricesfrom left to right

• Can obtain the local –

31

• Can obtain the local –world transformationmatrix

• p’,p’’,p’’’ are the world coordinates of p after each transformation

Transformations of coordinate

systems - example

32

• is the world coordinate of point p after n transformations

Quiz

• I sat in the car, and find the side mirror is 0.4m on my right and 0.3m in my front

• I started my car and drove 5m forward, turned 30 degrees to right, moved 5m forward again, and

33

degrees to right, moved 5m forward again, and turned 45 degrees to the right, and stopped

• What is the position of the side mirror now, relative to where I was sitting in the beginning?

Solution

• The side mirror position is locally

(0,4,0.3)

• The matrix of first driving

forward 5m isforward 5m is

34

=100

510

001

1T

Solution

• The matrix to turn to the right

30 and 45 degrees (rotating -30

and -45 degrees around the

origin) are origin) are

35

lyrespective ,

100

02

1

2

1

02

1

2

1

,

100

02

3

2

1

02

1

2

3

21

−=

−= RR

Solution

The local-to-global transformation matrix at the last configuration of the car is

= 11

02

1

2

1

00131

02

1

2

3

001

The final position of the side mirror can be computed by TR1TR2 p which is around (2.89331, 9.0214)

36

=

100

02

1

2

1

100

510

100

02

3

2

1

100

51021TRTR

This is convenient for character

animation / robotics

• In robotics / animation, we often want to know what is the current 3D location of the end effectors (like the

37

the end effectors (like the hand)

• Can concatenate matricesfrom the origin of the body towards the end effecter

Transformations of coordinate

systems.

)()(

ji

)(

i systemin point a toj systemin point a converts that transform theas M Define

system coordinatein point a as Define

⋅= jji

i

i

PMP

iP

Lecture 4 38

1

)()(

:shown that be alsocan It

:onsubstitutiby obtain we

and

−←←

←←←

=

⋅=

⋅=

jiij

kjjiki

kkj

j

ji

MM

MMM

PMP

3D Transformations.

• Use homogeneous coordinates, just as in 2D case.

• Transformations are now 4x4 matrices.

• We will use a right-handed (world) coordinate • We will use a right-handed (world) coordinate

system - ( z out of page ).

02/10/09 Lecture 4 39

Translation in 3D.

Simple extension to the 3D case:

40

=

1000

100

010

001

),,(z

y

x

zyx d

d

d

dddT

Scale in 3D.

Simple extension to the 3D case:

41

=

1000

000

000

000

),,(z

y

x

zyx s

s

s

sssS

Rotation in 3D

• Need to specify which axis the rotation is about.

• z-axis rotation is the same as the 2D case.

42

=

1000

0100

00cossin

00sincos

)(θθθθ

θzR

Rotating About the x-axis Rx(θ)

0001 xx

43

−=

′′

11000

0θcosθsin0

0θsinθcos0

0001

1

z

y

x

z

y

x

Rotating About the y-axis

Ry(θ)

′ 0θsin0θcos xx

44

−=

11000

0θcos0θsin

0010

0θsin0θcos

1

z

y

x

z

y

x

Rotation About the z-axis

Rz(θ)

− ′ 00θsinθcos xx

45

=

′′

11000

0100

00θcosθsin

00θsinθcos

1

z

y

x

z

y

x

Rotation about an

arbitrary axis• About (ux, uy, uz), a unit

vector on an arbitrary axis

x' xuxux(1-c)+c 0uzux(1-c)-uzs uxuz(1-c)+uys

Rotate(k, θ)

x

y

z

θ

u

46

x'

y'

z'

1

=

x

y

z

1

uxux(1-c)+c

uyux(1-c)+uzs

uzux(1-c)-uys

0

0

0

0

1

uzux(1-c)-uzs

uzux(1-c)+c

uyuz(1-c)+uxs

0

uxuz(1-c)+uys

uyuz(1-c)-uxs

uzuz(1-c)+c

0

where c = cos θ & s = sin θ

Rotation

• Not commutative if the axis of rotation are

not parallel

)()()()( αββα xyyx RRRR ≠

02/10/09

)()()()( αββα xyyx RRRR ≠

Shearing

48

1000

0100

001

0001

a

1000

0100

0010

001 a

Calculating the world coordinates of all vertices

• For each object, there is a local-to-global transformation matrix

• So we apply the transformations to all the vertices of each object

• We now know the world coordinates of all • We now know the world coordinates of all the points in the scene

49

Normal Vectors

• We also need to know the direction of the normal vectors in the world coordinate system

• This is going to be used at the shading operation • We only want to rotate the normal vector• Do not want to translate it

50

Normal Vectors - (2)

• We need to set elements of the translation part to zero

0111111111111 rrrtrrr x

51

1000

0

0

0

1000111111

111111

111111

111111

111111

111111

rrr

rrr

rrr

trrr

trrr

trrr

z

y

x

Viewing

• Now we have the world coordinates of all the vertices

• Now we want to convert the scene so that it appears in front of the camera

52

View Transformation

�We want to know the positions in the camera coordinate system

�We can compute the camera-to-world transformation matrix using the orientation and translation of the camera from the origin of the world coordinate system

Mw←c

Lecture 4 53

Mw←c

View Transformation

�We want to know the positions in the camera coordinate system

vw = Mw←c vc

Point in theworld coordinate

Point in thecamera coordinate

Camera-to-world transformation

54

vc = Mw ← c vw

= Mc←w vw

-1

world coordinate

Summary.

• Transformations: translation, rotation and scaling

• Using homogeneous transformation, 2D (3D) transformations can be represented by multiplication of a 3x3 (4x4) matrix

• Multiplication from left-to-right can be • Multiplication from left-to-right can be considered as the transformation of the coordinate system

• Need to multiply the camera matrix from the left at the end

• Reading: Foley et al. Chapter 5, Appendix 2 sections A1 to A5 for revision and further background (Chapter 5)

55

top related