6
1 1 CS 430/536 Computer Graphics I 3D Transformations World Window to Viewport Transformation Week 2, Lecture 4 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University http://gicl.cs.drexel.edu 2 Outline World window to viewport transformation 3D transformations Coordinate system transformation 3 The Window-to-Viewport Transformation 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 4 Window-to-Viewport Transformation Given a window and a viewport, what is the transformation from WCS to VPCS? Three steps: Translate Scale Translate 1994 Foley/VanDam/Finer/Huges/Phillips ICG 5 Transforming World Coordinates to Viewports 3 steps 1. Translate 2. Scale 3. Translate Overall Transformation: 1994 Foley/VanDam/Finer/Huges/Phillips ICG P' = M wv P 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/Finer/Huges/Phillips ICG

3D Transformations - Computer Science - Drexel · PDF fileComputer Graphics 3D Transformations ... • World window to viewport transformation • 3D transformations ... • Euler

  • Upload
    leduong

  • View
    231

  • Download
    2

Embed Size (px)

Citation preview

1

1

CS 430/536 Computer Graphics I

3D Transformations

World Window to Viewport Transformation Week 2, Lecture 4

David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory

Department of Computer Science Drexel University

http://gicl.cs.drexel.edu 2

Outline

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

3

The Window-to-Viewport Transformation

•  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

4

Window-to-Viewport Transformation

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

Three steps: •  Translate •  Scale •  Translate

1994 Foley/VanDam/Finer/Huges/Phillips ICG

5

Transforming World Coordinates to Viewports

•  3 steps 1.  Translate 2.  Scale 3.  Translate

Overall Transformation:

1994 Foley/VanDam/Finer/Huges/Phillips ICG

!

P'= MwvP6

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/Finer/Huges/Phillips ICG

2

7

Another Example •  Scan-converted

–  Lines –  Polygons –  Text –  Fill regions

•  Clip regions for display

1994 Foley/VanDam/Finer/Huges/Phillips ICG

9

3D Transformations

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/Finer/Huges/Phillips ICG

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]

12

3D Transformations: Scale & Translate

•  Scale –  Parameters for each

axis direction

•  Translation

13

3D Transformations: Rotation

•  One rotation for each world coordinate axis

3

14

Rotation Around an Arbitrary Axis

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

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

Graphics Gems I, p. 466 & 498

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.

!

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

#

$

% % % %

&

'

( ( ( (

•  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

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 17

18 19

!

p = (0, ! x )

4

20 21

22

slerp – Spherical linear interpolation Need to take equals steps on the sphere

A & B are quaternions

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

24

3D Transformations: Reflect & Shear

•  Reflection:

about x-y plane

•  Shear: (function of z)

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

5

26

Example

Pics/Math courtesy of Dave Mount @ UMD-CP 27

Example: Composition of 3D Transformations

•  Goal: Transform P1P2 and P1P3

1994 Foley/VanDam/Finer/Huges/Phillips ICG

28

Example (Cont.)

•  Process 1.  Translate P1 to (0,0,0) 2.  Rotate about y 3.  Rotate about x 4.  Rotate about z

(1)

(2-3)

(4)

1994 Foley/VanDam/Finer/Huges/Phillips ICG

29

Final Result •  What we’ve really

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

1994 Foley/VanDam/Finer/Huges/Phillips ICG

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/Finer/Huges/Phillips ICG

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/Finer/Huges/Phillips ICG

6

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

33

Transformations to Change Coordinate Systems

•  4 coordinate systems 1 point P

)45()8.1,7.6(

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

43

32

21

!RTMSTM

TM

•=

•=

=

!

!

!

1994 Foley/VanDam/Finer/Huges/Phillips ICG

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/Finer/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

35

Coordinate System Example (2) •  Transformation

Composition:

!

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

1994 Foley/VanDam/Finer/Huges/Phillips ICG

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/Finer/Huges/Phillips ICG !

P(wo) = T("r,0,0) # Rz(") # P(wh )

!

P'(wh )= Rz (") # P(wh )

37

Questions about Homework 1?

•  Go to web site