I understand how to use delaunay triangulation in 2d points?
But how to use delaunay triangulation in 3d points?
I mean I want to generate surface triangle mesh not tetrahedron mesh, so how can I use delaunay triangulation to generate 3d surface mesh?
Please give me some hint.
-
You mean convex hulls? – meowgoesthedog Sep 04 '18 at 15:15
-
If you don't just want the convex hull, you need to decide what tetrahedra are inside and outside. Take a look at [PowerCrust](http://web.cs.ucdavis.edu/~amenta/pubs/sm.pdf) and related methods. – Nico Schertler Sep 04 '18 at 15:48
-
What about using some CGAL shape reconstruction method? https://doc.cgal.org/latest/Manual/packages.html#PartReconstruction – Monique Teillaud Sep 05 '18 at 14:39
3 Answers
To triangulate a 3D point cloud you need the BallPivoting algorithm: https://vgc.poly.edu/~csilva/papers/tvcg99.pdf

- 8,422
- 19
- 69
- 134
-
Thanks very much! I want to know how to perform 3D Delaunay triangulations?I mean the given points set is x,y,z not x,y – Damons Sep 09 '18 at 12:52
There are two meanings of a 3D triangulation. One is when the whole space is filled, likely with tetrahedra (hexahedra and others may be also used). The other is called 2.5D, typically for terrains where the z
is a property as the color or whatever, which doesn't influence the resulting triangulation.
If you use Shewchuk's triangle you can get the result.
If you are curious enough, you'll be able to select those tetrahedra that have one face not shared with other tetrahedra. These are the same tetrahedra "joined" with infinite/enclosing points. Extract those faces and you have your 3D surface triangulation.
If you want "direct" surface reconstruction then you undoubtly need to know in advance which vertices among the total given are in the surface. If you don't know them, perhaps the "maxima method" allows to find them out.
One your points cloud consists only of surface vertices, the triangulation method can be any one you like, from (adapted) incremental Chew's, Ruppert, etc to "ball-pivoting" method and "marching cubes" method.

- 7,031
- 1
- 17
- 33
-
Thanks! what I mean is how can I perform 3d Delaunay triangulation(not tetrahedra)?for example, you can triangulate in parameter space and map the triangle in parameter space back to the space where vertices's be – Damons Sep 09 '18 at 12:50
-
@Damons The 3D Delaunay condition is that not 4 points lie in the same sphere. I'm afraid this geometric condition doesn't survive the parameter-xyz mapping. Also, is your parameter space a 2D space? If it's a 3D space, how can you avoid tetrahedra? – Ripi2 Sep 10 '18 at 16:54
-
So the triangulation of a closed 3D edge loop of only surface vertices shall use Ruppert or ball-pivoting, etc? – June Wang Nov 01 '19 at 06:52
The Delaunay tetrahedrization doesn't fit for two reasons
it fills a volume with tetrahedra, instead of defining a surface,
it fills the convex hull of the points, which is probably not what you expect.
To address the second problem, you need to accept concavities, and this implies that you need to specify a reference scale that tells what level of detail you want. This leads to the concept of Alpha Shapes, which are obtained as a subset of the faces.
Lookup "Alpha Shape" in an image search engine.