13
1 IMGD 1001 - The Game Development Process: 3D Modeling and Transformations by Robert W. Lindeman ([email protected]) Kent Quirk ([email protected]) (with lots of input from Mark Claypool!) Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 2 Overview of 3D Modeling Modeling Create 3D model of scene/objects Coordinate systems (left hand, right hand) Basic shapes (cone, cylinder, etc.) Transformations/Matrices Lighting/Materials Synthetic camera basics View volume Projection

IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

  • Upload
    others

  • View
    24

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

1

IMGD 1001 - The GameDevelopment Process:

3D Modeling andTransformations

by

Robert W. Lindeman ([email protected])

Kent Quirk ([email protected])

(with lots of input from Mark Claypool!)

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 2

Overview of 3D Modeling

ModelingCreate 3D model of scene/objects

Coordinate systems (left hand, right hand)

Basic shapes (cone, cylinder, etc.)

Transformations/Matrices

Lighting/Materials

Synthetic camera basics

View volume

Projection

Page 2: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

2

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 3

Coordinate Systems

Right-handed and left-handed coordinate

systemsMake an "L" with index finger and thumb

No real "standard," but...

Converting from one to the other is a simpletransformation

+Y

+X

+Z

+Y

+X+Z

Right-Handed CoordinateSystem

Left-Handed CoordinateSystem

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 4

Right-Handed Coordinates

To determine positive rotationsMake a fist with your right hand, and stick

thumb up in the air (CCW)

+Y

+X

+Z

Page 3: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

3

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 5

Hierarchical Transformations

Graphical scenes have objectdependencies

Many small objects

Attributes (position, orientation, etc.)depend on each other

base

lower arm

hammer

A Robot Hammer!

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 6

Hierarchical Transformations

(cont.)

Object dependency description using treestructure

Base

Lower arm

Upper arm

Hammer

Root node

Leaf node

Object position and orientation can be affected by its parent, grand-parent, grand-grand-parent, … nodes

Hierarchical representation

is known as Scene Graph

Page 4: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

4

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 7

Transformations

Two ways to specify transformations1. Absolute transformation: each part of the

object is transformed independently relativeto the origin

Translate the base by (5, 0, 0);Translate the lower arm by (5, 2, 0);Translate the upper arm by (5, 4, 0);Translate the hammer head by (5, 4, 4)…

x

z

y

x

z

y

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 8

Relative Transformations

A better (and easier) way1. Relative transformation: Specify the

transformation for each object relative to itsparent

Step 1:Translate the base (and itsdescendants) by (5, 0, 0);

x

z

y

x

z

yx

z

y

Page 5: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

5

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 9

Relative Transformations (cont.)

Step 2:Rotate the lower arm and (itsdescendants) relative to thebase's local y axis by -90 degrees

x

z

y

x

z

y

x

z

y

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 10

Relative Transformations

Using a Scene Graph

Base

Lower arm

Upper arm

Hammer

Rotate (-90) about its local y

Translate (5, 0, 0)

Apply all the waydown

Apply all the way down

Page 6: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

6

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 11

Introduction to TransformationsA transformation changes an object's

Size (scaling)

Position (translation)

Orientation (rotation)

We will introduce first in 2D or (x,y), build intuition

Later, talk about 3D and 4D?

Transform object by applying sequence of matrixmultiplications to object vertices

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 12

Why Matrices?

All transformations can be performedusing matrix/vector multiplication

Allows pre-multiplication of all matrices

Note: point (x, y) needs to berepresented as (x, y, 1), also calledhomogeneous coordinates

Page 7: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

7

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 13

Point Representation

We use a column matrix (2x1 matrix) torepresent a 2D point

General form of transformation of a point(x, y) to (x’, y’) can be written as:

cbyaxx ++='

feydxy ++='or

x '

y '

1

=

a b c

d e f

0 0 1

*

x

y

1

y

x

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 14

