In fact, any correct
-body collision detection algorithm has a
worst-case time in
. This is because it is
possible to arrange
objects (see Figure
)
so that every object collides with every other object, for
separate collisions.
However, because physical objects cannot pass though one another,
nearly any plausible physical situation actually has at
most
collisions, as in Figure
(a).
Many situations found in practice have as few as
collisions,
as shown in Figure
(b).
Since these rare-collision cases are common, it is quite often
possible to do collision detection in faster than
time.
There are several ways to do this, each with their own advantages.
For rigid objects with bounded velocities and accelerations,
the collision scheduling method of [#!Lin93!#] can be
effective.
Most other
-body approaches use some sort of
bounding volume. Bounding volumes, although shown quite
effective in practice, are subject to rather unlikely worst cases,
such as the nested `L' shapes shown in Figure
.
Suri, Hubbard, and Hughes [#!SHH99!#] show that if the
object aspect ratio and ``scale factor''1.3
are bounded, then bounding boxes introduce no more than a
linear amount of overhead. Zhou and Suri [#!ZS99!#] extend this
result to include bounded average aspect ratio and
scale factor. These theoretical results confirm the practical
effectiveness of bounding boxes.
|
The two major approaches to
-body collision detection [#!JTT98!#]
are object subdivision,
where we divide up objects into parts that cannot intersect;
and spatial subdivision, where we divide up space to
separate objects that cannot intersect.