97
2D vs. 3D Squirrel Eiserloh Director, TrueThought [email protected]

2D vs. 3D Squirrel Eiserloh Director, TrueThought [email protected]

Embed Size (px)

Citation preview

Page 1: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D vs. 3D

Squirrel EiserlohDirector, TrueThought

[email protected]

Page 2: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D vs. 3D

Squirrel EiserlohDirector, TrueThought

[email protected]

Fight!

Page 3: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Relevance

Lots of people are using 2D

• Indie soloists• Indie studios• Casual game developers• AAA game developers

Page 4: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Relevance

Braid

Viewtiful Joe

Gish

Odin Sphere

Page 5: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Relevance

Alien Hominid

The Red Star

Gradius

Contra

Page 6: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Relevance

Crayon Physics Deluxe

World of Goo Fantastic Contraption

Armadillo Run

Page 7: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Motivation

2D Physics != 3D Physics

sometimes ==sometimes !=

Whitepapers & books often assume 3D

Page 8: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?

Doesn’t use OpenGL / Direct3D?No, most 2D games use hardware accelerated “3D” graphics

Page 9: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?

Doesn’t use OpenGL / Direct3D?No, most 2D games use hardware accelerated “3D” graphics (even simple ones)

Page 10: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?

Uses 2D sprites rather than 3D models?No, many 2D games use 3D models

Page 11: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?

Things moving in two dimensions?No, Luxor3 is actually 1D physics

Page 12: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?

Uses non-perspective transform?

Page 13: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com
Page 14: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

John John

TomKevin Adrian

Jay

id Software / 1993

Page 15: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com
Page 16: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com
Page 17: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What is 2D, anyway?• Doesn’t use OpenGL / Direct3D?

No, many 2d games use hardware accelerated graphics

• Uses 2d sprites rather than 3d models?No, platformers with 3d models are 2d games

• Things moving in two dimensions?No, Luxor3 is actually 1D physics

• Uses non-perspective transform?No, Doom used perspective transform in 2D world

So what is it?

Page 18: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Math & 2D Data

For our purposes here today, you may be doing some flavor of 2D if:

• Your data is 2D (x,y) or...• You are doing 2D math

Page 19: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

The Case for 2D

• Easier to diagram• Easier to understand• Easier to implement• Easier to debug• Easier to learn new algorithms• Faster to compute• Requires less memory• Can do things you can’t do in 3D!

Page 20: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

3D != better gameplay

Castlevania:Symphony of the Night

Castlevania:Judgement

93% Metacritic 49% Metacritic

Page 21: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Position, velocity, mass, momentum, acceleration, force

Page 22: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Position, velocity, mass, momentum, acceleration, force

• Friction

Page 23: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Position, velocity, mass, momentum, acceleration, force

• Friction• Stacking

Page 24: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Position, velocity, mass, momentum, acceleration, force

• Friction• Stacking• Contact

Page 25: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Position, velocity, mass, momentum, acceleration, force

• Friction• Stacking• Contact• Joints & constraints

Page 26: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines

Page 27: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration

Page 28: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference

Page 29: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference

Page 30: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference

Page 31: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 32: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 33: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 34: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 35: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 36: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 37: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 38: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 39: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 40: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems

Page 41: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems• Configuration Space

Page 42: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems• Configuration Space• Object hierarchies

Page 43: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of

Reference• Coordinate systems• Configuration Space• Object hierarchies• Parallelisms

Page 44: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

• Curves and splines• Numerical

integration• Frames of Reference• Coordinate systems• Configuration Space• Object hierarchies• Parallelisms• Fluids, cloth, etc.

Page 45: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration

Page 46: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 47: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 48: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 49: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 50: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 51: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 52: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 53: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Page 54: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands1 x (1000x1000)

= 1 million

Page 55: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands10 x (100x100)

= 100,000

Page 56: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 57: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 58: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 59: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 60: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 61: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 62: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s the same?

Similar problems:• Penetration• Tunneling

Similar techniques:• Simulation islands

Page 63: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Even 1D Physics is hardAlmost all of the most

interesting problems in physics simulation exist even in 1 dimension!

• Distance & separation• Center of mass• Attachment• Penetration• Tunneling• Stacking• Constraints• Springs and forces

• Gravity• Simulation Islands• Tension• Pressure, density• Collision detection• Collision response• Energy transfer &

dampening• Collision zones /

