Buy new:
-70% $34.92$34.92
$5.98 delivery January 30 - February 10
Ships from: Sub Books Sold by: Sub Books
Save with Used - Good
$24.99$24.99
$3.99 delivery December 30 - January 2
Ships from: GoodwillSR Sold by: GoodwillSR
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
Collision Detection in Interactive 3D Environments (Morgan Kaufmann Series in Interactive 3D Technology) Har/Cdr Edition
Purchase options and add-ons
The heart of any system that simulates the physical interaction between objects is collision detection-the ability to detect when two objects have come into contact. This system is also one of the most difficult aspects of a physical simulation to implement correctly, and invariably it is the main consumer of CPU cycles. Practitioners, new to the field or otherwise, quickly discover that the attempt to build a fast, accurate, and robust collision detection system takes them down a long path fraught with perils and pitfalls unlike most they have ever encountered. Without in-depth knowledge and understanding of the issues associated with engineering a collision detection system, the end of that path is an abyss that has swallowed many a good programmer!
Gino van den Bergen's new book is the story of his successful journey down that path. The outcome is his well-known collision detection system, the SOftware Library for Interference Detection (SOLID). Along the way, he covers the topics of vector algebra and geometry, the various geometric primitives of interest in a collision system, the powerful method of separating axes for the purposes of intersection testing, and the equally powerful Gilbert-Johnson-Keerthi (GJK) algorithm for computing the distance between convex objects. But this book provides much more than a good compendium of the ideas that go into building a collision system. The curse of practical computational geometry is floating-point arithmetic. Algorithms with straightforward implementations when using exact arithmetic can have catastrophic failures in a floating-point system. Specifically, intersection and distance algorithms implemented in a floating-point system tend to fail exactly in the most important case in a collision system-when two objects are just touching. Great care must be taken to properly handle floating-point round off errors. Gino's ultimate accomplishment in this book is his presentation on how to correctly implement the GJK distance algorithm in the presence of single-precision floating-point arithmetic. And what better way to illustrate this than with a case study, the final chapter on the design and implementation of SOLID.
About the CD-ROM
The companion CD-ROM includes the full C++ source code of SOLID 3.5 as well as API documentation in HTML and PDF formats. Both single (32bit) and double (64bit) precision versions of the SOLID SDK plus example programs can be compiled for Linux platforms using GNU g++ version 2.95 to 3.3 and for Win32 platforms using Microsoft Visual C++ version 6.0 to 7.1. Use of the SOLID source code is governed by the terms of either the GNU GPL or the Trolltech QPL (see CD-ROM documentation for details).
About the Author
Gino van den Bergen is a game developer living and working in The Netherlands. He is the creator of SOLID and holds a Ph.D. in computing science from Eindhoven University of Technology. Gino implemented collision detection and physics in NaN Technologies' Blender, a creation suite for interactive 3D content.
- ISBN-10155860801X
- ISBN-13978-1558608016
- EditionHar/Cdr
- PublisherCRC Press
- Publication dateOctober 27, 2003
- LanguageEnglish
- Dimensions0.7 x 7.52 x 9.25 inches
- Print length308 pages
Frequently bought together

