Geometric Transforms - PowerPoint PPT Presentation

About This Presentation
Title:

Geometric Transforms

Description:

Geometric Transforms Changing coordinate systems – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 40
Provided by: hp165
Category:

less

Transcript and Presenter's Notes

Title: Geometric Transforms


1
Geometric Transforms
  • Changing coordinate systems

2
The plan
  • Describe coordinate systems and transforms
  • Introduce homogeneous coordinates
  • Introduce numerical integration for animation
  • Later
  • camera transforms
  • physics
  • more on vectors and matrices

3
World Coordinates
  • Objects exist in the world without need for
    coordinate systems
  • But, describing their positions is easier with a
    frame of reference
  • World or object-space or global coordinates

4
Screen vs World Coordinates
  • Some objects only exist on the screen
  • mouse pointer, radar display, score, UI
    elements
  • Screen coordinates typically 2D Cartesian
  • x, y
  • Objects in the world also appear on the screen
    need to project world coordinates to screen
    coordinates
  • camera transform

5
Coordinate Transforms
  • A Cartesian coordinate system has three things
  • an origin reference point measurements are
    taken from
  • axes canonical directions
  • scale meaning of units of distance

6
Types of transforms
  • Translation
  • moving in a fixed position
  • Rotation
  • changing orientation
  • Scale
  • changing size
  • All can be viewed either as affecting the model
    or as affecting the coordinate system

7
Changing coordinate systems
  • Translation changing the origin of the
    coordinate system

(5,13)
(2,12)
(0,0)
(0,0)
8
Changing coordinate systems
  • Rotation changing the axes of the coordinate
    system

(7,1)
(5,5)
(0,0)
(0,0)
9
Changing coordinate systems
  • Scaling changing the units of the coordinate
    system

(8,8)
(4,4)
(0,0)
(0,0)
10
Matrix Transforms
  • For "simplicity"s sake, we want to represent our
    transforms as matrix operations
  • Why is this simple?
  • single type of operation for all transforms
  • IMPORTANT collection of transforms can be
    expressed as a single matrix
  • efficiency

11
Scaling
  • If we express our 2D coordinates as (x,y),
    scaling by a factor a multiplies each coordinate
    so (ax, ay)
  • Can write as a matrix multiplication

a 0
0 b
x
y
ax
by

12
Scaling Syntax
  • Matrix.CreateScale( s )
  • scalar argument s describes amount of scaling
  • alternatively,
  • Matrix.CreateScale( v )
  • vector argument v describes scale amount in x y z

13
Rotation
  • Similarly, rotating a point by an angle ?
  • (x,y) ? (x cos ? - y sin ?, x sin ? y cos ?)

x cos ? y sin ?
x sin ? y cos ?
cos ? -sin ?
sin ? cos ?
x
y

14
Rotation Syntax
  • Matrix.CreateRotationZ(angle)
  • Note, specify the axis about which the rotation
    occurs
  • also have CreateRotationX, CreateRotationY
  • argument is angle of rotation, in radians

15
Translation
  • Translating a point by a vector involves a vector
    addition
  • (x,y) (s,t) (xs, yt)

16
Translation
  • Translating a point by a vector involves a vector
    addition
  • (x,y) (s,t) (xs, yt)
  • Problem cannot compose multiplications and
    additions into one operation

17
Coordinate Transforms
  • Scaling p Sp
  • Rotation p Rp
  • Translation p t p
  • Problem Translation is treated differently.

18
Homogeneous Coordinates
  • Add an extra coordinate w
  • 2D point written (x,y,w)
  • Cartesian coordinates of this point are (x/w,
    y/w)
  • w0 represents points at infinity and should be
    avoided if representing location
  • Aside w0 also used to represent vector, e.g.,
    normal
  • in practice, usually have w1

19
Translation now
  • (x,y,1) (s,t,0) (xs,yt, 1)

1 0 s
0 1 t
0 0 1
x
y
1
xs
yt
1

20
Composing Translations
1 0 s1
0 1 t1
0 0 1
1 0 s2
0 1 t2
0 0 1
1 0 s1s2
0 1 t1t2
0 0 1

