Physics%20for%20Games%20Programmers%20Tutorial%20Motion%20and%20Collision%20 - PowerPoint PPT Presentation

About This Presentation
Title:

Physics%20for%20Games%20Programmers%20Tutorial%20Motion%20and%20Collision%20

Description:

Title: Continuous Collision Detection of General Convex Objects Under Translation Author: Gino Last modified by: squirrel Created Date: 12/20/2004 10:55:59 AM – PowerPoint PPT presentation

Number of Views:176
Avg rating:3.0/5.0
Slides: 140
Provided by: Gino68
Category:

less

Transcript and Presenter's Notes

Title: Physics%20for%20Games%20Programmers%20Tutorial%20Motion%20and%20Collision%20


1
Physics for Games Programmers TutorialMotion
and Collision Its All Relative
  • Squirrel Eiserloh
  • squirrel_at_eiserloh.net
  • Lead Programmer
  • Ritual Entertainment
  • www.ritual.com
  • www.algds.org

2
Takeaway
  • A comfortable, intuitive understanding of
  • The Problems of Discrete Simulation
  • Continuous Collision Detection
  • Applying Relativity to Game Physics
  • Configuration Space
  • Collisions in Four Dimensions
  • The Problems of Rotation
  • Why this is all really important even if youre
    doing simple cheesy 2d games at home in your
    underwear in your spare time

3
The Problem
  • 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.

4
Overview
  • Simulation
  • Tunneling
  • Movement Bounds
  • Swept Shapes
  • Einstein Says...
  • Minkowski Says...
  • Rotation

5
Also, I promise...
No math
6
Simulation
(Sucks)
7
Problems with Simulation
  • Flipbook syndrome

8
Problems with Simulation
  • Flipbook syndrome
  • Things can happen in-between snapshots

9
Problems with Simulation
  • Flipbook syndrome
  • Things mostly happen in-between snapshots

10
Problems with Simulation
  • Flipbook syndrome
  • Things mostly happen in-between snapshots
  • Curved trajectories treated as piecewise linear

11
Problems with Simulation
  • Flipbook syndrome
  • Things mostly happen in-between snapshots
  • Curved trajectories treated as piecewise linear
  • Terms often assumed to be constant throughout the
    frame

12
Problems with Simulation
  • Flipbook syndrome
  • Things mostly happen in-between snapshots
  • Curved trajectories treated as piecewise linear
  • Terms often assumed to be constant throughout the
    frame
  • Error accumulates

13
Problems with Simulation (contd)
  • Rotations are often assumed to happen
    instantaneously at frame boundaries

14
Problems with Simulation (contd)
  • Rotations are often assumed to happen
    instantaneously at frame boundaries
  • Energy is not always conserved
  • Energy loss can be undesirable
  • Energy gain is evil
  • Simulations explode!

15
Problems with Simulation (contd)
  • Rotations are often assumed to happen
    instantaneously at frame boundaries
  • Energy is not always conserved
  • Energy loss can be undesirable
  • Energy gain is evil
  • Simulations explode!
  • Tunneling
  • (Also evil!)

16
Overlapping Objects
  • Question 1 Do A and B overlap?
  • Plenty of reference material to help solve this,
    but...
  • ...this is often the wrong question to ask (begs
    tunneling).

17
Tunneling
(Sucks)
18
Tunneling
  • Small objects tunnel more easily

19
Tunneling (contd)
  • Possible solutions
  • Minimum size requirement?
  • Inadequate fast objects still tunnel

20
Tunneling (contd)
  • Fast-moving objects tunnel more easily

21
Tunneling (contd)
  • 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

22
Tunneling (contd)
  • Besides, even with min. size requirements and
    speed limits and a small timestep, you still have
    degenerate cases that cause tunneling

23
Tunneling (contd)
  • 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 shouldnt
  • Players missing a trigger boundary
  • Okay, so tunneling really sucks. What can we do
    about it?

24
Movement Bounds
25
Movement Bounds
  • Disc / Sphere

26
Movement Bounds
  • Disc / Sphere
  • AABB (Axis-Aligned Bounding Box)

27
Movement Bounds
  • Disc / Sphere
  • AABB (Axis-Aligned Bounding Box)
  • OBB (Oriented Bounding Box)

