Fast Penetration Depth Estimation for Elastic Bodies Using Deformed Distance Fields (DDF) (original) (raw)

To compute distance values for an arbitrary object requires initializing the location of the surface within a 3D grid. During initialization, a gridpoint may be marked with one of three labels: ALIVE, NARROW_BAND, or FAR_AWAY. An ALIVE point represents a gridpoint who has already been assigned a distance value. A NARROW_BAND point represents a point on the evolving front. A FAR_AWAY point, typically initialized to -infinity, represents a point without an assigned distance value.

All gridpoints are first marked FAR_AWAY. The current implementation then makes a pass through each face of the surface, initializing the surrounding gridpoints. To define which gridpoints are neighbors, an axis-aligned bounding box is created around the individual face. Distance values for each gridpoint in the bounding box are then defined. When the initialized value is greater than or equal to zero, the gridpoint lies outside of the object or on the surface. These gridpoints are marked ALIVE. When the distance value is negative, it lies inside the object, and the gridpoint is marked NARROW_BAND. Figure 1 shows an initialized grid for a simple 2D circle; green points represent the NARROW_BAND, red points represent the set of ALIVE points, and blue points are FAR_AWAY.

A 2D Example of Initialization

Figure 1: A 2D example of initialization