algorithms for triangulations of a 3d point set géza kós computer and automation research...
TRANSCRIPT
Algorithms for Triangulations of a 3D Point Set
Géza KósComputer and Automation Research Institute
Hungarian Academy of SciencesBudapest, Kende u. 13-17 H-1111
Algorithms for Triangulations of a 3D Point Set
• Problem description
• Tools
• Methods by parametrisation
• Methods based on Delaunay tessellation
• Methods using implicit functions
• Delaunay triangulation in surface metrics
Problem description
• Unorganised set of points in the 3D space
• Assumed to be on a 2D surface.
• Reconstruct surface by creating a triangulation– Interpolation: Use only given points as vertices– Aproximation: Allowed to use artificial
vertices
• Related problem: reconstructing curves in 2D or 3D
Optional assumptions on the surface
• Manifold, not self-intersecting
• Open boundaries, holes
• „Handles” (genus>0)
• Not oriented
Typical properties of measured point clouds
• Uneven density• Density depends on
direction• Missing points (small
holes)• Noise
Tools: Voronoi diagram and Delaunay tessellation
•Well defined in higher dimensions•Local, simple geometric criteria•Can be defined in manifolds as well
Tools: Extraction of implicit functions by marching cubes
• Marching cubes– Divide space into cubes– Compute value of the
function at the lattice points– Create vertices on edges if
signs opposite– Create triangles connecting
the vertices– Define rules to create
triangles
• Marching tetrahedra
Methods by convex combinations
• Find boundary of the surface
• Map boundary to a convex polygon in the plane
• Map interior vertices such that each map is an average of its neighbours
• Triangulate in plane
• Works for simply connected surfaces
Floater 2000; Hormann & Floater 2002
Methods based on Delaunay tetrahedralization
• Build 3D Delaunay tessellation first
• Discard large tetrahedra
• Take boundary
• Repair
Boissonat 1984; Veltkamp 1995; Amenta et al 1998
• Alpha shape: a subset of the edges, triangles and tetrahedra of Delaunay tetrahedralization
• Size is measured by radius of smallest empty sphere
Methods based on alpha-shapesBajaj et al 1996; Guo et al 1997; Bernardini 1997
Methods extracting implicit functions
• Implicit function to estimate signed distance
• Valid for „close” points in the space
• Signed distance from tangent plane at closest vertex
• Requires oriented normal vectors; minimal spanning tree (MST)
• Needs postprocessing
Hoppe 1992
Reconstructing Delaunay triangulation in surface metrics
• Generalised Delaunay triangulation
• No artificial points
• Reconstruct arbitrary 3D datasets with uneven distribution – Not projectable– Handles holes and open boundaries– Not oriented surfaces
G. Kós 1998
Generalised Delaunay triangulation on surfaces
• Voronoi diagram and Delaunay triangulation on a surface
Advantages of the Delaunay triangulation
• Local criteria to choose triangles
• Simple incremental algorithm
• Result does not depend on the order of points
Angle criterion in the plane
• For quadrilateral ABCD, set triangle pair by comparing + with +
• Valid on surfaces with constant curvature
Overview of the algorithm• 1. Pre-processing
– 1.1. Cluster points, remove multiple ones
– 1.2. Build neighbourhood graph
– 1.3. Estimate local density and maximum triangle size
– 1.4. Compute normal vectors
• 2. Main steps– 2.1. Create candidate triangles around each point
– 2.2. Select consistent triangles
– 2.3. Fill holes
– 2.4. Insert non-processed points
• 3. Post-processing– 3.1. Smooth
1.1. Clustering points• Put vertices into clusters (octtree)
• Remove coincident points
1.2. Build neighbourhood graph• Connect each point
with some close ones• Call vertices
neighbours if connected
1.3. Compute local density• Estimate density of point-set at each point
• Compute local maximum triangle size
1.4. Compute normal vectors
• Compute surface normal at each vertex
2.1. Create candidate triangles around each vertex
• Around each vertex P, reconstruct the triangles of the Delaunay triangulation
• Start with single vertex P
• Add new vertices one by one, i.e. create and delete triangles according to the angle criterion
• Allocate buffer to record vertices which are candidates to be a vertex of a triangle
2.1. Inserting a new point• Projection of the existing points B1, …, Bk define several
angle domains in the tangent plane at P.
• To add a new point C, find the angle PBiBi+1 containing C.
• Test distance of C and the angle criterion for quadrilateral PBiCBi+1. If test holds, insert C.
• Apply another tests to decide whether to keep or delete Bi and Bi+1
2.1. Flowchart of creating triangles
Start StopMark neighbours
of P. Put themto the buffer
Remove the closestpoint from the
buffer, call it C.
Bufferempty?
Insert C to the triangulation?
Insert C andchange triangles
Take unmarked neighboursof C, mark them
and put them to the buffer.
yes
no
yes
no
2.2. Select consistent triangles
• Candidate triangles may contradict to each other
• Select an appropriate subset of triangles
– Discard too large triangles
– Mesh must remain manifold
– Mesh must remain oriented
– Triangles must not overlap
2.2. (cont’d) Sort the triangles before registration
• Some triangles are better than others– Each triangle has votes from the vertices– Compute smoothness errors from normal
vectors at vertices
• Sort triangles by these two properties
2.3. Filling holes
• Generalising a planar method
• Easy to triangulate a convex polygon by comparing angles
2.3. (cont’d) Filling holes in 3D• Hole P1P2…Pn bounded by triangles P1P2Q1,
P2P3Q2, …, PnP1Qn, shortest edge P1P2
• Set 2<k<n
– Angle between triangles P1P2Q1, P1P2Pk must be greater than 90 degrees, if possible
– Angle P1PkP2 must be maximal.
2.4. Insert non-processed points
• Insert vertices which do not belong to any triangles to the closest triangle
3.1. Smoothing• Apply a smoothing step to improve quality
of the triangle mesh.
• Principle: edge-swapping
Some problems• Find an efficient algorithm to build 3D
Delaunay tessellation;
• Handle sharp features (e.g. dihedral angles <90 degrees)
• Find oriented normal vectors for sample points
• Construct subdivision schemes to extract implicit surfaces