GPU-assisted Collision Detection

Today, commodity graphics processing units (GPUs) have advanced to a state in which more raw processing power is inherent in GPUs than in main CPUs. This development is facilitated by GPUs working in a very restricted domain, allowing rendering tasks to be parallelized across many deeply pipelined, highly specialized computational units. This parallelism gives an overall speed advantage to GPUs, even though GPUs typically work at lower clock speeds than CPUs. Coupled with recent GPU improvements, such as increased programmability of vertex and pixel shaders and the introduction of floating-point textures, the computational power of GPUs has generated a lot of interest in mapping nonrendering-related, general-purpose computations — normally performed on the CPU — onto the GPU. For collision detection, there are two primary ways in which to utilize GPUs: for fast image-space-based intersection techniques or as a co-processor for accelerating mathematics or geometry calculations. Image-space-based intersection techniques rely on rasterizing the objects of a collision query into color, depth, or stencil buffers and from that determining whether the objects are in intersection.