A navigation mesh for dynamic environments W. G. v. Toll, A. F. Cook IV and R. Geraerts
Figure 1. The
Layers
environment. The obstacle can be locally inserted onto the top floor of a 2.5D multilayered environment in
1.1 ms. Ten new vertices were added to the navigation mesh when the obstacle was inserted.
as possible. These techniques approximate the walkable
space, so small geometric details might be lost.
Several exact approaches exist to construct navigation
meshes. Kallmann [15] uses a special triangulation to con-
struct walkable areas in O.nlog n/ time. The amount of
clearance along a path in this triangulation is based on
the radius of the largest empty disk along the path. Such
a triangulation has linear complexity and encodes clear-
ance information for many points in the environment. This
technique currently supports triangulations in 2D environ-
ments, but it could be easily extended to support multi-
layered environments. Wein et al. [16] combine visibility
graph and Voronoi diagram techniques with an O.n
2
log n/
time approach. This powerful technique encodes clearance
information for all points in the environment and produces
global shortest paths. It is relatively expensive to compute
and is intended for static 2D environments.
The medial axis is the set of all points in the environ-
ment that are equidistant from at least two distinct closest
obstacle points in the environment [17]. Geraerts [2] uses
an augmented medial axis called the ECM to partition a
2D environment into a set of walkable areas in O.nlog n/
time. This work was extended to deal with multilayered
environments [6]. An advantage of this structure is that it
naturally encodes clearance information for all points in
the environment. It also allows efficient local updates. A
major goal of this paper is to describe how the augmented
medial axis of [2] and [6] can be quickly updated each time
an obstacle is inserted, deleted, or moved.
1.2. Dynamic Environments
Some data structures can handle obstacles that change over
time. The adaptive roadmaps of Sud et al. [18] contain
elastic edges that can change along with the environment.
Roos and Noltemeier [19] have augmented a structure with
time information to enable continuous updates in an envi-
ronment with moving points. Kallmann and Matari
´
c [20]
describe dynamic roadmaps that keep track of the obstacles
in the environment and constantly update a graph.
Green and Sibson [21] show how to locally update a
2D Voronoi diagram each time a point obstacle is inserted.
Devillers [22], Mostafavi et al. [23], and Gowda et al. [24]
all consider how to delete point obstacles from a Voronoi
diagram. Held and Huber [25] show how to insert poly-
gons and circular arcs into a Voronoi diagram. Kallmann
et al. [26] describe how to insert or remove obstacles from
a triangular mesh. Concurrently with our work, de Pinto
Moura and Dal Sasso Freitas [27] have implemented inser-
tions and deletions for Voronoi diagrams of complex sites.
Our results are similar but more application-oriented.
Because there has not been much previous work on
maintaining a multilayered navigation mesh in a dynamic
setting, the focus of this paper is to describe how to locally
repair an augmented medial axis each time an obstacle is
inserted, deleted, or moved. Our experiments show that
these local operations take only a few milliseconds to per-
form in practice. Hence, dynamic obstacles can be used in
real-time applications.
1.3. Overview
This paper is organized as follows. Section 2 reviews fun-
damental data structures such as the medial axis. The
medial axis is useful because it can easily be annotated
with nearest obstacle information. Such an augmented
medial axis defines a navigation mesh called the ECM [2].
Section 3 shows how to locally insert a point, line seg-
ment, or polygonal obstacle into a 2D augmented medial
axis. Section 4 describes how to locally delete any polyg-
onal obstacle from a 2D augmented medial axis. Section 5
shows how to insert and delete obstacles into a 2.5D mul-
tilayered augmented medial axis. The experimental results
in Section 6 show that an augmented medial axis can be
locally repaired in just a few milliseconds each time an
obstacle is inserted, deleted, or moved.
2. PRELIMINARIES
Throughout this paper, we assume that all polygonal
obstacles in the environment have been partitioned into
convex parts.
Consider a set of m (convex) polygonal obstacles
fp
1
;:::;p
m
g in the plane. Let n be the total number of
vertices defined by these obstacles. The Voronoi diagram
of these obstacles is a partition of the plane into a set of
536
Comp. Anim. Virtual Worlds
2012; 23:535–546 © 2012 John Wiley & Sons, Ltd.
DOI: 10.1002/cav