28
Movement Bounds
  • Question 2 Could A and B have collided during
    the frame?
  • Better than Question 1 (solves tunneling!),
    but...

29
Movement Bounds
  • Question 2 Could A and B have collided during
    the frame?
  • Better than Question 1 (solves tunneling!),
    but...
  • ...even if the answer is yes, we still dont
    know for sure (false positives).

30
Movement Bounds
  • Conclusion
  • Good They prevent tunneling! (i.e. no false
    negatives)
  • Bad They dont actually tell us whether A and B
    collided (still have false positives).
  • Good They can be used as a cheap, effective
    early rejection test.

31
Swept Shapes
32
Swept Shapes
  • Swept disc / sphere (n-sphere) capsule

33
Swept Shapes
  • Swept disc / sphere (n-sphere) capsule
  • Swept AABB convex polytope (polygon in 2d,
    polyhedron in 3d)

34
Swept Shapes
  • Swept disc / sphere (n-sphere) capsule
  • Swept AABB convex polytope (polygon in 2d,
    polyhedron in 3d)
  • Swept triangle / tetrahedron (simplex) convex
    polytope

35
Swept Shapes
  • Swept disc / sphere (n-sphere) capsule
  • Swept AABB convex polytope (polygon in 2d,
    polyhedron in 3d)
  • Swept triangle / tetrahedron (simplex) convex
    polytope
  • Swept polytope convex polytope

36
Swept Shapes (contd)
  • Like movement bounds, only with a perfect fit!

37
Swept Shapes (contd)
  • Like movement bounds, only with a perfect fit!
  • Still no false negatives (tunneling).

38
Swept Shapes (contd)
  • Like movement bounds, only with a perfect fit!
  • Still no false negatives (tunneling).
  • Finally, no false positives, either!

39
Swept Shapes (contd)
  • Like movement bounds, only with a perfect fit!
  • Still no false negatives (tunneling).
  • Finally, no false positives, either!
  • No, wait, nevermind. Still have em. Rats.

40
Swept Shapes (contd)
  • Conclusion
  • Suck?
  • Can be used as early rejection test, but...
  • ...movement bounds are better for that.
  • If youre not too picky...
  • ...they DO solve a large number of nasty problems
    (especially tunneling)
  • ...and can serve as a poor mans continuous
    collision detection for a basic engine.

41
(No Transcript)
42
Einstein Says...
  • Coordinate systems are relative

43
Relative Coordinate Systems
44
Relative Coordinate Systems
  • World coordinates

45
Relative Coordinate Systems
  • World coordinates
  • As local coordinates

46
Relative Coordinate Systems
  • World coordinates
  • As local coordinates
  • Bs local coordinates

47
Relative Coordinate Systems
Math is often nicer at the origin.
x2 y2 r2
(x-h)2 (y-k)2 r2
48
Einstein Says...
  • Coordinate systems are relative
  • Motion is relative

49
Relative Motion
50
Relative Motion
  • "Frames of Reference"
  • World frame

51
Relative Motion
  • "Frames of Reference"
  • World frame
  • A's frame

52
Relative Motion
  • "Frames of Reference"
  • World frame
  • A's frame
  • B's frame

53
Relative Motion
  • "Frames of Reference"
  • World frame
  • A's frame
  • B's frame
  • Inertial frame

54
Relative Motion
  • A Rule of Relativistic Collision Detection
  • It is always possible to reduce a collision check
    between two moving objects to a collision check
    between a moving object and a stationary object
    (by reframing)

55
(Does Not Suck)
56
Relative Collision Bodies
57
Relative Collision Bodies
  • Collision check equivalencies (disc)

58
Relative Collision Bodies
  • Collision check equivalencies (disc)
  • ...AABB

59
Relative Collision Bodies
  • Collision check equivalencies (disc)
  • ...AABB
  • Can even reduce one body to a singularity

60
Relative Collision Bodies
  • Collision check equivalencies (disc)
  • ...AABB
  • Can even reduce one body to a singularity
  • Tracing or Rubbing collision bodies together

