Top Banner
Physics for Games Physics for Games Programmers Programmers Problem Problem Overview Overview Squirrel Eiserloh Technical Director Ritual Entertainment [email protected] www.ritual.com www.algds.org
79

Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment [email protected] .

Mar 27, 2015

Download

Documents

Leah Freeman
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Physics for Games Physics for Games Programmers Programmers Problem Problem

OverviewOverview

Squirrel Eiserloh

Technical DirectorRitual Entertainment

[email protected]

Page 2: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

2

Types of Problems Knowing when to cheat Simplifying things Giving shape to things Moving things around Simulation baggage Detecting (and resolving) collisions Sustained interactions Dealing with the impossible Making it fast enough

Page 3: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Knowing When To Cheat

Page 4: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

4

Knowing When to Cheat Discrete physics simulation falls

embarrassingly short of reality. “Real” physics is prohibitively

expensive... ...so we cheat. We need to cheat enough to be able to

run in real time. We need to not cheat so much that

things break in a jarring and unrecoverable way.

Much of the challenge is knowing how and when to cheat.

Page 5: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

5

Knowing When to Cheat

Ask: “Will the player notice?” “Will the player care?” “Will the results be predictable?” “Are we at least cheating in a consistent

way?” “Will the simulation break?”

If the simulation breaks, they will notice and they will care

Some crimes are greater than others

Page 6: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Simplifying Things

Page 7: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

7

Simplifying Things

Simplified bodies

Page 8: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

8

Simplifying Things

Simplified bodies Even more

simplified bodies

Page 9: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

9

Simplifying Things

Simplified bodies Even more

simplified bodies Convex bodies

Page 10: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

10

Simplifying Things

Simplified bodies Even more

simplified bodies Convex bodies Homogeneous

bodies

Page 11: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

11

Simplifying Things

Simplified bodies Even more

simplified bodies Convex bodies Homogeneous

bodies Rigid bodies

Page 12: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

12

Simplifying Things

Simplified bodies Even more

simplified bodies Convex bodies Homogeneous

bodies Rigid bodies Indestructible

bodies

Page 13: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

13

Simplifying Things

Movement is often assumed to be in a vacuum (ignoring air resistance)

Even when air resistance does get simulated, it is hugely oversimplified

Page 14: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

14

Simplifying Things

Collisions are often assumed to be perfect and elastic

That is, 100% of the energy before the collision is maintained after the collision

Think billiard balls

Page 15: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Giving Shape to Things

Page 16: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

16

Giving Shape to Things

N-sphere 2d: Disc 3d: Sphere

Page 17: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

17

Giving Shape to Things

N-sphere 2d: Disc 3d: Sphere

Simplex 2d: Triangle 3d: Tetrahedron

Page 18: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

18

Giving Shape to Things

N-sphere 2d: Disc 3d: Sphere

Simplex 2d: Triangle 3d: Tetrahedron

Convex Polytope 2d: Convex Polygon 3d: Convex

Polyhedron a.k.a. “Convex Hull” a.k.a. “Brush” (Quake)

Page 19: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

19

Giving Shape to Things

Discrete Oriented Polytope (DOP)

Page 20: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

20

Giving Shape to Things

Discrete Oriented Polytope (DOP)

Oriented Bounding Box (OBB)

Page 21: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

21

Giving Shape to Things

Discrete Oriented Polytope (DOP)

Oriented Bounding Box (OBB)

Axis-Aligned Bounding Box (AABB)

Page 22: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

22

Giving Shape to Things

Discrete Oriented Polytope (DOP)

Oriented Bounding Box (OBB)

Axis-Aligned Bounding Box (AABB)

Capsule

Page 23: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

23

Giving Shape to Things

Discrete Oriented Polytope (DOP)

Oriented Bounding Box (OBB)

Axis-Aligned Bounding Box (AABB)

Capsule Cylinder (3d only)

Page 24: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Moving Things Around

Page 25: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

25

Moving Things Around Kinematics

Describes motion Uses position,

velocity, momentum, acceleration

Page 26: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

26

Moving Things Around Kinematics

Describes motion Uses position,

velocity, momentum, acceleration

Dynamics Explains motion Uses forces ...and impulses

Page 27: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

27

Moving Things Around Kinematics

Describes motion Uses position,

velocity, momentum, acceleration

Dynamics Explains motion Forces (F=ma) Impulses

Rotation Torque Angular momentum Moment of inertia

Page 28: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Simulation Baggage

Page 29: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

29

Simulation Baggage

Flipbook syndrome

Page 30: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

30

Simulation Baggage

Flipbook syndrome Things can happen

in-between snapshots

Page 31: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

31

Simulation Baggage

Flipbook syndrome Things mostly

happen in-between snapshots

Page 32: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

32

Simulation Baggage

Flipbook syndrome Things mostly

happen in-between snapshots

Curved trajectories treated as piecewise linear

Page 33: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

33

Simulation Baggage

Flipbook syndrome Things mostly

happen in-between snapshots

Curved trajectories treated as piecewise linear

Terms often assumed to be constant throughout the frame

Page 34: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

34

Simulation Baggage (cont’d)

Error accumulates

Page 35: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

35

Simulation Baggage (cont’d)

Error accumulates Energy is not

always conserved Energy loss can be

undesirable Energy gain is evil

Simulations explode!

Page 36: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

36

Simulation Baggage (cont’d)

Error accumulates Energy is not

always conserved Energy loss can be

undesirable Energy gain is evil

Simulations explode!

Rotations are often assumed to happen instantaneously at frame boundaries

Page 37: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

37

Simulation Baggage (cont’d)

Error accumulates Energy is not always

conserved Energy loss can be

undesirable Energy gain is evil

Simulations explode!

