- 273 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Overview' - Kelvin_Ajay

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

### Tunneling

Relative Collision Bodies

Relative Collision Bodies

Relative Collision Bodies

Relative Collision Bodies

Relative Collision Bodies

### Rotations

Physics for Games Programmers Reframing the Problem

Squirrel EiserlohTechnical DirectorMumboJumbo [email protected]

Physics for Games Programmers Reframing the Problema.k.a. “It’s All Relative”

Squirrel EiserlohTechnical DirectorMumboJumbo [email protected]

Overview

- Tunneling
- Movement Bounds
- Swept Shapes
- Einstein Says...
- Minkowski Says...
- Rotation

(Sucks)

Tunneling

- 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).

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

- Tunneling is a false negative
- Okay, so tunneling really sucks. What can we do about it?

Movement Bounds

- Disc / Sphere

Movement Bounds

- Disc / Sphere
- AABB (Axis-Aligned Bounding Box)

Movement Bounds

- Disc / Sphere
- AABB (Axis-Aligned Bounding Box)
- OBB (Oriented Bounding Box)

Movement Bounds

- Question #2: Could A and B have collided during the frame?
- Better than Question #1 (solves tunneling!), but...

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 don’t know for sure (false positive).

Movement Bounds

- Conclusion
- Good: They prevent tunneling! (i.e. no false negatives)
- Bad: They don’t actually tell us whether A and B collided (still have false positives).
- Good: They can be used as a cheap, effective early rejection test.

Swept Shapes

- Swept disc / sphere (n-sphere): capsule

Swept Shapes

- Swept disc / sphere (n-sphere): capsule
- Swept AABB: convexpolytope (polygon in 2d, polyhedron in 3d)

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 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: convexpolytope

Swept Shapes (cont’d)

- Like movement bounds, only with a perfect fit!

Swept Shapes (cont’d)

- Like movement bounds, only with a perfect fit!
- Still no false negatives (tunneling).

Swept Shapes (cont’d)

- Like movement bounds, only with a perfect fit!
- Still no false negatives (tunneling).
- Finally, no false positives, either!

Swept Shapes (cont’d)

- 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.

Swept Shapes (cont’d)

- 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.

Swept Shapes (cont’d)

- 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.

Swept Shapes (cont’d)

- Conclusion
- Suck?
- Can be used as early rejection test, but...
- ...movement bounds are better for that.
- If you’re not too picky...
- ...they DO solve a large number of nasty problems (especially tunneling)
- ...and can serve as a poor man’s continuous collision detection for a basic engine.

Einstein Says...

- Coordinate systems are relative

Relative Coordinate Systems

- World coordinates

Relative Coordinate Systems

- World coordinates
- A’s local coordinates

Relative Coordinate Systems

- World coordinates
- A’s local coordinates
- B’s local coordinates

Relative Coordinate Systems

- World coordinates
- A’s local coordinates
- B’s local coordinates
- Many others (e.g. origin at point of impact)

Relative Coordinate Systems (cont’d)

- Ball vs. world...

Relative Coordinate Systems (cont’d)

- Ball vs. world...
- in world coordinates

Relative Coordinate Systems (cont’d)

- Ball vs. world...
- in world coordinates
- x component
- y component

Relative Coordinate Systems (cont’d)

- Ball vs. world...
- in world coordinates
- x component
- y component

- in impact coordinates

Relative Coordinate Systems (cont’d)

- Ball vs. world...
- in world coordinates
- x component
- y component

- in impact coordinates
- parallel component
- perpendicular component

Relative Coordinate Systems (cont’d)

- 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

Relative Coordinate Systems (cont’d)

- Ball vs. ball...

Relative Coordinate Systems (cont’d)

- Ball vs. ball...
- in world coordinates

Relative Coordinate Systems (cont’d)

- Ball vs. ball...
- in world coordinates
- x component
- y component

Relative Coordinate Systems (cont’d)

- Ball vs. ball...
- in world coordinates
- x component
- y component

- in impact coordinates

Relative Coordinate Systems (cont’d)

- Ball vs. ball...
- in world coordinates
- x component
- y component

- in impact coordinates
- parallel component
- perpendicular component

- Energy is exchanged along the perpendicular axis

Relative Coordinate Systems (cont’d)

Also, math is often nicer at the origin.