61
Relative Collision Bodies
  • Collision check equivalencies (disc)
  • ...AABB
  • Can even reduce one body to a singularity
  • Tracing or Rubbing collision bodies together
  • Spirograph-out the reduced bodys origin

62
Relative Collision Bodies (contd)
  • Disc disc

63
Relative Collision Bodies (contd)
  • Disc disc
  • AABB AABB

64
Relative Collision Bodies (contd)
  • Disc disc
  • AABB AABB
  • Triangle AABB

65
Relative Collision Bodies (contd)
  • Disc disc
  • AABB AABB
  • Triangle AABB
  • AABB triangle

66
Relative Collision Bodies (contd)
  • Disc disc
  • AABB AABB
  • Triangle AABB
  • AABB triangle
  • Polytope polytope

67
Relative Collision Bodies (contd)
  • Disc disc
  • AABB AABB
  • Triangle AABB
  • AABB triangle
  • Polytope polytope
  • Polytope disc

68
Relative Collision Bodies (contd)
  • Things start to get messy when combining bodies
    explicitly / manually.
  • (Especially in 3d.)
  • General solution?

69
Minkowski Arithmetic
70
Minkowski Sums
  • The Minkowski Sum (AB) of A and B is the result
    of adding every point in A to every point in B.

71
Minkowski Sums
  • The Minkowski Sum (AB) of A and B is the result
    of adding every point in A to every point in B.
  • Minkowski Sums are commutative
  • AB BA
  • Minkowski Sum of convex objects is convex

72
Minkowski Differences
  • The Minkowski Difference (A-B) of A and B is the
    result of subtracting every point in B from every
    point in A (or A -B)

73
Minkowski Differences
  • The Minkowski Difference (A-B) of A and B is the
    result of subtracting every point in B from every
    point in A
  • Resulting shape is different from AB.

74
Minkowski Differences (contd)
  • Minkowski Differences are not commutative
  • A-B ! B-A
  • Minkowski Difference of convex objects is convex
    (since A-B A -B)

75
Minkowski Differences (contd)
  • Minkowski Differences are not commutative
  • A-B ! B-A
  • Minkowski Difference of convex objects is convex
    (since A-B A -B)
  • Minkowski Difference produces the same shape as
    Spirograph

76
Minkowski Differences (contd)
  • If the singularity is outside the combined body,
    A and B do not overlap.

77
Minkowski Differences (contd)
  • If the singularity is outside the combined body,
    A and B do not overlap.
  • If the singularity is inside the combined body
    (A-B), then A and B overlap.

78
Minkowski Differences (contd)
  • Aorigin vs. Borigin
  • -Borigin -Borigin
  • ___ ___
  • (A-B)origin vs. 0

79
Minkowski Differences (contd)
  • In world space, A-B is near the origin

80
Minkowski Differences (contd)
  • Since the singularity point is always at the
    origin (B-B), we can say...
  • If (A-B) does not contain the origin, A and B do
    not overlap.

81
Minkowski Differences (contd)
  • If (A-B) contains the origin, A and B overlap.
  • In other words, we reduce A vs. B to
  • combined body (A-B) vs.
  • point (B-B, or origin)

82
Minkowski Differences (contd)
  • If A and B are in the same coordinate system, the
    comparison between A-B and the origin is said to
    happen in configuration space
  • ...in which case A-B is said to be a
    configuration space obstacle (CSO)

83
Minkowski Differences (contd)
Translations in A or B simply translate the CSO
84
Minkowski Differences (contd)
Rotations in A or B mutate the CSO
85
Minkowski Sum vs. Difference
  • Lots of confusion over Minkowski Sum vs.
    Difference.
  • Sum is used to fatten an object by adding
    another object (in local coordinates) to it
  • Difference is used to put the objects in
    configuration space, i.e. A-B vs. origin.
  • Difference sometimes called Sum since A-B can be
    expressed as A(-B)!

86
Minkowski Sum vs. Difference (contd)
  • Difference is the same as Spirograph or
    rubbing
  • Difference is not commutative!
  • A-B ! B-A
  • Difference and sum produce different-shaped
    results
  • Difference produces CSO (configuration space
    obstacle)

