# Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3-D Technology)

## Christer Ericson

Language: English

Pages: 632

ISBN: 1558607323

Format: PDF / Kindle (mobi) / ePub

Written by an expert in the game industry, Christer Ericson's new book is a comprehensive guide to the components of efficient real-time collision detection systems. The book provides the tools and know-how needed to implement industrial-strength collision detection for the highly detailed dynamic environments of applications such as 3D games, virtual reality applications, and physical simulators.

Of the many topics covered, a key focus is on spatial and object partitioning through a wide variety of grids, trees, and sorting methods. The author also presents a large collection of intersection and distance tests for both simple and complex geometric shapes. Sections on vector and matrix algebra provide the background for advanced topics such as Voronoi regions, Minkowski sums, and linear and quadratic programming.

Of utmost importance to programmers but rarely discussed in this much detail in other books are the chapters covering numerical and geometric robustness, both essential topics for collision detection systems. Also unique are the chapters discussing how graphics hardware can assist in collision detection computations and on advanced optimization for modern computer architectures. All in all, this comprehensive book will become the industry standard for years to come.

Privacy Enhancing Technologies (Lecture Notes in Computer Science Series)

The Complexity Theory Companion

Quadratic behavior of testing all objects against all other objects). The bounding volume hierarchies discussed in Chapter 6 represent one way of performing such partitioning. Chapter 7 examines other partitioning approaches, based on grids, trees, and object sorting. 4 Chapter 1 Introduction 1.1.7 Chapter 8: BSP Tree Hierarchies One of the most versatile tree structures for representing collision detection data is the binary space partitioning (BSP) tree. BSP trees can be used to partition.

Halfwidth extents or radii rx, ry, and rz along its axes: // region R = { (x, y, z) | |c.x-x|<=rx, |c.y-y|<=ry, |c.z-z|<=rz } struct AABB { Point c; // center point of AABB float r[3]; // radius or halfwidth extents (rx, ry, rz) }; 4.2 Axis-aligned Bounding Boxes (AABBs) 79 In terms of storage requirements, the center-radius representation is the most efﬁcient, as the halfwidth values can often be stored in fewer bits than the center position values. The same is true of the width values of.

Aliasing 536 13.6.1 Type-based Alias Analysis 538 13.6.2 Restricted Pointers 540 13.6.3 Avoiding Aliasing 542 Parallelism Through SIMD Optimizations 543 13.7.1 Four Spheres Versus Four Spheres SIMD Test 545 13.7.2 Four Spheres Versus Four AABBs SIMD Test 546 13.7.3 Four AABBs Versus Four AABBs SIMD Test 546 Branching 547 Summary 551 References 553 Index 577 About the CD ROM 591 This page intentionally left blank List of Figures 2.1 Geometrical models, like the one pictured, are.

Position vectors p and q specify the positions of points P and Q, respectively. 36 3.2 (a) The result of adding two vectors u and v is obtained geometrically by placing the vectors tail to head and forming the vector from the tail of the ﬁrst vector to the head of the second. (b) Alternatively, by the parallelogram law, the vector sum can be seen as the diagonal of the parallelogram formed by the two vectors. 37 3.3 (a) The vector v. (b) The negation of vector v. (c) The vector v scaled by a.

Computed and compared against the sum of the sphere radii. To avoid an often expensive square root operation, the squared distances are compared. The test looks like this: int TestSphereSphere(Sphere a, Sphere b) { // Calculate squared distance between centers Vector d = a.c - b.c; float dist2 = Dot(d, d); // Spheres intersect if squared distance is less than squared sum of radii float radiusSum = a.r + b.r; return dist2 <= radiusSum * radiusSum; } 4.3 Spheres 89 Although the sphere test has.