Efficient triangulation of Poisson-disk sampled point sets


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.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13


  1. 1.

    Barber, C.B., Dobkin, D., Huhdanpaa, H.: The quickhull algorithm for convex hulls. ACM Trans. Math. Softw. 22(4), 469–483 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  2. 2.

    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)

    Article  MATH  MathSciNet  Google Scholar 

  3. 3.

    CGAL, Computational Geometry Algorithms Library. http://www.cgal.org

  4. 4.

    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)

  5. 5.

    Cheng, S.W., Dey, T.K., Shewchuk, J.R.: Delaunay Mesh Generation. CRC Press, Boca Raton (2012)

    Google Scholar 

  6. 6.

    Chew, L.P.: Guaranteed-quality triangular meshes. Department of Computer Science Tech Report 89-983, Cornell University (1989)

  7. 7.

    Chrisochoides, N., Nave, D.: Parallel delaunay mesh generation kernel. Int. J. Numer. Methods Eng. 58(2), 161–176 (2003)

    Article  MATH  Google Scholar 

  8. 8.

    Cohen-Steiner, D., Alliez, P., Desbrun, M.: Variational shape approximation. ACM Trans. Graph. (Proc. SIGGRAPH) 23(3), 905–914 (2004)

    Article  Google Scholar 

  9. 9.

    Cook, R.L.: Stochastic sampling in computer graphics. ACM Trans. Graph. 5(1), 69–78 (1986)

    Google Scholar 

  10. 10.

    Dunbar, D., Humphreys, G.: A spatial data structure for fast poisson-disk sample generation. ACM Trans. Graph. (Proc. SIGGRAPH) 25(3), 503–508 (2006)

    Article  Google Scholar 

  11. 11.

    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)

    Article  Google Scholar 

  12. 12.

    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)

    Article  Google Scholar 

  13. 13.

    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)

    Article  Google Scholar 

  14. 14.

    Edelsbrunner, H.: Geometry and Topology for Mesh Generation. Cambridge University Press, Cambridge (2001)

    Google Scholar 

  15. 15.

    Gamito, M.N., Maddock, S.C.: Accurate multidimensional poisson-disk sampling. ACM Trans. Graph. 29(1), 8:1–8:19 (2009)

    Google Scholar 

  16. 16.

    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)

  17. 17.

    Jones, T.R.: Efficient generation of poisson-disk sampling patterns. J. Graph. Tools 11(2), 27–36 (2006)

    Google Scholar 

  18. 18.

    Lagae, A., Dutré, P.: A comparison of methods for generating poisson disk distributions. Comput. Graph. Forum 27(1), 114–129 (2008)

    Google Scholar 

  19. 19.

    Lu, Y., Lien, J.-M., Ghosh, M., Amato, N.M.: Alpha-decomposition of polygons. Comput. Graph. (Proc. SMI) 36(5), 466–476 (2012)

  20. 20.

    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)

    Article  Google Scholar 

  21. 21.

    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)

  22. 22.

    Schechter, H., Bridson, R.: Ghost sph for animating water. ACM Trans. Graph. (Proc. SIGGRAPH) 31(4), 61:1–61:8 (2012)

    Article  Google Scholar 

  23. 23.

    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)

    Google Scholar 

  24. 24.

    Shewchuk, J.R.: Delaunay refinement algorithms for triangular mesh generation. Comput. Geom. Theory Appl. 22(1), 21–74 (2002)

    MATH  MathSciNet  Google Scholar 

  25. 25.

    Wei, L.Y.: Parallel poisson disk sampling. ACM Trans. Graph. (Proc. SIGGRAPH) 27(3), 20:1–20:9 (2008)

    Google Scholar 

  26. 26.

    Wei, L.Y.: Multi-class blue noise sampling. ACM Trans. Graph. (Proc. SIGGRAPH) 29(4), 79:1–79:8 (2010)

    Google Scholar 

  27. 27.

    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)

  28. 28.

    Yan, D.M., Wonka, P.: Gap processing for adaptive maximal poisson-disk sampling. ACM Trans. Graph. 32(5), 148:1–148:15 (2013)

    Google Scholar 

Download references


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.

Author information



Corresponding authors

Correspondence to Dong-Ming Yan or Xiaopeng Zhang.


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\).

Property 1

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.

Property 2

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.

Property 3

The union of all triangles fully covers the input domain. In other words, there are no holes in the triangulation.

Fig. 14

Input domains we used to test our algorithm


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.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

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

Download citation


  • Triangulation
  • Poisson-disk sampling
  • Geometric algorithms