buckets• Collision pairs• Contact• Temporal coherence

Page 64: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Even 1D Physics is hardAlmost all of the most

interesting problems in physics simulation exist even in 1 dimension!

• Distance & separation• Center of mass• Attachment• Penetration• Tunneling• Stacking• Constraints• Springs and forces

• Gravity• Simulation Islands• Tension• Pressure, density• Collision detection• Collision response• Energy transfer &

dampening• Collision zones /

buckets• Collision pairs• Contact• Temporal coherence

Page 65: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Differences between2D and 3D Physics

Page 66: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

What’s different?

3 main types of differences:• Some 3D-only constructs are lost

completely• Other concepts are simplified or

reduced• Some new 2D-only algorithms are

possible!• (plus, lots of things are just plain

easier, and faster, in 2D)

Page 67: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Apples to ApplesThe 2D analogues of 3D constructs are

not as obvious as they might seem.

For instance:• 3D plane = 2D directed line• 3D tetrahedron = 2D triangle?• 3D triangle = 2D triangle?• 3D sphere = 2D disc• 3D cylinder = 2D disc OR 2D rect...• 3D line = 2D line OR 2D point• 3D volume = 2D area?• 3D surface area = 2D perimeter?• 3D distance = 2D distance

Oranges or Apples?

Page 68: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Degrees of Freedom

• 3D has 6 Degrees of Freedom (DOF):• x, y, z• yaw, pitch, roll

• 2D has 3 Degrees of Freedom (DOF):• x, y• yaw (a.k.a. heading)

Page 69: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

3D Orientation

3D orientation is expressible in several ways:• Euler Angles (yaw, pitch, roll)

• SUCK BECAUSE: can’t interpolate reasonably!• SUCK BECAUSE: can’t do transformations!

• 3x3 Matrices• SUCK BECAUSE: can’t interpolate reasonably!• SUCK BECAUSE: aren’t editable!

• Quaternions (x,y,z,w)• SUCK BECAUSE: counter-intuitive!• SUCK BECAUSE: aren’t human-comprehensible!

Page 70: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

3D Orientation

Page 71: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Orientation

• 2D orientation is simple: 1 float! (yaw)

Page 72: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Orientation

• 2D orientation is simple: 1 float! (yaw)

• Occasionally need a 2x2 Matrix to do rotational transforms

2D rotation matrix 3D rotation matrix

Page 73: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Not in 2D: Gimbal Lock

Page 74: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Not in 2D: Quaternions

REJOICE!

Page 75: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Perpendicularity

2D Perpendiculars 3D Perpendiculars

(only two!) (infinitely many!)

Page 76: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Perpendicularity

Trivial to compute perpendiculars in 2D:

A = (Ax , Ay)

Page 77: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Perpendicularity

Trivial to compute perpendiculars in 2D:

A = (Ax , Ay)

Aperp1 = (Ay , –Ax)

Page 78: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Perpendicularity

Trivial to compute perpendiculars in 2D:

A = (Ax , Ay)

Aperp1 = (Ay , –Ax)

Aperp2 = (–Ay , Ax)

Page 79: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Not in 2D: Cross Product

In 2D, the Cross Product exists, but now it’s a scalar (float), just like Dot Product.

A x B = (AxBy – AyBx)

In fact: the 2D Cross Product AxB is exactly the same as a Dot Product with B’s perpendicular:

A x B = A ● Bperpendicular

Vector Cross Product

Page 80: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Data is smaller

Page 81: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Size Comparisons

2DPosition, Velocity,

Acceleration(x,y) = 2 floats

Orientation(yaw) = 1 float(Matrix22) = 4 floats

3DPosition, Velocity,

Acceleration(x,y,z) = 3 floats

Orientation(Euler) = 3 floats(Matrix33) = 9 floats(Quaternion) = 4 floats

Page 82: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Size Comparisons

2DAngular Velocity

1 float

Mass1 float (mass)

3DAngular Velocity

3 floats (Vector3)

Mass1 float (mass) +9 floats (inertial

tensor matrix)

Page 83: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Size Comparisons

2DAABB (axis-aligned

bounding box)4 floats (mins, maxs)

OBB (oriented bounding box)5-8 floats

3DAABB (axis-aligned

bounding box)6 floats (mins, maxs)

OBB (oriented bounding box)9-12 floats

Page 84: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Size Comparisons