87
(Does Not Suck)
88
Relative Everything
89
Relative Everything
  • Lets combine
  • Relative Coordinate Systems
  • Relative Motion
  • Relative Collision Bodies

90
Relative Everything (contd)
  • A vs. B in world frame

91
Relative Everything (contd)
  • A vs. B in world frame
  • A vs. B, inertial frame

92
Relative Everything (contd)
  • A vs. B in world frame
  • A vs. B, inertial frame
  • A is moving, B is still

93
Relative Everything (contd)
  • A vs. B in world frame
  • A vs. B, inertial frame
  • A is moving, B is still
  • A is CSO, B is point

94
Relative Everything (contd)
  • A vs. B in world frame
  • A vs. B, inertial frame
  • A is moving, B is still
  • A is CSO, B is point
  • A is moving CSO, B is still point

95
Relative Everything (contd)
  • A vs. B in world frame
  • A vs. B, inertial frame
  • A is moving, B is still
  • A is CSO, B is point
  • A is moving CSO, B is still point
  • A is still CSO, B is moving point

96
Relative Everything (contd)
  • Question 3 Did A and B collide during the
    frame?
  • Yes! We can now get an exact answer.
  • No false negatives, no false positives!
  • However, we still dont know WHEN they collided...

97
Relative Everything (contd)
  • Why does the exact collision time matter?
  • Outcomes can be different
  • Order of events (e.g. multiple collisions) is
    relevant
  • Collision response is easier when you can
    reconstruct the exact moment of impact

98
Relative Everything (contd)
  • The Minkowski Difference (A-B) / CSO can also be
    thought of as the set of all translations from
    the origin that would cause a collision.
  • A.K.A. the set of inadmissible translations.

99
Determining Collision Time
100
Determining Collision Time
  • Method 1 Frame Subdivision

101
Subdividing Movement Frame
  • If a swept-shape (or movement bounds) test says
    yes

102
Subdividing Movement Frame
  • If a swept-shape (or movement bounds) test says
    yes
  • Cut the frame in half perform two separate tests
    (first half first, second half second).
  • First positive test is when the collision
    occurred.

103
Subdividing Movement Frame (contd)
  • Can recurse (1/2, 1/4, 1/8...) to the desired
    level of granularity

104
Subdividing Movement Frame (contd)
  • Can recurse (1/2, 1/4, 1/8...) to the desired
    level of granularity
  • If both tests negative, no collision (was a false
    positive).
  • Still inexact (minimizing, not eliminating, false
    positives)
  • Gets expensive

105
Determining Collision Time
  • Method 1 Frame Subdivision
  • Method 2 4D Continuous Collision Detection
  • (N1 dimensions 3D for 2D physics, etc.)

106
Spacetime
107
Spacetime
  • Spacetime is a Physics construct which combines
    N-dimensional space with an extra dimension for
    time, yielding a unified model with N1
    dimensions.
  • Space (1D) time (1D) spacetime (2D)
  • Space (2D) time (1D) spacetime (3D)
  • Space (3D) time (1D) spacetime (4D)

108
Spacetime Diagrams
  • 1D space time 2D
  • Just an X vs. T graph!

109
Spacetime Diagrams
  • 1D space time 2D
  • Just an X vs. T graph!
  • 2D space time 3D
  • No problem.

110
Spacetime Diagrams
  • 1D space time 2D
  • Just an X vs. T graph!
  • 2D space time 3D
  • No problem.
  • Another example (2d space time 3D)

111
Spacetime Diagrams
  • 1D space time 2D
  • Just an X vs. T graph!
  • 2D space time 3D
  • No problem.
  • Another example (2d space time 3D)
  • 3D space time 4D
  • Brainbuster!
  • ?

112
Spacetime Diagrams (contd)
  • Note that an N-dimensional system in motion is
    the same as a still snapshot in N1 dimensions
  • 1D animation 2D spacetime still image
  • 2D animation 3D spacetime still image
  • 3D animation 4D spacetime still image

113
Spacetime Diagrams (contd)
2D spacetime still image
1D animation
114
Spacetime Diagrams (contd)
3D spacetime still image
2D animation
115
Spacetime Diagrams (contd)
  • How do you envision a 4D object?
  • Use 2D animation -gt 3D spacetime diagram as a
    mental analogy.
  • Fun reading Flatland by Edwin Abbott
  • Think about a 4D object that youre already
    familiar with.
  • (The universe in motion!)