x2 - 2xh + h2 + y2 - 2yk + k2 = r2

x2 + y2 = r2

Einstein Says...

- Coordinate systems are relative
- Motion is relative

Relative Motion

- "Frames of Reference"
- World frame

Relative Motion

- "Frames of Reference"
- World frame
- A's frame

Relative Motion

- "Frames of Reference"
- World frame
- A's frame
- B's frame

Relative Motion

- "Frames of Reference"
- World frame
- A's frame
- B's frame
- Inertial frame

Relative Motion (cont’d)

- 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)

Relative Collision Bodies

- Collision check equivalencies (disc)

Relative Collision Bodies

- Collision check equivalencies (disc)
- ...AABB

Relative Collision Bodies

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity

Relative Collision Bodies

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together

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 body’s origin

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 body’s origin

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 body’s origin

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together
- Spirograph-out the reduced body’s origin

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together
- Spirograph-out the reduced body’s origin

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together
- Spirograph-out the reduced body’s origin

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together
- Spirograph-out the reduced body’s origin

- Collision check equivalencies (disc)
- ...AABB
- Can even reduce one body to a singularity
- “Tracing” or “Rubbing” collision bodies together
- Spirograph-out the reduced body’s origin

Relative Collision Bodies (cont’d)

- Disc + disc

Relative Collision Bodies (cont’d)

- Disc + disc
- AABB + AABB

Relative Collision Bodies (cont’d)

- Disc + disc
- AABB + AABB
- Triangle + AABB

Relative Collision Bodies (cont’d)

- Disc + disc
- AABB + AABB
- Triangle + AABB
- AABB + triangle

Relative Collision Bodies (cont’d)

- Disc + disc
- AABB + AABB
- Triangle + AABB
- AABB + triangle
- Polytope + polytope

Relative Collision Bodies (cont’d)

- Disc + disc
- AABB + AABB
- Triangle + AABB
- AABB + triangle
- Polytope + polytope
- Polytope + disc

Relative Collision Bodies (cont’d)

- Things start to get messy when combining bodies explicitly / manually.
- (Especially in 3d.)
- General solution?

Minkowski Sums

- The Minkowski Sum (A+B) of A and B is the result of adding every point in A to every point in B.

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)

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 A+B.

Minkowski Differences (cont’d)

- Minkowski Differences are not commutative:
A-B != B-A

- Minkowski Difference of convex objects is convex (since A-B = A+ -B)

Minkowski Differences (cont’d)

- 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”

Minkowski Differences (cont’d)

- If the singularity is outside the combined body, A and B do not overlap.

Minkowski Differences (cont’d)

- 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.

Minkowski Differences (cont’d)

- In world space, A-B is “near” the origin

Minkowski Differences (cont’d)

- 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.

Minkowski Differences (cont’d)

- 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)

Minkowski Differences (cont’d)

- 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)

Minkowski Differences (cont’d)

Translations in A or B simply translate the CSO

Minkowski Differences (cont’d)

Rotations in A or B mutate the CSO

Relative Everything

- Let’s combine:
- Relative Coordinate Systems
- Relative Motion
- Relative Collision Bodies

Relative Everything (cont’d)

- A vs. B in world frame

Relative Everything (cont’d)

- A vs. B in world frame
- A is CSO, B is point

Relative Everything (cont’d)

- A vs. B in world frame
- A is CSO, B is point
- A is moving CSO, B is still point

Relative Everything (cont’d)

- 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!

Relative Everything (cont’d)

- 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 don’t know WHEN they collided...

Relative Everything (cont’d)

- 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

Relative Everything (cont’d)

- 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!

Relative Everything (cont’d)

- 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”.

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?

(Suck)

Rotations

- Continuous rotational collision detection sucks
- Rotational tunneling alone is problematic

Rotations

- Continuous rotational collision detection sucks
- Rotational tunneling alone is problematic
- Methods we’ve discussed here often don’t work on rotations, or their rotational analogue is quite complex

Rotations (cont’d)

- 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

Summary

- 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.

Summary (cont’d)

- Einstein and Minkowski are cool.
- Rotations suck.
- Doing real-time collision detection doesn’t have to be hard.
- Or expensive.
- Or confusing.

Questions?

- Feel free to reach me by email at:

Download Presentation

Connecting to Server..