Books

Real-time collision detection.
I spent way too much time over the last few years of my life writing a book on collision
detection. It covers a large number of primitive tests, spatial partitioning
methods, bounding volumes and bounding volume hierarchies, robustness issues,
and lots more. Check out the book page for more detail.

Recommended list.
I admit it — I'm a compulsive book buyer. Thanks to me, many book publishers
are still in business!
Out of all the books I have, there are a few that I think any self-respecting
(games) programmer should have. Those books are listed here.

Papers & Slides

GDC 2007 — Physics for Games Programmers: Collisions using separating-axis tests.
In the 2007 physics tutorial sessions I also talked about the separating-axis test, and here are
the slides.
[slides ppt 191KB]

GDC 2006 — Physics for Games Programmers: Numerical Robustness (for Geometric Calculations)
I held a repeat of my GDC 2005 talk at the GDC 2006 Physics tutorial. The slides are
virtually identical to the GDC 2005 talk, except now with a nicer white background. The
comments below on the previous incarnation of the talk still applies.
[slides ppt 297KB]

GDC 2005 — Numerical Robustness for Geometric Calculations (aka EPSILON is NOT 0.00001!)
This is my GDC 2005 presentation that gives an overview of floating-point numbers and
their issues. The talk grew out of my frustration seeing lots and lots of broken
floating-point code posted on the net and various online forums. It's very easy to
screw up floating-point-based code, and here I show why! There are no notes for
this presentation (although the slides have some notes) but Chapters 8 and 11 of RTCD
cover the presented information in deeper detail. (Robustness is relly important
in general, which is why I talk about it a lot in my book.)
[slides ppt 542KB]

SIGGRAPH 2004 — The Gilbert-Johnson-Keerthi Algorithm. At SIGGRAPH 2004, as part of the Collision
Detection and Proximity Queries course, I held a presentation on the GJK algorithm for
determining intersection between convex polyhedra.
The notes are heavily based on material from my book.
[notes pdf 2,859KB;
slides ppt 494KB]

GDC 2003 — Memory Optimization. At GDC 2003 I presented a lecture on memory optimization,
talking about ways to deal with the bottleneck between CPU and main memory. There are no notes,
but the slides are quite self-contained so that should hopefully not be a problem. However,
for more information, Chapter 13 of my book deals with the topics of this presentation in
deeper detail.
[slides ppt 827KB]