116
Spacetime Diagrams (contd)
  • Invented by Hermann Minkowski
  • Also called Minkowski Diagrams

117
(Rules)
118
Time-Swept Shapes
119
Time-Swept Shapes
  • Sweep out shapes, but do it over time in a
    spacetime diagram
  • Define time over frame as being in the interval
    0,1
  • As before, we can play around with lots of
    relativistic variations

120
Time-Swept Shapes (contd)
  • A vs. B in world frame

121
Time-Swept Shapes (contd)
  • A vs. B in world frame
  • A is moving, B is still

122
Time-Swept Shapes (contd)
  • A vs. B in world frame
  • A is moving, B is still
  • A is CSO, B is point

123
Time-Swept Shapes (contd)
  • A vs. B in world frame
  • A is moving, B is still
  • A is CSO, B is point
  • A is still CSO, B is moving (swept) point

124
Time-Swept Shapes (contd)
  • To solve for collision time, we intersect the
    point-swept ray against the CSO
  • The t coordinate at the intersection point is
    the time 0,1 of collision
  • Collision check is done in N1 dimensions
  • Which means, in a 3D game, we collide a 4D ray
    vs. a 4D body! (What?)

125
Time-Swept Shapes (contd)
  • Wait, it gets easier...
  • When we view this diagram (CSO vs moving point)
    down the time axis, i.e. from overhead
  • Since CSO is not moving, it looks 2D from
    overhead...

126
Time-Swept Shapes (contd)
  • We can reduce this back down to N dimensions
    (from N1) since we are looking down the time
    axis!
  • So it becomes an N-dimesional ray vs.
    N-dimensional body again.
  • Which means, in a 3D game, we collide a 3D ray
    vs. a 3D body.

127
(No Transcript)
128
Time-Swept Shapes (contd)
  • Question 4 When, during the frame, did A and B
    collide?
  • Finally, the right question - and we have a
    complete answer!
  • With fixed cost, and with exact results (no false
    anything).

129
Time-Swept Shapes (contd)
  • BTW, this is essentially the same as solving for
    the fraction of the singularity-translation ray
    from our original Minkowski Difference
    inadmissible translations picture!

130
Quality vs. Quantity
  • or
  • You Get What You Pay For

131
Quality vs. Quantity
  • The more you ask, the more you pay.
  • Question 1 Do A and B overlap?
  • Question 2 Could A and B have collided during
    the frame?
  • Question 3 Did A and B collide during the
    frame?
  • Question 4 When, during the frame, did A and B
    collide?

132
Rotations
(Suck)
133
Rotations
  • Continuous rotational collision detection sucks
  • Rotational tunneling alone is problematic

134
Rotations
  • Continuous rotational collision detection sucks
  • Rotational tunneling alone is problematic
  • Methods weve discussed here often dont work on
    rotations, or their rotational analogue is quite
    complex

135
Rotations (contd)
  • However
  • Rotational tunneling is usually not as jarring as
    translational tunneling
  • Rotational speed limits are actually feasible
  • Can do linear approximations of swept rotations
  • Can use bounding shapes to contain pre- and
    post-rotated positions
  • This is something that many engines never solve
    robustly

136
Summary
137
Summary
  • The nature of simulation causes us real
    problems... problems which cant be ignored.
  • Have to worry about false negatives (tunneling!)
    as well as false positives.
  • Knowing when a collision event took place can be
    very important (especially when resolving it).
  • Sometimes a problem (and math) looks easier when
    we look at it from a different viewpoint.
  • Can combine bodies in cheaty ways to simplify
    things even further.

138
Summary (contd)
  • Einstein and Minkowski are cool.
  • Rotations suck.
  • Doing real-time collision detection in 4D
    spacetime doesnt have to be hard.
  • Or expensive.
  • Or confusing.

139
Questions?
  • Feel free to reach me by email at
  • squirrel_at_eiserloh.net
  • or
  • squirrel_at_ritual.com
Write a Comment
User Comments (0)
About PowerShow.com