35
1 CS 430 Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University

3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

  • Upload
    others

  • View
    15

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

1

CS 430Computer Graphics

3D TransformationsWorld Window to Viewport Transformation

Week 2, Lecture 4

David Breen, William Regli and Maxim PeysakhovDepartment of Computer Science

Drexel University

Page 2: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

2

Outline

• World window to viewport transformation • 3D transformations• Coordinate system transformation

Page 3: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

3

The Window-to-ViewportTransformation

• Problem: Screen windows cannot display the whole world (window management)

• How to transform and clip:Objects to Windows to Screen

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 4: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

4

Window-to-ViewportTransformation

• Given a window and a viewport, what is the transformation from WCS to VPCS?

Three steps:• Translate• Scale• Translate

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 5: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

5

Transforming World Coordinates to Viewports

• 3 steps1. Translate2. Scale3. Translate

Overall Transformation:

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

P'= MwvP

Page 6: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

6

Clipping to the Viewport

• Viewport size may not be big enough for everything

• Display only the pixels inside the viewport

• Transform lines in world• Then clip in world•Transform to image• Then draw• Do not transform pixels

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 7: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

9

3D Transformations

Page 8: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

10

Representation of 3D Transformations

• Z axis represents depth• Right Handed System

– When looking “down” at the origin, positive rotation is CCW

• Left Handed System– When looking “down”, positive

rotation is in CW– More natural interpretation for

displays, big z means “far” (into screen)

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 9: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

11

3D Homogenous Coordinates

• Homogenous coordinates for 2D space requires 3D vectors & matrices

• Homogenous coordinates for 3D space requires 4D vectors & matrices

• [x,y,z,w]

Page 10: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

12

3D Transformations:Scale & Translate

• Scale– Parameters for each

axis direction

• Translation

Page 11: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

13

3D Transformations: Rotation

• One rotation for each world coordinate axis

Page 12: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

14

Rotation Around an Arbitrary Axis

• Rotate a point P around axis n (x,y,z) by angle q

• c = cos(q)• s = sin(q)• t = (1 - c)

Graphics Gems I, p. 466 & 498

This image cannot currently be displayed.

R =

tx 2 + c txy + sz txz − sy 0txy − sz ty 2 + c tyz + sx 0txz + sy tyz − sx tz2 + c 00 0 0 1

#

$

% % % %

&

'

( ( ( (

Page 13: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

• Also can be expressed as the Rodrigues Formula

15€

Prot = P cos(ϑ ) + (n× P)sin(ϑ ) + n(n ⋅ P)(1− cos(ϑ ))

Rotation Around an Arbitrary Axis

Page 14: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

Improved Rotations

• Euler Angles have problems– How to interpolate keyframes?– Angles aren’t independent– Interpolation can create Gimble Lock, i.e.

loss of a degree of freedom when axes align

• Solution: Quaternions!

16

Page 15: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

17

Page 16: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

18

Page 17: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

19

p = (0, x )

Page 18: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

20

Page 19: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

21

Page 20: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

22

slerp – Spherical linear interpolationNeed to take equals steps on the sphere

A & B are quaternions

Page 21: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

What about interpolating multiple keyframes?

• Shoemake suggests using Bezier curves on the sphere

• Offers a variation of the De Casteljau algorithm using slerp and quaternion control points

• See K. Shoemake, “Animating rotation with quaternion curves”, Proc. SIGGRAPH ’85

23

Page 22: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

24

3D Transformations:Reflect & Shear

• Reflection:

about x-y plane

• Shear:(function of z)

Page 23: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

25

3D Transformations:Shear

X 'Y 'Z '1

"

#

$ $ $ $

%

&

' ' ' '

=

1 Shxy Shx

z 0Shy

x 1 Shyz 0

Shzx Shz

y 1 00 0 0 1

"

#

$ $ $ $

%

&

' ' ' '

XYZ1

"

#

$ $ $ $

%

&

' ' ' '

X ' = X + ShxyY + Shx

zZ

Y ' = ShyxX +Y + Shy

zZ

Z ' = ShzxX + Shz

yY + Z

Page 24: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

26

Example

Pics/Math courtesy of Dave Mount @ UMD-CP

Page 25: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

27

Example: Composition of 3D Transformations

• Goal: Transform P1P2 and P1P3

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 26: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

28

Example (Cont.)

• Process1. Translate P1 to (0,0,0)2. Rotate about y 3. Rotate about x4. Rotate about z

(1)

(2-3)

(4)

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 27: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

29

Final Result• What we’ve really

done is transform the local coordinate system Rx, Ry, Rzto align with the origin x,y,z

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 28: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

30

Example 2: Composition of 3D Transformations

• Airplane defined in x,y,z• Problem: want to point

it in Dir of Flight (DOF)centered at point P

• Note: DOF is a vector• Process:

– Rotate plane– Move to P

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 29: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

31

Example 2 (cont.)

• Zp axis to be DOF• Xp axis to be a horizontal

vector perpendicular to DOF– y x DOF

• Yp, vector perpendicular to both Zp and Xp (i.e.Zp x Xp)

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 30: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

32

Transformations to Change Coordinate Systems

• Issue: the world has many different relative frames of reference

• How do we transform among them?• Example: CAD Assemblies & Animation Models

Page 31: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

33

Transformations to Change Coordinate Systems

• 4 coordinate systems1 point P

)45()8.1,7.6(

)5.0,5.0()3,2()2,4(

43

32

21

RTMSTM

TM

•=

•=

=

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 32: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

34

Coordinate System Example (1)

• Translate the House to the origin

M1←2 = T(x1,y1)

M2←1 = M1←2( )−1

= T(−x1,−y1)

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

The matrix Mij that maps points from coordinate system j to i is the inverse of the matrix Mji that maps points from coordinate system j to coordinate system i.

P1

Page 33: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

35

Coordinate System Example (2)• Transformation

Composition:

M5←1 = M5←4 •M4←3 •M3←2 •M2←1

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG

Page 34: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

36

World Coordinates and Local Coordinates

• To move the tricycle, we need to know how all of its parts relate to the WCS

• Example: front wheel rotates on the ground wrt the front wheel’s z axis:Coordinates of P in wheel coordinate system:

1994 Foley/VanDam /Fi ner/Huges/Phillips ICG€

P(wo) = T(αr,0,0) ⋅ Rz(α) ⋅ P(wh )

P'(wh )= Rz (α) ⋅ P(wh )

Page 35: 3D Transformations - Computer Science Department€¦ · Computer Graphics 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli

37

Questions about Homework 1?

• Go to web site