Fast Computation of Generalized Voronoi Diagrams Using Graphics Hardware Kenneth E. Hoff III, Tim Culver, John Keyser, Ming Lin, and Dinesh Manocha University of North Carolina at Chapel Hill SIGGRAPH ‘99
What is a Voronoi Diagram? Given a collection of geometric primitives, it is a subdivision of space into cells such that all points in a cell are closer to one primitive than to any other Voronoi Site Voronoi Region
Ordinary Point sites Nearest Euclidean distance Generalized Higher-order site geometry Varying distance metrics Weighted Distances Higher-order Sites
Why Should We Compute Them? It is a fundamental concept DescartesAstronomy1644“Heavens” DirichletMath 1850Dirichlet tesselation VoronoiMath1908Voronoi diagram BoldyrevGeology1909area of influence polygons ThiessenMeteorology1911Theissen polygons NiggliCrystallography1927domains of action Wigner & SeitzPhysics1933Wigner-Seitz regions Frank & CasperPhysics1958atom domains BrownEcology1965areas potentially available MeadEcology1966plant polygons Hoofd et al.Anatomy1985capillary domains IckeAstronomy1987Voronoi diagram
Why Should We Compute Them? Useful in a wide variety of applications Collision Detection Surface Reconstruction Robot Motion Planning Non-Photorealistic Rendering Surface Simplification Mesh Generation Shape Analysis
What Makes Them Useful? “Ultimate” Proximity Information Nearest SiteMaximally Clear Path Density EstimationNearest Neighbors
Outline Generalized Voronoi Diagram Computation –Exact and Approximate Algorithms –Previous Work –Our Goal Basic Idea Our Approach Basic Queries Applications Conclusion
Generalized Voronoi Diagram Computation “Exact” Algorithms Computes Analytic Boundary Previous work Lee82 Chiang92 Okabe92 Dutta93 Milenkovic93 Hoffmann94 Sherbrooke95 Held97 Culver99
Previous Work: “Exact” Algorithms Compute analytic boundaries but... Boundaries composed of high-degree curves and surfaces and their intersections Complex and difficult to implement Robustness and accuracy problems
Generalized Voronoi Diagram Computation Analytic BoundaryDiscretize SitesDiscretize Space Exact Algorithm Approximate Algorithms Previous work Lavender92, Sheehy95, Vleugels 95 & 96, Teichmann97
Previous Work: Approximate Algorithms Provide practical solutions but... Difficult to error-bound Restricted to static geometry Relatively slow
Our Goal Simple to understand and implement Easily generalized Efficient and practical Approximate generalized Voronoi diagram computation that is: with all sources of error fully enumerated
Outline Generalized Voronoi Diagram Computation Basic Idea –Brute-force Algorithm –Cone Drawing –Graphics Hardware Acceleration Our Approach Basic Queries Applications Conclusion
Brute-force Algorithm Record ID of the closest site to each sample point Coarse point-sampling result Finer point-sampling result
Cone Drawing To visualize Voronoi diagram for points in 2D… Perspective, 3/4 viewParallel, top view Dirichlet 1850 & Voronoi 1908
Graphics Hardware Acceleration Our 2-part discrete Voronoi diagram representation Distance Depth Buffer Site IDs Color Buffer Simply rasterize the cones using graphics hardware Haeberli90, Woo97
Outline Generalized Voronoi Diagram Computation Basic Idea Our Approach –Meshing Distance Function –Generalizations –3D –Sources of Error Basic Queries Applications Conclusion
The Distance Function PointLineTriangle Evaluate distance at each pixel for all sites Accelerate using graphics hardware
Approximating the Distance Function Avoid per-pixel distance evaluation Point-sample the distance function Reconstruct by rendering polygonal mesh PointLineTriangle
The Error Bound Error bound is determined by the pixel resolution farthest distance a point can be from a pixel sample point Close-up of pixel grid
Meshing the Distance Function Shape of distance function for a 2D point is a cone Need a bounded-error tessellation of the cone
Shape of Distance Functions Sweep apex of cone along higher-order site to obtain the shape of the distance function
Example Distance Meshes
Curves Tessellate curve into a polyline Tessellation error is added to meshing error
Weighted and Farthest Distance NearestFarthestWeighted
3D Voronoi Diagrams Graphics hardware can generate one 2D slice at a time Point sites
3D Voronoi Diagrams Slices of the distance function for a 3D point site Distance meshes used to approximate slices
3D Voronoi Diagrams PointLine segmentTriangle 1 sheet of a hyperboloid Elliptical conePlane
3D Voronoi Diagrams Points and a trianglePolygonal model
Sources of Error Distance Error –Meshing –Tessellation –Hardware Precision Combinatorial Error –Distance –Pixel Resolution –Z-buffer Precision
Adaptive Resolution Zoom in to reduce resolution error...
Outline Generalized Voronoi Diagram Computation Basic Idea Our Approach Basic Queries –Nearest Site –Boundary Finding –Nearest-Neighbor Finding –Maximally Clear Point Applications Conclusion
Nearest Site Table lookup on query point
Boundary Finding Isosurface extraction : boundary walking Offset difference image to mark boundary pixels
Nearest-Neighbor Finding Which colors touch in the image? Walk the boundaries (like boundary finding)
Maximally Clear Point Point with the largest depth value (greatest distance)
Outline Generalized Voronoi Diagram Computation Basic Idea Our Approach Basic Operations Applications –Motion Planning –Medial Axis Computation –Dynamic Mosaics Conclusion
Real-time Motion Planning : Static Scene Plan motion of piano (arrow) through 100K triangle model Distance buffer of floorplan used as potential field
Real-time Motion Planning : Dynamic Scene Plan motion of music stand around moving furniture Distance buffer of floor-plan used as potential field
Medial Axis Computation Per-feature Voronoi diagram Per-feature-color distance mesh Internal Voronoi diagram
Dynamic Mosaics Static mosaics by Paul Haeberli in SIGGRAPH ‘ moving points Source image Dynamic Mosaic Tiling
Outline Generalized Voronoi Diagram Computation Basic Idea Our Approach Basic Operations Applications Conclusion
Meshing Distance Functions Graphics Hardware Acceleration Brute-force Approach Fast and Simple, Approximate Generalized Voronoi Diagrams Bounded Error +
Future Work Improve distance meshing for 3D primitives More applications –Motion planning with more degrees of freedom –Accelerate exact Voronoi diagram computation –Surface reconstruction –Medical imaging: segmentation and registration –Finite-element mesh generation
Acknowledgements Sarah Hoff Chris Weigle Stefan Gottschalk Mark Peercy UNC Computer Science SGI Advanced Graphics Berkeley Walkthrough Group
Acknowledgements Army Research Office National Institute of Health National Science Foundation Office of Naval Research Intel
Live Demo...