21
Translation Syntax
  • Matrix.CreateTranslation( v )
  • vector v is the translation vector
  • Also,
  • Matrix.CreateTranslation( x, y, z)
  • x, y, z are scalars (floats)

22
Composing Transformations
  • Rotation, scale, and translate are all matrix
    multiplications
  • We can compose an arbitrary sequence of
    transformations into one matrix
  • C T0T1Tn-1Tn
  • Remember order matters
  • In XNA, later transforms are added on the right

23
Kinds of Transformations
  • Rigid transformations
  • composed of only rotations and translations
  • preserve distances between points
  • Affine transformations
  • include scales
  • preserve parallelism of lines
  • distances and angles might change

24
More on Rotations
  • R matrix we wrote allows rotation about origin
  • Usually, origin and point of rotation do not
    coincide

25
More on Rotations
  • Want to rotate about arbitrary point
  • How to achieve this?

26
More on Rotations
  • Want to rotate about arbitrary point
  • How to achieve this?
  • Composite transform
  • first translate to origin
  • next, rotate desired amount
  • finally, translate back
  • C T-1RT

27
More on Order of Operations
  • AB ! BA in general
  • But, AB BA if
  • A is translation, B is translation
  • A is scale, B is scale
  • A is rotation, B is rotation
  • A is rotation, B is scale (that preserves aspect
    ratio)
  • All in two dimensions, note

Like transforms commute
28
ISROT
  • ISROT a mnemonic for the order of
    transformations
  • Identity gets you started
  • Scale change the size of your model
  • Rotation rotate in place
  • Orbit rotate about an external point
  • first translate
  • then rotate (about origin)
  • Translation move to final position

29
3D transforms
  • Translation same as in 2D
  • use 4D homogeneous coordinates x,y,z,w
  • Scaling same as 2D
  • For rotation, need to specify axis
  • unique in 2D, but different possibilities
    available in 3D
  • can represent any 3D rotation by a composition of
    rotations about axes

30
Transforming objects
  • So far, talked about transforming points
  • How about objects?
  • Lines get transformed sensibly with transforms on
    endpoints
  • Polygons same, mutatis mutandis

31
Hierarchical Models
  • Many times, structures (and models) will be built
    as a hierarchy

Body
Arm
Other limbs...
Hand
Thumb
other fingers...
32
Transforms on Hierarchies
  • Transforms applied to nodes higher in the
    hierarchy are also applied to lower nodes
  • parent transforms propagate to children
  • How to achieve this?
  • Simple multiply your transform with your
    parent's transform
  • May want a stack for hierarchy management
  • push transform on descending
  • pop when current node finished

33
Transforms on Hierarchies
  • pseudocode for computing final transform
  • applyWorld myWorld parentWorld
  • applyWorld is the final transform
  • myWorld is the local transform
  • parentWorld is the parent node's transform
  • The power of matrix transforms! Complex
    hierarchical models can be expressed simply.

34
Moving objects
  • Want to get things to move
  • Can adjust transform parameters
  • translation amount
  • rotation, orbit angles
  • Just incorporate changes into Update()
  • Need to do this in a disciplined way

35
Speed ? position
  • If we know
  • where an object started
  • how fast it is moving (and the direction)
  • and how much time has passed
  • we can figure out where it is now
  • x(t dt) x(t) v(t)dt
  • Numerical integration!

36
Euler integration
  • Assumes constant speed within a timestep
  • still gives an answer if speed changes, but
    answer might be wrong
  • x(t dt) x(t) v(t)dt
  • "Explicit integration"
  • Most commonly used in graphics/game applications

37
Implementation
  • Time available in Update as gameTime
  • object.position object.velocity
    gameTime.ElapsedGameTime.TotalSeconds
  • if speed expressed in distance units per second
  • assumes that position and velocity are vectors
  • may have some way of updating velocity
  • physics, player control, AI, ...
  • Similar approach for angle updates (need angular
    velocity)

38
Recap
  • How to use world transformations
  • scale, rotate, translate
  • Use of homogeneous coordinates for translation
  • Order of operations
  • ISROT
  • Animation and Euler integration

39
Future lectures
  • matrix and vector math
  • camera transformations
  • illumination and texture
  • particle systems
  • linear physics
Write a Comment
User Comments (0)
About PowerShow.com