PathEngine home previous: Process Overviewnext: Linking with the 3D Content Processing
Contents, Programmers Guide, World Representation, 3D Content Processing, Input Representation

Input Representation

Two kinds of input data can be passed into the 3D content processing: polygon soup data (in the form of tri meshes), and convex solids (in the form of 'point clouds').

The input data is provided to PathEngine through application-side objects derived from a couple of interface classes defined in the PathEngine api header.
The actual concrete implementation of these application-side objects can then vary according to the actual content building environment.

Polygon soup data

Polygon soup is passed into the 3D processing by instantiating objects derived from iFaceVertexMesh.

(This is the same interface class that is used for passing source geometry into the 2D content processing.)

In contrast to the geometry passed in to the 2D content processing, this polygon soup data has no validation constraints (except for range constraints - see below).
Zero area or downward facing tris are permitted.

Convex solids

Convex solids are passed into the 3D content processing as a sequence of point clouds.

The 3D content processing will generate a convex hull for each of these point cloud, and treat the resulting convex volume as a fully obstructed solid.

Note that this input representation avoids the need for any validation constraints on the solid object geometry (except for range constraints - see below), since PathEngine takes care of generating correct volumes for each point cloud.
(Where necessary, points with unit offsets will be added to ensure that each solid has non-zero volume.)

The point clouds are passed into the 3D processing by instantiating objects derived from iSolidObjects.

Example implementations

You can find basic example implementations of each class in the API reference for the class. (iFaceVertexMesh, iSolidObjects).

See also Building from Physics Scene Data, for example code for generating 3D processing input data from some popular 3rd party physics engines.

Face attributes

Run-time (i.e. not 2D process specific) face attributes can be assigned to both mesh and solid 3D source data, and will be passed through into the ground result.

Other attributes relate specifically to the 3D process, and can be used to affect the way specific geometry components are treated, for example to mark obstacles as non-walkable, by excluding them from the ground result.

Refer to this page for details about the full set of PathEngine face attributes.

Range constraints

Coordinates for all points in the input data must lie within PathEngine's supported world coordinate range.
(See PathEngine Coordinates for details, but note that, in the case of 3D content processing, the world range also applies to the Z components.)

In the case of objects, or faces, with points outside the supported range, PathEngine will emit a non fatal error, and the relevant objects or faces will be skipped.

Voxel processing vertical range constraint

The render to voxel stage of the voxel processing method uses 32 bits for Z values, which then adds an additional range constraint.

When using this processing method the maximum effective vertical range, after extrusion, cannot exceed 65534, i.e. for all vertices in the source data, maximumZ - (minimumZ - extrudeHeight) must be less than 65534.

Documentation for PathEngine release 6.03 - Copyright © 2002-2021 PathEnginenext: Linking with the 3D Content Processing