Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research...

35
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u. 13-17 H-1111

Transcript of Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research...

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

A few examples

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

• Project vertices to a carrier surface

• Triangulate in parameter domain

Methods by projection

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

Projected angles

• To estimate angle BAC, project B and C to the tangent plane at A

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

Examples

• Giraffe (from METROCAD GmbH, Saarbrücken). 6611 points, 13048 triangles.

Examples

• Stanford Bunny. 35947 points, 69451 triangles.

Examples

• Klein’s bottle (synthetic data). 8853 points, 17695 triangles.

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

Thanks for your attention