|
With axis-aligned cutting planes, we can determine which
side an object belongs simply by examining its axis-aligned
bounding box, so dividing the problem takes
time.
Ignoring objects that straddle the cutting plane (and thus
must be kept on both sides), and assuming each division
cuts the problem into two nearly equal-sized halves, the
RCB method requires
divisions and hence
runs in
time.
Plimpton, Attaway, Hendrickson et al. [#!Hend96!#]
use a parallel RCB scheme to perform collision detection
in a transient dynamics application. The parallel
implementation of RCB requires at least
synchronized communication steps, however, so the approach
has a rather high synchronization overhead1.4.
Allowing the cutting planes to have arbitrary orientation results in a binary space partition, first described by Fuchs et al. in [#!FKN80!#]. The theoretical runtime is the same as that of RCB.
Another spatial subdivision scheme is the sweep-line
method, often used for line segment intersection in 2D.
This method first sorts the significant points of each object
by
coordinates, then maintains a sorted
neighbor list
as it proceeds along
, testing each new object against
its neighbors. The sorting and neighbor lists make this
algorithm
average case, like RCB.
Several other spatial subdivision schemes have been
described, such as octrees [#!Bandi95!#] and methods derived from ray
tracing. By reduction to sorting, however, any subdivision scheme based
on comparing object locations will require at least
time;
with parallel implementations that require
multiple synchronization steps.
The voxel method, described next, in some situations achieves
performance with excellent parallel efficiency.