In this paper, we present a simple yet efficient algorithm for triangulating a 2D input domain containing a Poisson-disk sampled point set. The proposed algorithm combines a regular grid and a discrete clustering approach to speedup the triangulation. Moreover, our triangulation algorithm is flexible and performs well on more general point sets such as adaptive, non-maximal Poisson-disk sets. The experimental results demonstrate that our algorithm is robust for a wide range of input domains and achieves significant performance improvement compared to the current state-of-the-art approaches.
This is a preview of subscription content, access via your institution.
Buy single article
Instant access to the full article PDF.
Tax calculation will be finalised during checkout.
Subscribe to journal
Immediate online access to all issues from 2019. Subscription will auto renew annually.
Tax calculation will be finalised during checkout.
Barber, C.B., Dobkin, D., Huhdanpaa, H.: The quickhull algorithm for convex hulls. ACM Trans. Math. Softw. 22(4), 469–483 (1996)
Blelloch, G.E., Miller, G.L., Hardwick, J.C., Talmor, D.: Design and implementation of a practical parallel delaunay algorithm. Algorithmica 24(3–4), 243–269 (1999)
CGAL, Computational Geometry Algorithms Library. http://www.cgal.org
Cheng, S.W., Dey, T.K., Levine, J.A.: A practical Delaunay meshing algorithm for a large class of domains. In: Proceedings of the 16th International Meshing Roundtable, pp. 477–494 (2007)
Cheng, S.W., Dey, T.K., Shewchuk, J.R.: Delaunay Mesh Generation. CRC Press, Boca Raton (2012)
Chew, L.P.: Guaranteed-quality triangular meshes. Department of Computer Science Tech Report 89-983, Cornell University (1989)
Chrisochoides, N., Nave, D.: Parallel delaunay mesh generation kernel. Int. J. Numer. Methods Eng. 58(2), 161–176 (2003)
Cohen-Steiner, D., Alliez, P., Desbrun, M.: Variational shape approximation. ACM Trans. Graph. (Proc. SIGGRAPH) 23(3), 905–914 (2004)
Cook, R.L.: Stochastic sampling in computer graphics. ACM Trans. Graph. 5(1), 69–78 (1986)
Dunbar, D., Humphreys, G.: A spatial data structure for fast poisson-disk sample generation. ACM Trans. Graph. (Proc. SIGGRAPH) 25(3), 503–508 (2006)
Ebeida, M.S., Mitchell, S.A., Davidson, A.A., Patney, A., Knupp, P.M., Owens, J.D.: Efficient and good delaunay meshes from random points. Comput. Aided Des. 43(11), 1506–1515 (2011)
Ebeida, M.S., Mitchell, S.A., Patney, A., Davidson, A.A., Owens, J.D.: A simple algorithm for maximal poisson-disk sampling in high dimensions. Comput. Graph. Forum (Proc. EUROGRAPHICS) 31(2), 785–794 (2012)
Ebeida, M.S., Patney, A., Mitchell, S.A., Davidson, A., Knupp, P.M., Owens, J.D.: Efficient maximal poisson-disk sampling. ACM Trans. Graph. (Proc. SIGGRAPH) 30(4), 49:1–49:12 (2011)
Edelsbrunner, H.: Geometry and Topology for Mesh Generation. Cambridge University Press, Cambridge (2001)
Gamito, M.N., Maddock, S.C.: Accurate multidimensional poisson-disk sampling. ACM Trans. Graph. 29(1), 8:1–8:19 (2009)
Hoff III, K.E., Keyser, J., Lin, M., Manocha, D., Culver, T.: Fast computation of generalized Voronoi diagrams using graphics hardware. In: Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’99, pp. 277–286 (1999)
Jones, T.R.: Efficient generation of poisson-disk sampling patterns. J. Graph. Tools 11(2), 27–36 (2006)
Lagae, A., Dutré, P.: A comparison of methods for generating poisson disk distributions. Comput. Graph. Forum 27(1), 114–129 (2008)
Lu, Y., Lien, J.-M., Ghosh, M., Amato, N.M.: Alpha-decomposition of polygons. Comput. Graph. (Proc. SMI) 36(5), 466–476 (2012)
Qi, M., Cao, T.T., Tan, T.S.: Computing 2d constrained delaunay triangulation using the gpu. IEEE Trans. Vis. Comput. Graph. 19(5), 736–748 (2013)
Rong, G., Tan, T.S., Cao, T.T., et al.: Computing two-dimensional Delaunay triangulation using graphics hardware. In: Proceedings of the 2008 Symposium on Interactive 3D Graphics and Games, pp. 89–97. ACM (2008)
Schechter, H., Bridson, R.: Ghost sph for animating water. ACM Trans. Graph. (Proc. SIGGRAPH) 31(4), 61:1–61:8 (2012)
Shewchuk, J.R.: Triangle: engineering a 2d quality mesh generator and delaunay triangulator. In: Lin, M.C., Manocha, D. (eds.) Applied Computational Geometry: Towards Geometric Engineering. Lecture Notes in Computer Science, vol. 1148, pp. 203–222. Springer, Berlin (1996)
Shewchuk, J.R.: Delaunay refinement algorithms for triangular mesh generation. Comput. Geom. Theory Appl. 22(1), 21–74 (2002)
Wei, L.Y.: Parallel poisson disk sampling. ACM Trans. Graph. (Proc. SIGGRAPH) 27(3), 20:1–20:9 (2008)
Wei, L.Y.: Multi-class blue noise sampling. ACM Trans. Graph. (Proc. SIGGRAPH) 29(4), 79:1–79:8 (2010)
White, K.B., Cline, D., Egbert, P.K.: Poisson disk point sets by hierarchical dart throwing. In: Proceedings of the IEEE Symposium on Interactive Ray Tracing, pp. 129–132 (2007)
Yan, D.M., Wonka, P.: Gap processing for adaptive maximal poisson-disk sampling. ACM Trans. Graph. 32(5), 148:1–148:15 (2013)
This research was partially funded by National Natural Science Foundation of China (Nos. 61372168, 61172104, 61331018, and 61271431), the KAUST Visual Computing Center, and the National Science Foundation.
Appendix A: Proof of correctness
In this appendix, we prove that our triangulation algorithm correctly computes a complete triangular mesh. Here, the collection of the cells that belong to one sample \(p\) is called the Voronoi region of \(p\).
Each Voronoi region generated by grid cell clustering is connected and any two regions are non-overlapping.
In the clustering step, we adopt a propagation algorithm equipped with a priority queue on the grid to approximate the Voronoi regions. Each time we choose a grid cell that has the highest priority and assign the label of its nearest sample to it. Note that each grid cell is connected to a neighbor cell having the same label, which is in turn inductively connected to its nearest sample. In addition, each grid cell will be assigned only once and never changes its label. As a result, the propagation algorithm ensures that each Voronoi region is singly connected and any two regions are not overlapping.
No two triangles in the triangulation intersect each other.
Suppose that a triangle \(\triangle abc\) crosses another triangle \(\triangle def\). There are two configurations of the intersection: the two triangles do not share common vertices (Fig. 13a) and share common vertices (Fig. 13b, we take the 1 common vertex as example, the proof for the other cases is straightforward). The former configuration is impossible; otherwise, the Voronoi region of \(d\) must connect to the Voronoi regions of \(a\), \(b\) and \(c\), and this will generate triangles \(\triangle abd\) and \(\triangle adc\) instead of \(\triangle abc\). The latter configuration happens only if some Voronoi regions are not connected, such as the green cells shown in Fig. 13c. This contradicts the fact that all the Voronoi regions are connected (Property 1). Thus, no two triangles in the triangulation intersect each other.
The union of all triangles fully covers the input domain. In other words, there are no holes in the triangulation.
Firstly, our boundary sampling and clustering steps guarantee that for any two consecutive points on the boundary there will be an edge between them. This ensures the output triangulation is tightly confined to the input domain.
Next, we demonstrate that any holes in the interior of the domain will be filled by triangles. Before that, we note all the grid cells have been assigned a label (Property 1). Now suppose there exists a hole, which is a polygon consisting of three or more vertices. We consider the Voronoi regions of any three consecutive vertices \(a\), \(b\), \(c\) in counterclockwise order. There are only two cases. First, if the three Voronoi regions connect to each other, then our algorithm will generate a triangle \(\triangle abc\) and the hole shrinks to a smaller one. Second, if the Voronoi regions of \(a\) and \(c\) are not adjacent, but they both connect to that of \(b\), then there must be another vertex \(d\) whose Voronoi region connects to all of the three Voronoi regions. In such a case, it will generate two triangles \(\triangle abd\) and \(\triangle bcd\) and the hole also shrinks to a smaller one. As such, the hole becomes smaller and smaller by repeatedly processing like this, and finally it will disappear.
Appendix B: Input domains
See Fig. 14.
About this article
Cite this article
Guo, J., Yan, DM., Bao, G. et al. Efficient triangulation of Poisson-disk sampled point sets. Vis Comput 30, 773–785 (2014). https://doi.org/10.1007/s00371-014-0948-z
- Poisson-disk sampling
- Geometric algorithms