Rotations are often assumed to happen instantaneously at frame boundaries

Numerical nightmares!

Page 38: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Collision Detection

Page 39: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

39

Collision Detection

We need to determine if A and B intersect

Page 40: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

40

Collision Detection

We need to determine if A and B intersect

Worse yet, they could be (and probably are) in motion

Page 41: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

41

Collision Detection

We need to determine if A and B intersect

Worse yet, they could be (and probably are) in motion

If they did collide, we probably also need to know when they collided

Page 42: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

42

Collision Response

...and we need to figure out how to resolve the collision

Page 43: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Sustained Interactions

Page 44: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

44

Sustained Interactions

Surface contact

Page 45: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

45

Sustained Interactions

Surface contact Edge contact

Page 46: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

46

Sustained Interactions

Surface contact Edge contact Contact points

Page 47: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

47

Sustained Interactions

Surface contact Edge contact Contact points

Different solutions

Page 48: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

48

Sustained Interactions

Surface contact Edge contact Contact points

Different solutions Stacking

Page 49: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

49

Sustained Interactions

Surface contact Edge contact Contact points

Different solutions Stacking Friction

Static & Kinetic

Page 50: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

50

Sustained Interactions

Surface contact Edge contact Contact points

Different solutions Stacking Friction

Static & Kinetic Constraints & Joints

Page 51: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Dealing With the Impossible

Page 52: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

52

Dealing With the Impossible

Interpenetration

Page 53: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

53

Dealing With the Impossible

Interpenetration Tunneling

Page 54: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Tunneling(Sucks)

Page 55: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

55

Tunneling

Small objects tunnel more easily

Page 56: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

56

Tunneling (cont’d)

Possible solutions Minimum size requirement?

Inadequate; fast objects still tunnel

Page 57: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

57

Tunneling (cont’d)

Fast-moving objects tunnel more easily

Page 58: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

58

Tunneling (cont’d)

Possible solutions Minimum size requirement?

Inadequate; fast objects still tunnel Maximum speed limit?

Inadequate; since speed limit is a function of object size, this would mean small & fast objects (bullets) would not be allowed

Smaller time step? Helpful, but inadequate; this is essentially the

same as a speed limit

Page 59: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

59

Tunneling (cont’d)

Besides, even with min. size requirements and speed limits and a small timestep, you still have degenerate cases that cause tunneling!

Page 60: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

60

Tunneling (cont’d)

Tunneling is very, very bad – this is not a “mundane detail” Things falling through world Bullets passing through people or walls Players getting places they shouldn’t Players missing a trigger boundary

Page 61: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

61

Tunneling (cont’d)

Interpenetration Tunneling Rotational

tunneling

Page 62: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Making It Fast Enough

Page 63: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

63

Making It Fast Enough

Don’t be too particular too soon Avoid unnecessary

work

Page 64: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

64

Making It Fast Enough

Don’t be too particular too soon Avoid unnecessary

work Eschew n-squared

operations Avoid the

“everything vs. everything” case

Page 65: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

65

Making It Fast Enough

Don’t be too particular too soon Avoid unnecessary

work Eschew n-squared

operations Avoid the

“everything vs. everything” case

Try using simulation islands or other methods to divide and conquer

Page 66: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

66

Simulation Islands

Consider: 1000 objects, 1

island 1000x1000 checks = 1 Million checks

Page 67: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

67

Simulation Islands

Consider: 1000 objects, 1

island 1000x1000 checks = 1 Million checks

Verses: 1000 objects,

divided into 10 islands of 100

10 x (100x100) checks

= 100,000 checks 1/10th as many!

Page 68: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

68

Simulation Islands

Simulation islands can “go to sleep” when they become stable i.e. when forces and

motion remain unchanged

Page 69: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

69

Simulation Islands

Simulation islands can “go to sleep” when they become stable i.e. when forces and

motion remain unchanged

Page 70: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

70

Simulation Islands

Simulation islands can “go to sleep” when they become stable i.e. when forces and

motion remain unchanged

When an object enters the island’s bounds...

Page 71: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

71

Simulation Islands

Simulation islands can “go to sleep” when they become stable i.e. when forces and

motion remain unchanged

When an object enters the island’s bounds...

Page 72: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

72

Simulation Islands

Simulation islands can “go to sleep” when they become stable i.e. when forces and

motion remain unchanged

When an object enters the island’s bounds...

...the island wakes up

Page 73: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

73

Simulation Islands

Add the newcomer to this simulation island

Page 74: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

74

Simulation Islands

Add the newcomer to this simulation island

...and put it back to sleep once it stabilizes

This is just one of many ways to reduce complexity

We’ll be covering several others later on

Page 75: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

75

Making It Fast Enough

Can also exploit work previously done Make “educated assumptions” using:

Temporal/frame coherence: Things tend not to have changed a whole lot in the 15ms or so since the previous frame, so save the previous frame’s results!

Spatial coherence: Things tend to miss each other far more often than they collide, and only things in the same neighborhood can collide with each other

Page 76: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

Summary

Page 77: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

77

Summary The nature of simulation causes us

real problems... problems which can’t be ignored

So we cheat And we simplify things And even then, it can get quite

complex...

Page 78: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

78

Summary (cont’d)

Problems we’re concerned with: How should we choose to represent physical

bodies? How should we simulate and compute motion? How can we prevent energy build-up? How do we cope with floating point error? How can we detect collisions – especially when

large numbers of objects are involved? How should we resolve penetration? How should we handle contact? How can we prevent tunneling? How do we deal with non-rigid bodies?

Page 79: Physics for Games Programmers Problem Overview Squirrel Eiserloh Technical Director Ritual Entertainment squirrel@eiserloh.net  .

79

Questions?

Feel free to reach me by email at:

[email protected] or

[email protected]