Computer Graphics

55
Computer Graphics 02/10/09 Lecture 4 1 Lecture 2 Transformations

description

Lecture 2 Transformations. Computer Graphics. Transformations. What is a transformation? P  = T(P)‏ What does it do? Transform the coordinates / normal vectors of objects Why use them? Modelling -Moving the objects to the desired location in the environment - PowerPoint PPT Presentation

Transcript of Computer Graphics

Page 1: Computer Graphics

Computer Graphics

02/10/09 Lecture 4 1

Lecture 2 Transformations

Page 2: Computer Graphics

7/10/2008 Lecture 4 2

Transformations.

What is a transformation?• P=T(P)What does it do?

Transform the coordinates / normal vectors of objects Why use them?• 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

Page 3: Computer Graphics

7/10/2008 Lecture 4 3

Types of Transformations

– Geometric Transformations• Translation• Rotation• scaling

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

– Projection (preserves lines)• Perspective projection• Parallel projection

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

Page 4: Computer Graphics

19/04/23 Lecture 1 4

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

Page 5: Computer Graphics

7/10/2008 Lecture 4 5

2D Translations.

TPP

d

dT

y

xP

y

xP

dyydxx

yxP

yxPP

yx

Now

,,

torscolumn vec theDefine

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

),,( as defined Point

y

x

yx

PP’

Page 6: Computer Graphics

7/10/2008 Lecture 4 6

2D Scaling from the origin.

y

x.

0

0

y

xor

Now

0

0

matrix theDefine

. ,.

axis.y thealong s and

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

),,( as defined Point

y

x

y

x

y

x

yx

s

sPSP

s

sS

ysyxsx

yxP

yxPP

PP’

Page 7: Computer Graphics

7/10/2008 Lecture 4 7

2D Rotation about the origin.

y

x

r

r

P’(x’,y’)

P(x,y)

Page 8: Computer Graphics

7/10/2008 Lecture 4 8

2D Rotation about the origin.y

x

r

r

P’(x’,y’)

P(x,y)

y

sin.

cos.

ry

rx

x

Page 9: Computer Graphics

7/10/2008 Lecture 4 9

2D Rotation about the origin.

y

x

r

r

P’(x’,y’)

P(x,y)

y

sin.

cos.

ry

rx

x

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

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

rrry

rrrx

Page 10: Computer Graphics

7/10/2008 Lecture 4 10

2D Rotation about the origin.

sin.

cos.

ry

rx

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

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

rrry

rrrx

Substituting for r :

Gives us :

cos.sin.

sin.cos.

yxy

yxx

Page 11: Computer Graphics

7/10/2008 Lecture 4 11

2D Rotation about the origin.

cos.sin.

sin.cos.

yxy

yxx

Rewriting in matrix form gives us :

y

x

y

x.

cossin

sincos

PRPR

,

cossin

sincosmatrix theDefine

Page 12: Computer Graphics

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.

02/10/09 Lecture 4 12

y

x

y

x.

cossin

sincos

Page 13: Computer Graphics

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.– (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.

02/10/09 Lecture 4 13

Page 14: Computer Graphics

Translations in homogenised coordinates

• Transformation matrices for 2D translation are now 3x3.

02/10/09 Lecture 4 14

1

.

100

10

01

1

y

x

d

d

y

x

y

x

11

y

x

dyy

dxx

Page 15: Computer Graphics

Concatenation.

• When we perform 2 translations on the same point

02/10/09 Lecture 4 15

),(),(),(

:expect weSo

),(),(),(

),(

),(

21212211

21212211

22

11

yyxxyxyx

yyxxyxyx

yx

yx

ddddTddTddT

PddddTPddTddTP

PddTP

PddTP

Page 16: Computer Graphics

Concatenation.

02/10/09 Lecture 4 16

?

100

10

01

.

100

10

01

: is ),(),(product matrix The

2

2

1

1

2211

y

x

y

x

yxyx

d

d

d

d

ddTddT

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

Page 17: Computer Graphics

Concatenation.

02/10/09 Lecture 4 17

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

100

10

01

100

10

01

.

100

10

01

: is ),(),(product matrix The

21

21

2

2

1

1

2211

yy

xx

y

x

y

x

yxyx

dd

dd

d

d

d

d

ddTddT

Page 18: Computer Graphics

Properties of translations.

02/10/09 Lecture 4 18

),(),(T 4.

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

),(),(),( 2.

)0,0( 1.

1-yxyx

yxyxyxyx

yyxxyxyx

ssTss

ssTttTttTssT

tstsTttTssT

IT

Note : 3. translation matrices are commutative.

Page 19: Computer Graphics

Homogeneous form of scale.

02/10/09 Lecture 4 19

y

xyx s

sssS

0

0),(

Recall the (x,y) form of Scale :

100

00

00

),( y

x

yx s

s

ssS

In homogeneous coordinates :

Page 20: Computer Graphics

Concatenation of scales.

02/10/09 Lecture 4 20

!multiply easy to -matrix in the elements diagonalOnly

100

0ss0

00ss

100

0s0

00s

.

100

0s0

00s

: is ),(),(product matrix The

y2y1

x2x1

y2

x2

y1

x1

2211

yxyx ssSssS

Page 21: Computer Graphics

Homogeneous form of rotation.

02/10/09 Lecture 4 21

1

.

100

0cossin

0sincos

1

y

x

y

x

)()(

: i.e ,orthogonal are matricesRotation

).()(

matrices,rotation For

1

1

TRR

RR

Page 22: Computer Graphics

Orthogonality of rotation matrices.

02/10/09 Lecture 4 22

100

0cossin

0sincos

)( ,

100

0cossin

0sincos

)(

TRR

100

0cossin

0sincos

100

0cossin

0sincos

)(

R

Page 23: Computer Graphics

Other properties of rotation.

02/10/09 Lecture 4 23

careful more be toneed ,rotations 3DFor

same theis

rotation of axis thebecauseonly is But this

)()()()(

and

)()()(

)0(

RRRR

RRR

IR

Page 24: Computer Graphics

How are transforms combined?

02/10/09 Lecture 4 24

(0,0)

(1,1)(2,2)

(0,0)

(5,3)

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

TS =2

0

0

2

0

0

1

0

0

1

3

1

2

0

0

2

3

1=

Scale then Translate

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

Caution: matrix multiplication is NOT commutative!

0 0 1 0 0 1 0 0 1

Page 25: Computer Graphics

Non-commutative Composition

02/10/09 Lecture 4 25

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

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

(0,0)

(1,1)(4,2)

(3,1)

(8,4)

(6,2)

(0,0)

(1,1)(2,2)

(0,0)

(5,3)

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

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

Page 26: Computer Graphics

Non-commutative Composition

02/10/09 Lecture 4 26

TS =2

0

0

0

2

0

0

0

1

1

0

0

0

1

0

3

1

1

ST =2

0

0

2

0

0

1

0

0

1

3

1

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

2

0

0

0

2

0

3

1

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

Page 27: Computer Graphics

How are transforms combined?

02/10/09 Lecture 4 27

(0,0)

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

(0,0)

(3,sqrt(2))

(3,0)

Rotate 45 deg Translate(3,0)

Rotate then Translate

Caution: matrix multiplication is NOT commutative!

Translate then Rotate

(0,0)

(1,1)

(0,0) (3,0)

Rotate 45 degTranslate(3,0) (3/sqrt(2),3/sqrt(2))

Page 28: Computer Graphics

Non-commutative Composition

02/10/09 Lecture 4 28

TR =0

1

0

-1

0

0

0

0

1

1

0

0

0

1

0

3

1

1

RT =1

0

0

1

3

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

-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

0

1

0

-1

0

0

0

0

1

0

1

0

-1

0

0

0

0

1

Page 29: Computer Graphics

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.

02/10/09 Lecture 4 29

Page 30: Computer Graphics

Transformations of coordinate systems.

• Have been discussing transformations as transforming points.

• 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

02/10/09 Lecture 4 30

Page 31: Computer Graphics

Transformations of coordinate systems - Example

02/10/09 Lecture 4 31

• Concatenate local transformation matrices from left to right

• Can obtain the local – world transformation matrix

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

Page 32: Computer Graphics

Transformations of coordinate systems - example

02/10/09 Lecture 4 32

• is the world coordinate of point p after n transformations

Page 33: Computer Graphics

Quiz

02/10/09 Lecture 4 33

• I sat in the car, and realized 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 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?

Page 34: Computer Graphics

Solution• The side mirror position is locally

(0,4,0.3)• The matrix of first driving

forward 5m is

02/10/09 Lecture 4 34

100

510

001

1T

Page 35: Computer Graphics

Solution

• The matrix to turn to the right 30 and 45 degrees (rotating -30 and -45 degrees around the origin) are

02/10/09 Lecture 4 35

lyrespective ,

100

02

1

2

1

02

1

2

1

,

100

02

3

2

1

02

1

2

3

21

RR

Page 36: Computer Graphics

Solution The local-to-global transformation matrix at

the last configuration of the car is

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

02/10/09 Lecture 4 36

100

02

1

2

1

02

1

2

1

100

510

001

100

02

3

2

1

02

1

2

3

100

510

001

21TRTR

Page 37: Computer Graphics

This is convenient for character animation / robotics

02/10/09 Lecture 4 37

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

• Can concatenate matrices from the origin of the body towards the end effecter

Page 38: Computer Graphics

Transformations of coordinate systems.

02/10/09 Lecture 4 38

1

)()(

)()(

ji

)(

:shown that be alsocan It

:onsubstitutiby obtain we

and

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

system coordinatein point a as Define

jiij

kjjiki

kkj

j

jji

i

i

MM

MMM

PMP

PMP

iP

Page 39: Computer Graphics

3D Transformations.

• Use homogeneous coordinates, just as in 2D case.• Transformations are now 4x4 matrices.• We will use a right-handed (world) coordinate

system - ( z out of page ).

02/10/09 Lecture 4 39

Page 40: Computer Graphics

Translation in 3D.

02/10/09 Lecture 4 40

1000

100

010

001

),,(z

y

x

zyx d

d

d

dddT

Simple extension to the 3D case:

Page 41: Computer Graphics

Scale in 3D.

02/10/09 Lecture 4 41

1000

000

000

000

),,(z

y

x

zyx s

s

s

sssS

Simple extension to the 3D case:

Page 42: Computer Graphics

Rotation in 3D

• Need to specify which axis the rotation is about.• z-axis rotation is the same as the 2D case.

02/10/09 Lecture 4 42

1000

0100

00cossin

00sincos

)(

zR

Page 43: Computer Graphics

Rotating About the x-axis Rx()

02/10/09 Lecture 4 43

11000

0θcosθsin0

0θsinθcos0

0001

1

z

y

x

z

y

x

Page 44: Computer Graphics

Rotating About the y-axis Ry()

02/10/09 Lecture 4 44

11000

0θcos0θsin

0010

0θsin0θcos

1

z

y

x

z

y

x

Page 45: Computer Graphics

Rotation About the z-axis Rz()

02/10/09 Lecture 4 45

11000

0100

00θcosθsin

00θsinθcos

1

z

y

x

z

y

x

Page 46: Computer Graphics

Rotation about an arbitrary axis

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

02/10/09 Lecture 4 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 θ

Rotate(k, θ)

x

y

z

θ

u

Page 47: Computer Graphics

Rotation

• Not commutative if the axis of rotation are not parallel

02/10/09

)()()()( xyyx RRRR

Page 48: Computer Graphics

Shearing

02/10/09 Lecture 4 48

1000

0100

001

0001

a

1000

0100

0010

001 a

Page 49: Computer Graphics

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 the points in the scene

02/10/09 Lecture 4 49

Page 50: Computer Graphics

Normal Vectors

02/10/09 Lecture 4 50

• 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

Page 51: Computer Graphics

Normal Vectors - (2)

02/10/09 Lecture 4 51

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

1000

0

0

0

1000111111

111111

111111

111111

111111

111111

rrr

rrr

rrr

trrr

trrr

trrr

z

y

x

Page 52: Computer Graphics

Viewing

02/10/09 Lecture 4 52

• 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

Page 53: Computer Graphics

View Transformation

02/10/09 Lecture 4 53

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

Mc→w

Page 54: Computer Graphics

View Transformation

02/10/09 Lecture 4 54

We want to know the positions in the camera coordinate system

vw = Mc→w vc

vc = Mc → w vw

= Mw→c vw

-1

Point in theworld coordinate

Point in thecamera coordinate

Camera-to-world transformation

Page 55: Computer Graphics

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 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)

02/10/09 Lecture 4 55