Easy real-time collision detection
Jonathan Fabrizio
TL;DR
This paper presents a real-time collision detection scheme that leverages distance-field-like representations derived from the graphics pipeline to test collisions between a single object and its environment. By projecting both the object and environment onto the same plane, it generates height maps $S_o$ and $S_e$ via depth buffers and back-face culling, then compares them entirely on the GPU to determine intersections. The approach requires only the meshes, handles primitives generated or modified on the GPU, and relies on simple, fast operations with modest memory overhead, achieving competitive performance against the Flexible Collision Library (FCL) in selected scenarios. However, it cannot detect a fully enclosed object within the environment and is most effective when the object's concavities align with the projection direction; the authors discuss variants and future work to broaden applicability. Overall, this method offers a practical, easy-to-implement GPU-based alternative for real-time collision detection in games, simulations, and particle systems, with strong memory efficiency and compatibility with pipeline-generated geometry.
Abstract
This article presents an easy distance field-based collision detection scheme to detect collisions of an object with its environment. Through the clever use of back-face culling and z-buffering, the solution is precise and very easy to implement. Since the complete scheme relies on the graphics pipeline, the collision detection is performed by the GPU. It is easy to use and only requires the meshes of the object and the scene; it does not rely on special representations. It can natively handle collision with primitives emitted directly on the pipeline. Our scheme is efficient and we expose many possible variants (especially an adaptation to certain particle systems). The main limitation of our scheme is that it imposes some restrictions on the shape of the considered objects - but not on their environment. We evaluate our scheme by first, comparing with the FCL, second, testing a more complete scene (involving geometry shader, tessellation and compute shader) and last, illustrating with a particle system.
