| PathEngine home | previous: | next: |
PathEngine is able to perform fast queries against large environments by generating various kinds of
preprocess data structures corresponding to those environments.
Generating and managing preprocess is therefore an important aspect of using PathEngine.
At the core of the PathEngine preprocess generation is the creation of a set of expanded and combined boundaries for the obstructions in an environment.

Expanded and combined boundaries for part of the Thainesford mesh
The image shows expanded boundaries in an around a couple of buildings in a corner of the town
in the 'Thainesford' mesh (included with the SDK).
As described previously, obstructions are defined by both the external edges of the ground mesh
and also by shapes pinned to the surface of the ground mesh.
The white lines in the image show the base obstruction shapes.
Expanded boundaries are generated for each obstruction shape, and for the external edges of the mesh.
Where these expanded boundaries overlap one another,
they are combined together.
As described previously (in
Preprocess is divided into preprocess required for collision queries,
and extra preprocess required for pathfinding queries.
In addition to generation of expanded boundaries,
the 'collision preprocess' also includes collision lookups.
The 'pathfind preprocess' includes a base visibility graph and
look-ups related to 'silhouette' visibility optimisations.
Collision preprocess is required in order for agents to perform collision queries.
(See
Pathfind preprocess is required in order for agents to perform collision queries.
(See
Because these expanded boundaries are specific to an agent shape,
preprocess must be generated for each shape that will be used by agents requiring
collision or pathfinding queries.
Depending on the environments used, the memory footprint for preprocess can get quite large, so it is a good idea to plan how shapes will be used by different types of agents so as to reduce the number of total shapes requiring preprocess generation.
Preprocess is not required for placing obstacles (either statically or dynamically) as long as those obstacles don't need to test for collision against other obstacles.
Objects that need to test collision against other obstacles but that do not need to plan movement around obstacles generally require collision preprocess.
Obstacles that need to plan paths around other obstacles require full pathfind preprocess.
For detailed reference about the preprocess generation methods refer to
| Documentation for PathEngine release 5.16 - Copyright © 2002-2008 PathEngine | next: |