Collision Avoidance is used in OneSAF to add realism to simulations. This calculation entails performing collision detection between each entity against every feature in a given scenario. This must happen often for medium and high resolution entities. Features are high resolution consisting of lots of different types of geometry.
Calculating collision detection for every entity in a simulation can be an expensive task. To get around this high cost, most collision detection algorithms perform sphere intersections or use hierarchies. Sphere intersections are not as reliable as true collision detection. Hierarchies require memory overhead and are not well suited to dynamic features. Our method is built on Cullide and calculates accurate collision detection without any hierarchy overhead.
Our method renders features into a depth buffer. Next specialized graphics hardware performs occlusion queries with the entities footprint and the depth buffer. These queries tell us if any part of the footprint collides with any part of the entities.
Overview of GPU-Accelerated Collision Detection
Figure 1: Our technique proceeds in three phases: First, entities are checked against the set of all features. Second, all features are checked against remaining entities. Third, the potentially colliding features are checked against their prospective entities.
Figure 2: The terrain features of the environment are rendered once into the depth buffer. We then cull the entity footprints against the features set to reduce the number of entities. Next we cull the feature set against the entity footprint set to reduce the features. Finally we cull the reduced features set against the remaining entity footprints.