Customers who bought this item also bought
Editorial Reviews
Review
"Having read this book from cover to cover, I can summarize my opinion in two words from a mathematician's lexicon: elegant and beautiful. There is very little to criticize in this exquisite work."
-Ian Ashdown, byHeart Consultants, Inc.
"Building a real-time collision detection system is by no means a trivial task. A firm understanding is required of the geometry and mathematics for intersection testing, especially when the objects are in motion. The skilled use of convexity is essential for distance calculations. The system must be designed carefully to support high-performance physical simulations. In particular, spatial partitioning and tight-fitting bounding volumes must play a role in minimizing the computational requirements of the system. The system is sufficiently large that the principles of software engineering apply to its development. Moreover, collision detection is notoriously difficult to implement robustly when using floating-point arithmetic. The challenges of architecting and implementing a collision detection system are formidable!
Collision Detection in Interactive 3D Environments is an elegantly written treatise on this topic. Gino guides you through the basic concepts, provides insightful discussions on how to cope with the problems inherent in floating-point arithmetic, covers the all-important topic of computing distance between convex objects, and presents an informative summary of the spatial data structures that are commonly encountered in practice. And as an artisan of the field, Gino finishes the story with a case study-the design and implementation of his own working collision detection system, SOLID.
This is the first book to provide all the details necessary to build a collision detection system that really works. I hope you will find, as I did, that the amount of material in this book is incredible, making it an extremely valuable resource."
-Dave Eberly, president, Magic Software, Inc., and author of 3D Game Engine Design, co-author with Philip Schneider of Geometric Tools for Computer Graphics, and author of Game Physics.
"Having read this book, I can summarize my opinion in two words from a mathematician's lexicon: elegant and beautiful."-Ian Ashdown.
"This is the first book to provide all the details necessary to build a collision detection system that really works."-Dave Eberly
From the Back Cover
Gino van den Bergen's new book is the story of his successful journey down that path. The outcome is his well-known collision detection system, the SOftware Library for Interference Detection (SOLID). Along the way, he covers the topics of vector algebra and geometry, the various geometric primitives of interest in a collision system, the powerful method of separating axes for the purposes of intersection testing, and the equally powerful Gilbert-Johnson-Keerthi (GJK) algorithm for computing the distance between convex objects. But this book provides much more than a good compendium of the ideas that go into building a collision system. The curse of practical computational geometry is floating-point arithmetic. Algorithms with straightforward implementations when using exact arithmetic can have catastrophic failures in a floating-point system. Specifically, intersection and distance algorithms implemented in a floating-point system tend to fail exactly in the most important case in a collision systemwhen two objects are just touching. Great care must be taken to properly handle floating-point round off errors. Gino's ultimate accomplishment in this book is his presentation on how to correctly implement the GJK distance algorithm in the presence of single-precision floating-point arithmetic. And what better way to illustrate this than with a case study, the final chapter on the design and implementation of SOLID.
About the CD-ROM
The companion CD-ROM includes the full C++ source code of SOLID 3.5 as well as API documentation in HTML and PDF formats. Both single (32bit) and double (64bit) precision versions of the SOLID SDK plus example programs can be compiled for Linux platforms using GNU g++ version 2.95 to 3.3 and for Win32 platforms using Microsoft Visual C++ version 6.0 to 7.1. Use of the SOLID source code is governed by the terms of either the GNU GPL or the Trolltech QPL (see CD-ROM documentation for details).
About the Author
Gino van den Bergen is a game developer living and working in The Netherlands. He is the creator of SOLID and holds a Ph.D. in computing science from Eindhoven University of Technology. Gino implemented collision detection and physics in NaN Technologies' Blender, a creation suite for interactive 3D content.
About the Author
Product details
- Publisher : CRC Press; Har/Cdr edition (October 27, 2003)
- Language : English
- Hardcover : 308 pages
- ISBN-10 : 155860801X
- ISBN-13 : 978-1558608016
- Item Weight : 1.43 pounds
- Dimensions : 0.7 x 7.52 x 9.25 inches
- Best Sellers Rank: #2,720,772 in Books (See Top 100 in Books)
- #224 in 3D Graphic Design
- #566 in Computer Operating Systems (Books)
- #615 in Computer Graphics
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
- 5 star4 star3 star2 star1 star5 star74%5%20%0%0%74%
- 5 star4 star3 star2 star1 star4 star74%5%20%0%0%5%
- 5 star4 star3 star2 star1 star3 star74%5%20%0%0%20%
- 5 star4 star3 star2 star1 star2 star74%5%20%0%0%0%
- 5 star4 star3 star2 star1 star1 star74%5%20%0%0%0%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews right now. Please try again later.
- Reviewed in the United States on November 18, 2016Excellent book, "presents the nitty-gritty of the SOLID collision detection".
- Reviewed in the United States on January 22, 2015really great...!
- Reviewed in the United States on December 8, 2014El encuadernado del libro estaba roto
- Reviewed in the United States on November 10, 2005This is a wonderful book. i admire the effort of compiling vast amount of resources into this book. if you are doing 3D programming, you must have this book.
- Reviewed in the United States on May 13, 2004In "Collision Detection in Interactive 3D Environments," Gino van den Bergen explores the algorithms necessary to determine whether polygonal intersections occur in a real-time interactive simulation. Published by Morgan Kaufmann for $59.99, the book spans 277 pages through seven chapters and includes a CDROM containing the source code to SOLID 3.5, a collision detection library for interactive 3D computer animation.
After the first chapter's brief introduction and overview, the second chapter details the required concepts of the text. Generally, the collision detection algorithms presented in the book operate convex objects. As such, methods are described to decompose complex shapes into various convex primitives such as spheres, triangles, and boxes. Lastly, some consideration is given to collision response, performance optimizations through frame and geometric coherence, and problems arising from floating point error in calculations. The chapter is heavy in mathematics and notation and makes for a slow and sometimes tedious read.
Chapter three introduces algorithms for various types of primitive collisions through four broad categories: spheres, axis-aligned boxes, separating axes, and polygons. Each category contains an algorithm for various primitive combinations. For example, under the sphere category the routines presented are sphere to sphere, ray to sphere, and line segment to sphere. The each algorithm is well described mathematically then some pseudo-code is provided to illustrate the implementation. Performance is considered when selecting an algorithm and in its implementation. However, each category's primitive combination type presents just one algorithm. While other sources for algorithms are well-cited throughout the book, it would have been beneficial to compare multiple collision algorithms based on various scenarios to explore the topic completely. The SOLID library uses the routines chosen and presented in the text.
In chapter four, convex objects are considered. Van den Bergen considers both single-shot and incremental algorithms designed to perform several types of proximity queries on polytopes. In particular, each algorithm's computational complexity is provided and references are given for additional detail. The bulk of the chapter is devoted to discussion of the Gilbert-Johnson-Keerthi (GJK) algorithm which is used to determine distance and collision of general convex objects. The GJK algorithm is an iterative distance routine but can also be applied to general convex objects. Additionally, the GJK algorithm can exploit frame coherence to improve its performance roughly equivalent with other incremental methods.
Chapter five discusses data structures that reduce the scope of collision calculations during run-time. Through a combination of spatial partitioning, model partitioning, and frame coherence (an assumption that motion is generally smooth and changes per frame are small in a given scene), optimizations can be made to reduce overall computational time in calculating pair-wise collisions between the various types of polyhedra. Each section presents several partitioning methods and provides a case study regarding their performance with a test bed of complex objects to help highlight the performance differences.
Chapter six discusses SOLID, a Software Library for Interference Detection, which is included on the CDROM. Under development for the past seven years, the chapter provides the goals, an overview, design decisions, and restrictions of the library. In fact, the material presented in the preceding chapters is implemented as the SOLID library. The source code to SOLID is provided on the CDROM helps solidify the algorithms and discussion presented in the text. Finally, the last chapter describes the current limitations of collision detection and considers future research areas where further improvement might occur.
Overall, the book does an excellent job presenting the challenges and necessary considerations when designing a collision detection system but not in a manner that is approachable by everyone. Developers capable of appreciating the mathematics and theory will benefit from van den Bergen's description of his insights and experience which ultimately culminate in the design and construction of SOLID.
Top reviews from other countries
JannReviewed in Canada on November 3, 20243.0 out of 5 stars Hard To Follow (7/10)
I could slowly grind through it, but it was extremely hard to follow in places. This book is not suitable for anyone who isn't already deeply into advanced post-graduate math. And hence, I had to take extra lessons just to go back and have the slightest clue what I was reading (ie: notations). I would have liked it more to see a short-stepping approach to building a collision/physics engine whereby the concepts would fall into place as you add each new feature and adaption.
That being said, this may still better than a couple of other collision/physics books I've looked at (which are even harder to follow). If you actually do have advanced math and programming experience, this could be a valuable asset.
-
yzdriverReviewed in Japan on March 6, 20045.0 out of 5 stars 早く日本語版が出て欲しいとは思いますが・・
その筋の人なら一度は耳にしたことがあると思われる "SOLID" の中の人が書いた本です。
タイトルからは実装寄りの話があるのかなと思わせますが、具体的な「プログラム的なこと」は
目立つほどには書いてありません。もともと算数の話なので、理論がわかれば問題ないとは思いますが。
また、SOLID の Full source code がCDとして付いてくるので、実装がないとヤダ!という人も満足です。
気合の入った仮想世界を造ろうと思う人、任意形状同士の Collision Detector ライブラリを
作ろうと思っている人(日本に何人いるんだろう)におすすめです。