In general, 3D objects have roughly 2 to 3 times as many features as their 2D counterparts do.

Which means that N2 types of algorithms (like discrete / explicit CSO generation?) can often take anywhere from 4x to 9x as long in 3D!

Page 85: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Computations are faster

Page 86: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Speed Comparisons

2DDot Product

2 mults + 1 add

Scalar Cross Product2 mults + 1 subtract

3DDot Product

3 mults + 2 adds

Vector Cross Product6 mults + 3 subtracts

Page 87: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Speed Comparisons

2DCreate Rotation Matrix

1 sine + 1 cosine

Apply Matrix Transform to Vector2 Dot Products(4 mults + 2 adds)

3DCreate Rotation

Matrix6 sines/cosines +16 mults + 4 adds

Apply Matrix Transform to Vector3 Dot Products(9 mults + 6 adds)

Page 88: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Speed Comparisons

2DConcatenate Rotations

1 add (float + float!)

Separating Axis Test (SAT) vs. OBB32 Dot Products(64 mults + 32 adds)

3DConcatenate Rotations

9 Dot Products(27 mults + 18 adds)

Separating Axis Test (SAT) vs. OBB 9 Cross Products 120 Dot Products(414 mults + 267 adds)

Page 89: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Speed Comparisons

2DBSP Traversal

LgN 2D Dot Products & comparisons

Sweep and Prune2/3 as much as 3D

3DBSP Traversal

LgN 3D Dot Products & comparisons

Sweep and Prune50% more than 2D

Page 90: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Only in 2D: Ordered FeaturesIt is common to

represent 2d objects as a counter-clockwise “windings” of points and/or features (edge faces, etc.)

Useful for LOTS of algorithms!

Page 91: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D SIMD “Parallelism”

• Can use SIMD operations to do “two at once” pipelining with pairs of Vector2s in many cases. Extreme example:

(Ax,Ay,Bx,By) * (Qx,Qy,Qx,Qy)(Cx,Cy,Dx,Dy) * (Rx,Ry,Rx,Ry)(AQx,BQx,CRx,DRx) + (AQy,BQy,CRy,DRy)

= A●Q, B●Q, C●R, D●R in 3 (2D) SIMD instructions instead of 20 (3D) float instructions

Page 92: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Spacetime is 3D!• If you need to use

spacetime (for continuous collision detection checks or whatnot), in 2d you simply go to 3d spacetime (x,y,t). Yay! we can still pretty much picture this in our heads.

• In 3d, if you need to go spacetime you end up in 4d (x,y,z,t). Boo!• This is very hard to

visualize (but doable)• might not have the 4d

functions already in your math library

Page 93: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Spacetime is 3D!• If you need to use

spacetime (for continuous collision detection checks or whatnot), in 2d you simply go to 3d spacetime (x,y,t). Yay! we can still pretty much picture this in our heads.

• In 3d, if you need to go spacetime you end up in 4d (x,y,z,t). Boo!• This is very hard to

visualize (but doable)• might not have the 4d

functions already in your math library

Page 94: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

2D Bit Bucket Tests

• It is much more reasonable to divide a 2d space into reasonable buckets for doing tricks like Bit Bucket Tests:• Chop space into N (typically 32, or 64, or 96, or

128) different areas• Each object has N bits which are updated when

it moves. A bit is lit if the object is (at all) inside the corresponding area

• Object vs. Object early rejection test:MyBits & YourBits

• Note: I used this on a project recently and was able to reduce collision detection time by 90%!

Page 95: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

The Best Thing About 2D is...• Easier to draw (paper / whiteboard), so...• Easier to get it right, so...• Easier to avoid bugs, AND:• Easier to learn new algorithms, which means...• Easier to implement, and...• Simpler code (in some cases), which gives

you...• Easier to debug, all of which...• Gets you to coding the next cool thing

(physics feature, or *gasp* gameplay) that much sooner!

Page 96: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Remember:

• If you’re doing 3D physics in general – or some piece of 3D math in particular – ask yourself if you could be doing (some, or all of) it in 2D instead.

• If you’re already doing 2D, realize that certain aspects of algorithms and code you find in whitepapers & books & online may be able to be simplified dramatically.

• Look for opportunities to take advantage of the wins that 2D brings you!

Page 97: 2D vs. 3D Squirrel Eiserloh Director, TrueThought Squirrel@TrueThought.com

Thanks!

Feel free to email me at:

[email protected]