Front Cover
Real-Time Collision Detection
Copyright Page
Contents
List of Figures
Preface
Chapter 1. Introduction
1.1 Content Overview
1.2 About the Code
Chapter 2. Collision Detection Design Issues
2.1 Collision Algorithm Design Factors
2.2 Application Domain Representation
2.3 Types of Queries
2.4 Environment Simulation Parameters
2.5 Performance
2.6 Robustness
2.7 Ease of Implementation and Use
2.8 Summary
Chapter 3. A Math and Geometry Primer
3.1 Matrices
3.2 Coordinate Systems and Points
3.3 Vectors
3.4 Barycentric Coordinates
3.5 Lines, Rays, and Segments
3.6 Planes and Halfspaces
3.7 Polygons
3.8 Polyhedra
3.9 Computing Convex Hulls
3.10 Voronoi Regions
3.11 Minkowski Sum and Difference
3.12 Summary
Chapter 4. Bounding Volumes
4.1 Desirable BV Characteristics
4.2 Axis-aligned Bounding Boxes (AABBs)
4.3 Spheres
4.4 Oriented Bounding Boxes (OBBs)
4.5 Sphere-sweptVolumes
4.6 Halfspace IntersectionVolumes
4.7 Other BoundingVolumes
4.8 Summary
Chapter 5. Basic Primitive Tests
5.1 Closest-point Computations
5.2 Testing Primitives
5.3 Intersecting Lines, Rays, and (Directed) Segments
5.4 Additional Tests
5.5 Dynamic Intersection Tests
5.6 Summary
Chapter 6. Bounding Volume Hierarchies
6.1 Hierarchy Design Issues
6.2 Building Strategies for Hierarchy Construction
6.3 Hierarchy Traversal
6.4 Sample BoundingVolume Hierarchies
6.5 Merging BoundingVolumes
6.6 Efficient Tree Representation and Traversal
6.7 Improved Queries Through Caching
6.8 Summary
Chapter 7. Spatial Partitioning
7.1 Uniform Grids
7.2 Hierarchical Grids
7.3 Trees
7.4 Ray and Directed Line Segment Traversals
7.5 Sort and Sweep Methods
7.6 Cells and Portals
7.7 Avoiding Retesting
7.8 Summary
Chapter 8. BSP Tree Hierarchies
8.1 BSP Trees
8.2 Types of BSP Trees
8.3 Building the BSP Tree
8.4 Using the BSP Tree
8.5 Summary
Chapter 9. Convexity-based Methods
9.1 Boundary-based Collision Detection
9.2 Closest-features Algorithms
9.3 Hierarchical Polyhedron Representations
9.4 Linear and Quadratic Programming
9.5 The Gilbert–Johnson–Keerthi Algorithm
9.6 The Chung–Wang Separating-vector Algorithm
9.7 Summary
Chapter 10. GPU-assisted Collision Detection
10.1 Interfacing with the GPU
10.2 Testing Convex Objects
10.3 Testing Concave Objects
10.4 GPU-based Collision Filtering
10.5 Summary
Chapter 11. Numerical Robustness
11.1 Robustness Problem Types
11.2 Representing Real Numbers
11.3 Robust Floating-point Usage
11.4 Interval Arithmetic
11.5 Exact and Semi-exact Computation
11.6 Further Suggestions for Improving Robustness
11.7 Summary
Chapter 12. Geometrical Robustness
12.1 Vertex Welding
12.2 Computing Adjacency Information
12.3 Holes, Cracks, Gaps and T-Junctions
12.4 Merging Co-planar Faces
12.5 Triangulation and Convex Partitioning
12.6 Consistency Testing Using Euler’s Formula
12.7 Summary
Chapter 13. Optimization
13.1 CPU Caches
13.2 Instruction Cache Optimizations
13.3 Data Cache Optimizations
13.4 Cache-aware Data Structures and Algorithms
13.5 Software Caching
13.6 Aliasing
13.7 Parallelism Through SIMD Optimizations
13.8 Branching
13.9 Summary
References
Index
About the CD ROM
RELATED TITLES FROM THE MORGAN KAUFMANN SERIES IN INTERACTIVE 3D TECHNOLOGY