Translation

To reposition a point along a straight line

Given point (x, y) and translationdistance (tx, ty)

The new point: (x’, y’)

(x,y)

(x’,y’)

or

whereTPP +=' ='

''

y

xP =

y

xP =

y

x

t

tT

x’ = x + tx

y’ = y + ty

Page 8: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

8

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 15

3x3 2D Translation Matrix

'

'

y

x

y

x

y

x

t

t= +

use 3x1 vector

1

'

'

y

x

100

10

01

y

x

t

t

1

y

x

= *

Note: it becomes a matrix-vector multiplication

x’ = x + tx

y’ = y + ty

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 16

Translation of Objects

How to translate an object withmultiple vertices?

Translate individualvertices

Page 9: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

9

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 17

2D Scaling

Scale: Alter object size by scalingfactor (sx, sy). i.e.,

x’ = x * Sx y’ = y * Sy

(1,1)

(2,2) Sx = 2, Sy = 2

(2,2)

(4,4)

=y

x

Sy

Sx

y

x

0

0

'

'

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 18

3x3 2D Scaling Matrix

=y

x

Sy

Sx

y

x

0

0

'

'

=

1100

00

00

1

'

'

y

x

Sy

Sx

y

x

x’ = x * Sx y’ = y * Sy

Page 10: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

10

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 19

2D Rotation

Default rotation center is origin (0,0)

> 0 : Rotate counter clockwise

< 0 : Rotate clockwise

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 20

2D Rotation (cont.)

(x,y) -> Rotate about the origin by

(x’, y’)

How to compute (x’, y’) ?

x = r*cos( )y = r*sin( )

(x,y)

(x’,y’)

r

x' = r*cos( + )y' = r*sin( + )

Page 11: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

11

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 21

2D Rotation (cont.)

Using trig. identities

(x,y)

(x’,y’)

rx’ = x cos( ) – y sin( )y’ = x sin( ) + y cos( )

Matrix form?

=y

x

y

x

)cos()sin(

)sin()cos(

'

'

sinsincoscos)cos( =+

sincoscossin)sin( +=+

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 22

3x3 2D Rotation Matrix

(x,y)

(x’,y’)

r

=y

x

y

x

)cos()sin(

)sin()cos(

'

'

=

1100

0)cos()sin(

0)sin()cos(

1

'

'

y

x

y

x

Page 12: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

12

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 23

2D Rotation

How to rotate an object with multiplevertices?

Rotate individualVertices

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 24

Arbitrary Rotation CenterTo rotate about arbitrary point P = (Px, Py) by:

Translate object by T(-Px, -Py) so that P coincideswith originRotate the object by R( )

Translate object back: T(Px, Py)

In matrix formT(Px,Py) R( ) T(-Px,-Py) * P

Similar for arbitrary scaling anchor

=

1100

10

01

100

0)cos()sin(

0)sin()cos(

100

10

01

1

'

'

y

x

Py

Px

Py

Px

y

x

Page 13: IMGD 1001 - The Game Development Process: 3D Modeling and ...gogo/courses/imgd1001_2007a/slides/imgd1001_10... · Composing Transformations Composing transformations Applying several

13

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 25

Composing TransformationsComposing transformations

Applying several transforms in succession to form oneoverall transformation

ExampleM1 X M2 X M3 X P

where M1, M2, M3 are transform matrices applied to P

Be careful with the order!

For exampleTranslate by (5, 0), then rotate 60 degrees is NOT same as

Rotate by 60 degrees, then translate by (5, 0)

Lindeman & Quirk (& Claypool) - WPI Dept. of Computer Science 26

3D Transformations

Affine transformationsMappings of points to new points that retain certainrelationships

Lines remain lines

Several transformations can be combined into asingle matrix

Two ways to think about transformationsObject transformations

All points of an object are transformed

Coordinate transformations

The coordinate system is transformed, and modelsremain defined relative to this