Title: Collision Detection and Distance Computation
1Collision Detectionand Distance Computation
2Probabilistic Roadmaps
Few moving objects,but complex geometry
3Haptic Interaction
4Graphic Animation
Many moving objects
5Crowd Simulation
Many moving objects, but simple geometry
(discs) Need to also compute distances
(vision, sounds)
6Collision Detection Methods
- Many different methods
- We will focus on two of them
- Grid method good for many simple moving objects
of about the same size (e.g., many moving discs
with similar radii) - Bounding Volume Hierarchy (BVH) method good for
few moving objects with complex geometry
7Grid Method
- Subdivide space into a regular grid cubic of
square bins - Index each object in a bin
8Grid Method
Running time is proportional tonumber of moving
objects
9Bounding Volume Hierarchy Method
- Enclose objects into bounding volumes (spheres
or boxes) - Check the bounding volumes first
10Bounding Volume Hierarchy Method
- Enclose objects into bounding volumes (spheres
or boxes) - Check the bounding volumes first
- Decompose an object into two
11Bounding Volume Hierarchy Method
- Enclose objects into bounding volumes (spheres
or boxes) - Check the bounding volumes first
- Decompose an object into two
- Proceed hierarchically
12Bounding Volume Hierarchy Method
- Enclose objects into bounding volumes (spheres
or boxes) - Check the bounding volumes first
- Decompose an object into two
- Proceed hierarchically
13Bounding Volume Hierarchy Method
- BVH is pre-computed for each object
14BVH in 3D
15Collision Detection
Two objects described by their precomputed BVHs
16Collision Detection
Search tree
AA
A
A
17Collision Detection
Search tree
AA
A
A
18Collision Detection
Search tree
AA
CC
CB
BC
BB
19Collision Detection
Search tree
AA
CC
CB
BC
BB
If the pieces contained in G and D overlap ?
collision
20Performance
- Several thousand collision checks per second for
2 three-dimensional objects each described by
500,000 triangles, on a 1-GHz PC
21Desirable Properties of BVs and BVHs
- BVs
- Tightness
- Efficient testing
- Invariance
- BVH
- Separation
- Balanced tree
?
22Desirable Properties of BVs and BVHs
- BVs
- Tightness
- Efficient testing
- Invariance
- BVH
- Separation
- Balanced tree
23Spheres
- Invariant
- Efficient to test
- But tight?
24Axis-Aligned Bounding Box (AABB)
25Axis-Aligned Bounding Box (AABB)
- Not invariant
- Efficient to test
- Not tight
26Oriented Bounding Box (OBB)
27Oriented Bounding Box (OBB)
- Invariant
- Less efficient to test
- Tight
28Comparison of BVs
No type of BV is optimal for all situations
29Desirable Properties of BVs and BVHs
- BVs
- Tightness
- Efficient testing
- Invariance
- BVH
- Separation
- Balanced tree
?
30Desirable Properties of BVs and BVHs
- BVs
- Tightness
- Efficient testing
- Invariance
- BVH
- Separation
- Balanced tree
31Construction of a BVH
- Top-down construction
- At each step, create the two children of a BV
- Example For OBB, split longest side at midpoint
32Path Checking
33What about deformable objects?