3D Distance Field of Hugo Model (17k polygons, Grid Size=73x45x128, Computation Time=4.2s). Distance to the surface is color coded, with distance increasing from red to green to blue. | Medial Axis Transform of Triceratops Model (5.6k polygons, Grid Size=128x56x42, Computation Time=0.79s). The medial surface is color coded by the distance from the boundary. |
We present an algorithm for fast computation of discretized 3D distance fields using graphics hardware. Given a set of primitives and a distance metric, our algorithm computes the distance field for each slice of a uniform spatial grid by rasterizing the distance functions of the primitives. We compute bounds on the spatial extent of the Voronoi region of each primitive and use them cull away many distance functions for each slice. Moreover, we exploit spatial coherence between adjacent slices and perform incremental computations to speed up the computation. The combination of culling and clamping techniques results in rendering relatively few distance functions for each slice and reduces the load on the graphics pipeline. Our algorithm is applicable to all geometric models and does not make any assumptions about connectivity or a manifold representation. We have used our algorithm to compute distance fields of large models composed of tens of thousands of primitives on high resolution grids. Moreover, we demonstrate its application to medial axis evaluation and proximity computations. As compared to earlier approaches, we are able to achieve an order of magnitude improvement in the running time.
Keywords: Distance fields, Voronoi regions, graphics hardware, proximity computations
A. Sud, and D. Manocha Fast Distance
Field Computation Using Graphics Hardware. Tech
Rep. TR03-026, Dept. of Computer Science, Univeristy of North
Carolina, Chapel Hill, NC
Presentation: Presented at Proc. Eurogrpahics 2004, Grenoble, France.
Efficient Computation of a Simplified Medial Axis
Homotopy-Preserving Medial Axis Simplification
Constraint-Based Motion Planning for Virtual Prototyping