This is a highly recommended book among game developers, and it has everything you'd expect from a high-end book on 3D collision detection.
Decent background on required vector math and geometry. Very good (clearly from real-world experiences) notes (a complete chapter) on optimization. Definitely 3D graphics centric, it is applicable to other purposes (robotics, motion control, etc.).
I'd say this is a good shelf reference that should be *read* cover-to-cover at least once.
Unfortunately, it is weakest on the same topic that *all* high-end CD books seem to gloss over: collision response and resolution techniques. If a new edition every is written, I hope a section on collision resolution techniques is added. This would make it a 6-star book..
Real-Time Collision Detection (The Morgan Kaufmann Series in Interactive 3-D Technology) HAR/CDR Edition
by
Christer Ericson
(Author)
|
Christer Ericson
(Author)
Find all the books, read about the author, and more.
See search results for this author
|
ISBN-13:
978-1558607323
ISBN-10:
1558607323
Why is ISBN important?
ISBN
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Use the Amazon App to scan ISBNs and compare prices.
Add to book club
Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club?
Learn more
Join or create book clubs
Choose books together
Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.
Only 13 left in stock (more on the way).
Ships from and sold by Amazon.com.
More Buying Choices
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
-
Apple
-
Android
-
Windows Phone
-
Android
|
Download to your computer
|
Kindle Cloud Reader
|
Frequently bought together
Customers who viewed this item also viewed
Page 1 of 1 Start overPage 1 of 1
What other items do customers buy after viewing this item?
Page 1 of 1 Start overPage 1 of 1
Editorial Reviews
Review
"Accurate and efficient collision detection in complex environments is one of the foundations of today's cutting-edge computer games. Yet collision detection is notoriously difficult to implement robustly and takes up an increasingly large fraction of compute cycles in current game engines as increasingly detailed environments are becoming the norm. Real-time Collision Detection is a comprehensive reference on this topic, covering it with both breadth and depth. Not only are the fundamental algorithms explained clearly and in detail, but Ericson's book covers crucial implementation issues, including geometric and numeric robustness and cache-efficient implementations of the algorithms. Together, these make this book a 'must have' practical reference for anyone interested in developing interactive applications with complex environments." -Matt Pharr, NVIDIA
"Christer Ericson's Real-time Collision Detection is an excellent resource that covers the fundamentals as well as a broad array of techniques applicable to game development." -Jay Stelly, Valve
"Christer Ericson provides a practical and very accessible treatment of real-time collision detection. This includes a comprehensive set of C++ implementations of a very large number of routines necessary to build such applications in a context which is much broader than just game programming. The programs are well-thought out and the accompanying discussion reveals a deep understanding of the graphics, algorithms, and ease of implementation issues. It will find a welcome home on any graphics programmer's bookshelf although it will most likely not stay there long as others will be constantly borrowing it...." -Hanan Samet, University of Maryland
"Real-Time Collision Detection is an excellent resource that every serious engine programmer should have on his bookshelf. Christer Ericson covers an impressive range of techniques and presents them using concise mathematics, insightful figures, and practical code." -Eric Lengyel, Senior Programmer, Naughty Dog
"If you think you already know everything about collision detection, you're in for a surprise! This book not only does an excellent job at presenting all the collision detection methods known to date, it also goes way beyond the standard material thanks to a plethora of juicy, down-to-earth, hard-learned implementation tips and tricks. This produces a perfect blend between theory and practice, illustrated by the right amount of source code in appropriate places. Basically the book just oozes with experience. Christer doesn't forget all the alternative topics that, despite not directly related to collision detection, can ruin your implementation if you don't include them in your design. The chapters on robustness and optimization are priceless in this respect. Its carefully crafted compact kd-tree implementation beautifully concludes a unique book full of luminous gems." -Pierre Terdiman, principal software engineer, NovodeX AG, and writer of the popular collision detection library Opcode
"When I received a copy of Real-Time Collision Detection for review, I was in the midst of redesigning an architectural visualization and lighting design program. The Bounding Volume Hierarchies chapter allowed me to quickly and easily design and implement an efficient ray tracing acceleration scheme. It also provided me with a wealth of information on various design strategies, which gave me the confidence that I had chosen a near-optimal approach. What one of my clients recently said about the finished software reflects my opinion of this fantastic book: 'Holy cow! Excellent work!'" -Ian Ashdown, byHeart Consultants Limited
"Christer Ericson's Real-time Collision Detection is an excellent resource that covers the fundamentals as well as a broad array of techniques applicable to game development." -Jay Stelly, Valve
"Christer Ericson provides a practical and very accessible treatment of real-time collision detection. This includes a comprehensive set of C++ implementations of a very large number of routines necessary to build such applications in a context which is much broader than just game programming. The programs are well-thought out and the accompanying discussion reveals a deep understanding of the graphics, algorithms, and ease of implementation issues. It will find a welcome home on any graphics programmer's bookshelf although it will most likely not stay there long as others will be constantly borrowing it...." -Hanan Samet, University of Maryland
"Real-Time Collision Detection is an excellent resource that every serious engine programmer should have on his bookshelf. Christer Ericson covers an impressive range of techniques and presents them using concise mathematics, insightful figures, and practical code." -Eric Lengyel, Senior Programmer, Naughty Dog
"If you think you already know everything about collision detection, you're in for a surprise! This book not only does an excellent job at presenting all the collision detection methods known to date, it also goes way beyond the standard material thanks to a plethora of juicy, down-to-earth, hard-learned implementation tips and tricks. This produces a perfect blend between theory and practice, illustrated by the right amount of source code in appropriate places. Basically the book just oozes with experience. Christer doesn't forget all the alternative topics that, despite not directly related to collision detection, can ruin your implementation if you don't include them in your design. The chapters on robustness and optimization are priceless in this respect. Its carefully crafted compact kd-tree implementation beautifully concludes a unique book full of luminous gems." -Pierre Terdiman, principal software engineer, NovodeX AG, and writer of the popular collision detection library Opcode
"When I received a copy of Real-Time Collision Detection for review, I was in the midst of redesigning an architectural visualization and lighting design program. The Bounding Volume Hierarchies chapter allowed me to quickly and easily design and implement an efficient ray tracing acceleration scheme. It also provided me with a wealth of information on various design strategies, which gave me the confidence that I had chosen a near-optimal approach. What one of my clients recently said about the finished software reflects my opinion of this fantastic book: 'Holy cow! Excellent work!'" -Ian Ashdown, byHeart Consultants Limited
Book Description
The complete engineering guide to Collision Detection from a top engineer at Sony
From the Back Cover
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.
Features
*Presents algorithms and data structures with wide applications to the fields of game development, virtual reality, physically based simulation, CAD/CAM, architectural and scientific visualization, molecular modeling, engineering simulation, GIS, ray tracing, and more.
*Describes tested, real-world methods, liberally illustrated by C & C++ code.
*Reviews necessary concepts from mathematics and computational geometry, and includes extensive references to other sources and research literature.
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.
Features
*Presents algorithms and data structures with wide applications to the fields of game development, virtual reality, physically based simulation, CAD/CAM, architectural and scientific visualization, molecular modeling, engineering simulation, GIS, ray tracing, and more.
*Describes tested, real-world methods, liberally illustrated by C & C++ code.
*Reviews necessary concepts from mathematics and computational geometry, and includes extensive references to other sources and research literature.
About the Author
Christer Ericson is a senior principal programmer and the tools and technology lead at Sony Computer Entertainment America in Santa Monica. Before joining Sony in 1999, he was a senior programmer at Neversoft Entertainment. Christer received his Masters degree in computer science from Umeå University, Sweden, where he also lectured for several years before moving to the US in 1996. Christer has served on the advisory board for Full Sail's Game Design and Development degree program since 2002. His interests are varied, but he takes a particular interest in program optimization, a topic he has spoken on at the Game Developers Conference.
Start reading Real-Time Collision Detection instantly on your Kindle Fire or on the free Kindle apps for iPad, Android tablet, PC or Mac. Don't have a free Kindle app? Get yours here
Product details
- Publisher : CRC Press; HAR/CDR edition (December 22, 2004)
- Language : English
- Hardcover : 632 pages
- ISBN-10 : 1558607323
- ISBN-13 : 978-1558607323
- Item Weight : 2.99 pounds
- Dimensions : 8 x 1.5 x 9.5 inches
-
Best Sellers Rank:
#407,783 in Books (See Top 100 in Books)
- #37 in 3D Graphic Design
- #194 in Digital Art
- #273 in Computer Graphics
- Customer Reviews:
Customer reviews
4.6 out of 5 stars
4.6 out of 5
64 global ratings
How are ratings calculated?
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 analyzes reviews to verify trustworthiness.
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
4.0 out of 5 stars
Good on collision detection, would like to see same level of discussion on collision resolution/response
Reviewed in the United States on December 15, 2017Verified Purchase
5 people found this helpful
Report abuse
Reviewed in the United States on February 25, 2009
Verified Purchase
I can't give it 5 stars, because collision detection is a HUGE topic. Not really their fault, but the book is a bit incomplete because of it. There are a few useful algorithms I know of (and have used) that weren't mentioned at all in the book.
It is a great book though. I'm the author of the somewhat popular Chipmunk Physics library, and I learned quite a bit from reading this book. I already knew a lot of the material in the book, but there were a few new ideas that I hope to be able to incorporate into my physics library's collision system. I think this would be a great introductory book for someone wanting to learn about what can be a difficult problem to learn from the Internet alone.
Disclaimer! This book does not discuss collision response or game physics. This book's sole purpose is to understand how to detect collisions efficiently.
It is a great book though. I'm the author of the somewhat popular Chipmunk Physics library, and I learned quite a bit from reading this book. I already knew a lot of the material in the book, but there were a few new ideas that I hope to be able to incorporate into my physics library's collision system. I think this would be a great introductory book for someone wanting to learn about what can be a difficult problem to learn from the Internet alone.
Disclaimer! This book does not discuss collision response or game physics. This book's sole purpose is to understand how to detect collisions efficiently.
12 people found this helpful
Report abuse
Reviewed in the United States on November 2, 2010
Verified Purchase
If I had to judge this book by its cover, I would have to give it three stars; although the binding is functional, it's one of the ugliest book covers I can remember. Yet the contents between the two covers is splendid, the language is clear, the grammar is correct, and I found not even one spelling mistake.
This book is well-indexed, which makes perfect sense as much of its content is about finding items. I haven't failed to find something I wanted quickly or to locate something I previously read. Citations are well-annotated, and they are complete enough that he cited someone I used to live in the same building with within my first two hours of reading. There are abundant well-drawn figures, and they usually display a high level of helpfulness.
How long does it take to read the entire contents? For me, about ten hours. I am no career mathematician, but I have been writing code nearly three decades and presently writing my third ray tracer. Naturally one can skip through sections where more detail is offered than needed at the time one is reading, but be cautious about this. Some of my most productive reading came from a chapter I didn't plan to (and still don't plan to) need to use.
As a full table of contents for this book is available elsewhere on the Internet, I won't summarize it here--except to say that when I was the table of contents, I ordered the book immediately and had it delivered the next day, which was a Saturday. I started reading Monday and finished Tuesday, and my time and money were well invested.
As I learned to optimize software more than twenty years ago, an unexpected benefit of this book was a lengthy discussion of how to exploit more contemporary hardware and languages, where the effects such as caching, pipelining, and aliasing must be considered, or a terrible drop in performance can result. Sometimes it's good to read some newer material.
Once in a great while, diagram conventions get distracting and require some unscrambling. For example, a diagram showing Andrew's algorithm for computing complex hulls defines "left" and "right" for an edge exactly opposite the reader's perspective. Another example, some binary search trees have their nodes labeled using sequential letters, where the labels indicated have nothing to do with the keys for each node. To one used to seeing nodes of trees marked with their contents, these figures appear at first glance to be incorrect. While they are not incorrect, I find that this choice of labeling is confusing and disrupts the continuity of reading.
The text is almost always perfectly clear and makes everything very simple. The only exception I noticed was the fourth sentence of the chapter "Convexity-based methods". That particular sentence needs a rewrite from scratch, although reading the rest of the paragraph permits one to recover the author's intent.
I didn't even break the seal on the enclosed CD. There is text in the book to say the CD contains the code fragments from the book, with absolutely no additions or other material. Even if it had other material, I still might not open it.
If I had to give this book a letter grade, it would definitely be an A+, although several friends who don't write code seem less enthusiastic about this particular volume.
Update 5 Nov 2010: I think the denominator in DistPointPlane() on page 127 needs a square root around it, but it's not in the errata yet. I'll email the author.
This book is well-indexed, which makes perfect sense as much of its content is about finding items. I haven't failed to find something I wanted quickly or to locate something I previously read. Citations are well-annotated, and they are complete enough that he cited someone I used to live in the same building with within my first two hours of reading. There are abundant well-drawn figures, and they usually display a high level of helpfulness.
How long does it take to read the entire contents? For me, about ten hours. I am no career mathematician, but I have been writing code nearly three decades and presently writing my third ray tracer. Naturally one can skip through sections where more detail is offered than needed at the time one is reading, but be cautious about this. Some of my most productive reading came from a chapter I didn't plan to (and still don't plan to) need to use.
As a full table of contents for this book is available elsewhere on the Internet, I won't summarize it here--except to say that when I was the table of contents, I ordered the book immediately and had it delivered the next day, which was a Saturday. I started reading Monday and finished Tuesday, and my time and money were well invested.
As I learned to optimize software more than twenty years ago, an unexpected benefit of this book was a lengthy discussion of how to exploit more contemporary hardware and languages, where the effects such as caching, pipelining, and aliasing must be considered, or a terrible drop in performance can result. Sometimes it's good to read some newer material.
Once in a great while, diagram conventions get distracting and require some unscrambling. For example, a diagram showing Andrew's algorithm for computing complex hulls defines "left" and "right" for an edge exactly opposite the reader's perspective. Another example, some binary search trees have their nodes labeled using sequential letters, where the labels indicated have nothing to do with the keys for each node. To one used to seeing nodes of trees marked with their contents, these figures appear at first glance to be incorrect. While they are not incorrect, I find that this choice of labeling is confusing and disrupts the continuity of reading.
The text is almost always perfectly clear and makes everything very simple. The only exception I noticed was the fourth sentence of the chapter "Convexity-based methods". That particular sentence needs a rewrite from scratch, although reading the rest of the paragraph permits one to recover the author's intent.
I didn't even break the seal on the enclosed CD. There is text in the book to say the CD contains the code fragments from the book, with absolutely no additions or other material. Even if it had other material, I still might not open it.
If I had to give this book a letter grade, it would definitely be an A+, although several friends who don't write code seem less enthusiastic about this particular volume.
Update 5 Nov 2010: I think the denominator in DistPointPlane() on page 127 needs a square root around it, but it's not in the errata yet. I'll email the author.
10 people found this helpful
Report abuse
Reviewed in the United States on November 14, 2006
Verified Purchase
This book does more than collision.
Don't get me wrong -- it does all of the collision you'll likely need in any kind of current game, in good detail, with derivation of why it works, including source code. However, it also serves as an excellent primer in game geometry for anyone who might not have an intuitive understanding of what a closed manifold mesh is, or why the separating axis theorem works, or why T junctions are a problem.
I'm pretty well versed in the field, and I use this book as a comprehensive reference, and I love it. But even if you're a newcomer, you need this book, because it contains everything you need to know! And, conversely, if you don't know what's in this book, you won't have the success you want.
Don't get me wrong -- it does all of the collision you'll likely need in any kind of current game, in good detail, with derivation of why it works, including source code. However, it also serves as an excellent primer in game geometry for anyone who might not have an intuitive understanding of what a closed manifold mesh is, or why the separating axis theorem works, or why T junctions are a problem.
I'm pretty well versed in the field, and I use this book as a comprehensive reference, and I love it. But even if you're a newcomer, you need this book, because it contains everything you need to know! And, conversely, if you don't know what's in this book, you won't have the success you want.
14 people found this helpful
Report abuse
Reviewed in the United States on May 5, 2012
Verified Purchase
This book covers collision detection algorithms of every kind, and the code functions are self contained in particular sections and can be easily inserted into your own code framework. The author does a great job of explaining the principles behind what the code is doing and describing the math and geometry involved. The book's vector and matrix notation is consistent with the coding style, so it is easy to understand how the descriptions relate to the code. I am new to the world of collision detection, but I found I was able to piece together functions from this book to do anything I needed with minimal effort, but still gain a landslide of understanding. This is likely to become one of the most used books on my shelf as I continue to model various scenes in simulation.
One person found this helpful
Report abuse
Reviewed in the United States on October 17, 2007
Verified Purchase
This is an extremely well written text. The examples are clear, and it manages to cover a lot of ground. In my opinion, this book is far better than many of the other collision detection and game-development texts.
Nowhere else will you find as good a reference on shape intersection tests and closest point computations. Ericson covers these topics swiftly and efficiently within the early sections, a task which often occupies the entirety of many lesser books. The coverage of the Gilbert-Johnson-Keerthi algorithm is likewise top-notch.
My main gripe with the book is the chapter on GPU optimization. Its placement didn't seem very logical, and the techniques it contains are quite out of date as of 2007. Fortunately, the rest of the book is so good that it can be easily forgiven.
Overall: Highly recommended.
Nowhere else will you find as good a reference on shape intersection tests and closest point computations. Ericson covers these topics swiftly and efficiently within the early sections, a task which often occupies the entirety of many lesser books. The coverage of the Gilbert-Johnson-Keerthi algorithm is likewise top-notch.
My main gripe with the book is the chapter on GPU optimization. Its placement didn't seem very logical, and the techniques it contains are quite out of date as of 2007. Fortunately, the rest of the book is so good that it can be easily forgiven.
Overall: Highly recommended.
5 people found this helpful
Report abuse
Top reviews from other countries
Mr Cresswell
5.0 out of 5 stars
Good Physics Book
Reviewed in the United Kingdom on December 5, 2013Verified Purchase
This a good physics book if you want to learn 2D and 3D physics in computer games. Though you need a very strong knowledge of maths before reading this.
One person found this helpful
Report abuse
Cliente Amazon
5.0 out of 5 stars
Leitura obrigatória para desenvolvedores de jogos
Reviewed in Brazil on October 8, 2018Verified Purchase
Deixo este livro sempre na minha estante, e consulto-o com frequência para referências. O livro tem implementações compreensivas e claras em C++, porém sem envolver-se demais com o paradigma de orientação a objetos, sendo facilmente reproduzidas em C "puro" ou em qualquer outra linguagem. Mesmo para quem não lida diretamente com programação da Física em jogos, é uma boa leitura para que o desenvolvedor possa reiterar-se de possíveis gargalos ao programar seu jogo. Programação é uma arte, e toda arte também envolve uma boa compreensão das ferramentas utilizadas.
Amazon Customer
5.0 out of 5 stars
Vollständige Aufarbeitung
Reviewed in Germany on May 5, 2013Verified Purchase
Das Buch beschreibt viele Aspekte zum Thema "Real-Time Collision Detection" - ich ist nichts aufgefallen, das fehlte. Der Einleitung in die Grundlagen zur Mathematik und Geometrie sind hilfreich, fordern dem Leser zu Beginn einiges an Geduld.
Der Übergang von den Grundlagen zum eigentlichen Thema passiert dann etwas verschwommen.
Wer sich für Kollisionsdetektion im Bereich physikalische Simulation interessiert, dem werden einige Aspekte fehlen aber ansonsten ist das Buch wärmstens zu empfehlen.
Der Übergang von den Grundlagen zum eigentlichen Thema passiert dann etwas verschwommen.
Wer sich für Kollisionsdetektion im Bereich physikalische Simulation interessiert, dem werden einige Aspekte fehlen aber ansonsten ist das Buch wärmstens zu empfehlen.
Mr.B
4.0 out of 5 stars
Good for the start
Reviewed in Germany on November 23, 2020Verified Purchase
its a good book for the start i think. i bought it because i hade to write a paper about BSP tree which is good explained in this book but i wish there was a german version of it
Esprit
4.0 out of 5 stars
Everything you ever wanted to know about collision detection
Reviewed in the United Kingdom on October 4, 2009Verified Purchase
This book was very helpful when I was building my own physics engine. There are a lot of code examples, too.
One person found this helpful
Report abuse








