1 / 112

# Overview - PowerPoint PPT Presentation

Squirrel Eiserloh. Technical Director. MumboJumbo Games. squirrel ... Or confusing. 112. Questions? Feel free to reach me by email at: [email protected] ...

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Overview' - Kelvin_Ajay

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

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]

• Tunneling

• Movement Bounds

• Swept Shapes

• Einstein Says...

• Minkowski Says...

• Rotation

### Tunneling

(Sucks)

• 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

• Disc / Sphere

• AABB (Axis-Aligned Bounding Box)

• Disc / Sphere

• AABB (Axis-Aligned Bounding Box)

• OBB (Oriented Bounding Box)

• Question #2: Could A and B have collided during the frame?

• Better than Question #1 (solves tunneling!), but...

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

• 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 disc / sphere (n-sphere): capsule

• Swept AABB: convexpolytope (polygon in 2d, polyhedron in 3d)

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

• Swept AABB: convex polytope (polygon in 2d, polyhedron in 3d)

• Swept triangle / tetrahedron (simplex): convex polytope

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

• Coordinate systems are relative

### Relative Coordinate Systems

• World coordinates

• World coordinates

• A’s local coordinates

• World coordinates

• A’s local coordinates

• B’s local coordinates

• 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

• Coordinate systems are relative

• Motion is relative

### Relative Motion

• "Frames of Reference"

• World frame

• "Frames of Reference"

• World frame

• A's frame

• "Frames of Reference"

• World frame

• A's frame

• B's frame

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

• Collision check equivalencies (disc)

• ...AABB

• Collision check equivalencies (disc)

• ...AABB

• Can even reduce one body to a singularity

• Collision check equivalencies (disc)

• ...AABB

• Can even reduce one body to a singularity

• “Tracing” or “Rubbing” collision bodies together

• 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

• 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 Arithmetic

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

Aorigin vs. Borigin

-Borigin -Borigin

___ ___

(A-B)origin vs. 0

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

or

“You Get What You Pay For”

• 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?

### Rotations

(Suck)

• Continuous rotational collision detection sucks

• Rotational tunneling alone is problematic

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

• Feel free to reach me by email at: