Contact Detection Algorithms
S. Kockara
1
, T. Halic
1
, C. Bayrak
1
, K. Iqbal
1
, and R. A. Rowe
2
University of Arkansas at Little Rock
1
, University of Arkansas for Medical Sciences
2
Abstract— A process that determines whether two or more
bodies make contact at one or more points is called contact
detection or collision detection. Contact detection is
inseparable part of the computer graphics, surgical
simulations, and robotics etc. There are large of methods
that are used for collision detection. We will review a few of
the most common ones. Algorithms for contact
determination can be grouped into two general categories -
broad-phase and narrow-phase-. This paper provides a
comprehensive classification of a collision detection
literature for the two phases. Moreover, we have attempted
to explain some of the existing algorithms which are not easy
to interpret. In the process, we have tried to keep sections
self-explanatory without sacrificing depth of the coverage.
Index Terms—contact detection, collision detection,
deformation, bounding volumes, spanner
I. BROAD-PHASE COLLISION DETECTION
When given the two models and their placements in the
world space, the simplest brute force approach to perform
a collision query is to test each of the primitive segments
in object A against each of the primitive segments of
object B; that process requires number of A’s primitive
segments times number of B’s primitive segments
overlap tests. This approach is reasonable for relatively
small models. However, we cannot perform exhaustive
pair-wise testing on models which have thousands of
primitives since a collision query needs to be performed
in every simulation step in order to detect colliding
objects. Animations can have many objects, all of which
may have a complex geometry such as polygonal soups
of several thousands facets. Therefore, performing
collision detection is computationally extensive task. Yet,
it can be difficult to obtain real time interaction. Thus, to
eliminate these computationally costly pair-wise tests
different algorithms are proposed in the literature.
Hubbard [1] was the first to classify the collision
detection into two parts e.g. broad-phase and narrow-
phase. Those concepts of broad-phase and narrow phase
collision detection reduce the computational load by
performing a coarse test in order to prune an unnecessary
pair test. Broad-phase collision detection identifies
disjoint groups of possibly intersecting objects. On the
contrary, pruning unnecessary primitive-pair test is
narrow-phase collision detection which identifies disjoint
groups of possibly intersecting objects’ primitives e.g.
polygons. Most of the literature uses Hubbard’s broad
and narrow phase collision detection scheme to classify
collision detection algorithms [2]-[3]. The same
classification technique will also be used throughout this
survey along with introduction of new algorithms. Some
of the methods such as bounding volumes or boxes are
included in both broad and narrow phase collision
detection.
II. BROAD-PHASE COLLISION DETECTION
From computational geometry [4], we know that broad
phase collision detection can be achieved by answering
these questions: which box contains a given point and/or
which boxes overlap a given box. Therefore, for broad-
phase collision detection, approximating objects with
boxes make broad-phase collision detection easier.
However, we also need to know which boxes will be
overlapped in the next iteration because in physics-based
animations objects can move and deform in time. To
perform this, broad-phase collision detection can be done
with three different kinds of algorithms: All-pair test
(Exhaustive Search), sweep and prune (Coordinate
Sorting), and hierarchical hash tables (multi level grids).
An exhaustive search is the brute-force approach which
compares each object’s bounding volume with others’
bounding volumes. If algorithm finds colliding bounding
volumes then it starts further investigation with narrow
phase collision detection algorithms. Sweep and prune
algorithm [5][6] projects every object’s bounding
volume’s starting and ending points onto the coordinate
axes. If there is intersection among the entire principal
coordinate axes then there is a collision between those
objects. Another approach for broad-phase collision
detection is hierarchical hash tables, such as grid [7]. This
algorithm divides the entire scene into the equal size grids
along all the principal axes. All points overlapping with
the given grid cell is identified by the algorithm. If there
is more than one object sharing the same cell, those
objects are possibly colliding objects.
III. NARROW-PHASE COLLISION DETECTION
Broad phase lists pairs of possible colliding objects and
narrow phase inspects further each of these pairs and
finally contact determination algorithms verify the exact
collisions. Narrow phase algorithms usually return more
detailed information such as separation distance,
penetration depth, closest points etc. This information can
be later used for the computation of time of impact,
collision response and forces, and contact determination.
Narrow phase collision detection algorithms can be
categorized into four groups [8]: feature-based, simplex-
JOURNAL OF COMPUTERS, VOL. 4, NO. 10, OCTOBER 2009 1053
© 2009 ACADEMY PUBLISHER