Title: Continuous Collision Detection of General Convex Objects Under Translation
1Physics for Games Programmers Reframing the
Problem
Squirrel EiserlohTechnical DirectorMumboJumbo
Gamessquirrel_at_eiserloh.netwww.algds.org
2Physics for Games Programmers Reframing the
Problema.k.a. Its All Relative
Squirrel EiserlohTechnical DirectorMumboJumbo
Gamessquirrel_at_eiserloh.netwww.algds.org
3Overview
- Tunneling
- Movement Bounds
- Swept Shapes
- Einstein Says...
- Minkowski Says...
- Rotation
4Tunneling
(Sucks)
5Tunneling
- Question 1 Do objects A and B overlap?
- Plenty of reference material to help solve this,
but... - ...this is often the wrong question to ask (begs
tunneling).
6Tunneling
7Tunneling
8Tunneling
9Tunneling
10Tunneling (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
- Tunneling is a false negative
- Okay, so tunneling really sucks. What can we do
about it?
11Movement Bounds
12Movement Bounds
13Movement Bounds
- Disc / Sphere
- AABB (Axis-Aligned Bounding Box)
14Movement Bounds
- Disc / Sphere
- AABB (Axis-Aligned Bounding Box)
- OBB (Oriented Bounding Box)
15Movement Bounds
- Question 2 Could A and B have collided during
the frame? - Better than Question 1 (solves tunneling!),
but...
16Movement 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 positive).
17Movement 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.
18Swept Shapes
19Swept Shapes
- Swept disc / sphere (n-sphere) capsule
20Swept Shapes
- Swept disc / sphere (n-sphere) capsule
- Swept AABB convex polytope (polygon in 2d,
polyhedron in 3d)
21Swept Shapes
- Swept disc / sphere (n-sphere) capsule
- Swept AABB convex polytope (polygon in 2d,
polyhedron in 3d) - Swept triangle / tetrahedron (simplex) convex
polytope
22Swept 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
23Swept Shapes (contd)
- Like movement bounds, only with a perfect fit!
24Swept Shapes (contd)
- Like movement bounds, only with a perfect fit!
- Still no false negatives (tunneling).
25Swept Shapes (contd)
- Like movement bounds, only with a perfect fit!
- Still no false negatives (tunneling).
- Finally, no false positives, either!
26Swept 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.
27Swept 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.
28Swept 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.
29Swept 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.
30(No Transcript)
31Einstein Says...
- Coordinate systems are relative
32Relative Coordinate Systems
33Relative Coordinate Systems
34Relative Coordinate Systems
- World coordinates
- As local coordinates
35Relative Coordinate Systems
- World coordinates
- As local coordinates
- Bs local coordinates
36Relative Coordinate Systems
- World coordinates
- As local coordinates
- Bs local coordinates
- Many others (e.g. origin at point of impact)
37Relative Coordinate Systems (contd)
38Relative Coordinate Systems (contd)
- Ball vs. world...
- in world coordinates
39Relative Coordinate Systems (contd)
- Ball vs. world...
- in world coordinates
- x component
- y component
40Relative Coordinate Systems (contd)
- Ball vs. world...
- in world coordinates
- x component
- y component
- in impact coordinates
41Relative Coordinate Systems (contd)
- Ball vs. world...
- in world coordinates
- x component
- y component
- in impact coordinates
- parallel component
- perpendicular component
42Relative Coordinate Systems (contd)
- Ball vs. world...
- in world coordinates
- x component
- y component
- in impact coordinates
- parallel component
- perpendicular component
- Change in motion happens along the perpendicular
axis
43Relative Coordinate Systems (contd)
44Relative Coordinate Systems (contd)
- Ball vs. ball...
- in world coordinates
45Relative Coordinate Systems (contd)
- Ball vs. ball...
- in world coordinates
- x component
- y component
46Relative Coordinate Systems (contd)
- Ball vs. ball...
- in world coordinates
- x component
- y component
- in impact coordinates
47Relative Coordinate Systems (contd)
- Ball vs. ball...
- in world coordinates
- x component
- y component
- in impact coordinates
- parallel component
- perpendicular component
- Energy is exchanged along the perpendicular axis
48Relative Coordinate Systems (contd)
Also, math is often nicer at the origin.
x2 y2 r2
x2 - 2xh h2 y2 - 2yk k2 r2
49Einstein Says...
- Coordinate systems are relative
- Motion is relative
50Relative Motion
51Relative Motion
- "Frames of Reference"
- World frame
52Relative Motion
- "Frames of Reference"
- World frame
- A's frame
53Relative Motion
- "Frames of Reference"
- World frame
- A's frame
- B's frame
54Relative Motion
- "Frames of Reference"
- World frame
- A's frame
- B's frame
- Inertial frame
55Relative Motion (contd)
- 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)
56(Does Not Suck)
57Relative Collision Bodies
58Relative Collision Bodies
- Collision check equivalencies (disc)
59Relative Collision Bodies
- Collision check equivalencies (disc)
- ...AABB
60Relative Collision Bodies
- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
61Relative Collision Bodies
- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- Tracing or Rubbing collision bodies together
62Relative 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
63Relative 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
64Relative 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
65Relative 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
66Relative 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
67Relative 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
68Relative 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
69Relative 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
70Relative Collision Bodies (contd)
71Relative Collision Bodies (contd)
72Relative Collision Bodies (contd)
- Disc disc
- AABB AABB
- Triangle AABB
73Relative Collision Bodies (contd)
- Disc disc
- AABB AABB
- Triangle AABB
- AABB triangle
74Relative Collision Bodies (contd)
- Disc disc
- AABB AABB
- Triangle AABB
- AABB triangle
- Polytope polytope
75Relative Collision Bodies (contd)
- Disc disc
- AABB AABB
- Triangle AABB
- AABB triangle
- Polytope polytope
- Polytope disc
76Relative Collision Bodies (contd)
- Things start to get messy when combining bodies
explicitly / manually. - (Especially in 3d.)
- General solution?
77Minkowski Arithmetic
78Minkowski Sums
- The Minkowski Sum (AB) of A and B is the result
of adding every point in A to every point in B.
79Minkowski 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)
80Minkowski 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.
81Minkowski Differences (contd)
- Minkowski Differences are not commutative
- A-B ! B-A
- Minkowski Difference of convex objects is convex
(since A-B A -B)
82Minkowski 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
83Minkowski Differences (contd)
- If the singularity is outside the combined body,
A and B do not overlap.
84Minkowski 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.
85Minkowski Differences (contd)
- In world space, A-B is near the origin
86Minkowski Differences (contd)
-
- Aorigin vs. Borigin
- -Borigin -Borigin
- ___ ___
- (A-B)origin vs. 0
87Minkowski 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.
88Minkowski 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)
89Minkowski 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)
90Minkowski Differences (contd)
Translations in A or B simply translate the CSO
91Minkowski Differences (contd)
Rotations in A or B mutate the CSO
92(Does Not Suck)
93Relative Everything
94Relative Everything
- Lets combine
- Relative Coordinate Systems
- Relative Motion
- Relative Collision Bodies
95Relative Everything (contd)
96Relative Everything (contd)
- A vs. B in world frame
- A is CSO, B is point
97Relative Everything (contd)
- A vs. B in world frame
- A is CSO, B is point
- A is moving CSO, B is still point
98Relative Everything (contd)
- A vs. B in world frame
- A is CSO, B is point
- A is moving CSO, B is still point
- A is still CSO, B is moving point
- This is the one we want!
99Relative 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...
100Relative 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
101Relative Everything (contd)
- Question 4 When, during the frame, did A and B
collide? - The time at which the ray intersects the CSO is
the time at which the collision occurred. - Finally, the right question - and we have a
complete answer!
102Relative 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.
103Quality vs. Quantity
- or
- You Get What You Pay For
104Quality 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?
105Rotations
(Suck)
106Rotations
- Continuous rotational collision detection sucks
- Rotational tunneling alone is problematic
107Rotations
- 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
108Rotations (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
109Summary
110Summary
- 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.
111Summary (contd)
- Einstein and Minkowski are cool.
- Rotations suck.
- Doing real-time collision detection doesnt have
to be hard. - Or expensive.
- Or confusing.
112Questions?
- Feel free to reach me by email at
- squirrel_at_eiserloh.net