algorithms for triangulations of a 3d point set

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

Upload: didina

Post on 07-Jan-2016

56 views

Category:

Documents


2 download

DESCRIPTION

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. Algorithms for Triangulations of a 3D Point Set. Problem description Tools Methods by parametrisation - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algorithms for Triangulations of a 3D Point Set

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

Page 2: Algorithms for Triangulations of a 3D Point Set

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

Page 3: Algorithms for Triangulations of a 3D Point Set

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

Page 4: Algorithms for Triangulations of a 3D Point Set

A few examples

Page 5: Algorithms for Triangulations of a 3D Point Set

Optional assumptions on the surface

• Manifold, not self-intersecting

• Open boundaries, holes

• „Handles” (genus>0)

• Not oriented

Page 6: Algorithms for Triangulations of a 3D Point Set

Typical properties of measured point clouds

• Uneven density• Density depends on

direction• Missing points (small

holes)• Noise

Page 7: Algorithms for Triangulations of a 3D Point Set

Tools: Voronoi diagram and Delaunay tessellation

•Well defined in higher dimensions•Local, simple geometric criteria•Can be defined in manifolds as well

Page 8: Algorithms for Triangulations of a 3D Point Set

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

Page 9: Algorithms for Triangulations of a 3D Point Set

• Project vertices to a carrier surface

• Triangulate in parameter domain

Methods by projection

Page 10: Algorithms for Triangulations of a 3D Point Set

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

Page 11: Algorithms for Triangulations of a 3D Point Set

Methods based on Delaunay tetrahedralization

• Build 3D Delaunay tessellation first

• Discard large tetrahedra

• Take boundary

• Repair

Boissonat 1984; Veltkamp 1995; Amenta et al 1998

Page 12: Algorithms for Triangulations of a 3D Point Set

• 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

Page 13: Algorithms for Triangulations of a 3D Point Set

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

Page 14: Algorithms for Triangulations of a 3D Point Set

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

Page 15: Algorithms for Triangulations of a 3D Point Set

Generalised Delaunay triangulation on surfaces

• Voronoi diagram and Delaunay triangulation on a surface

Page 16: Algorithms for Triangulations of a 3D Point Set

Advantages of the Delaunay triangulation

• Local criteria to choose triangles

• Simple incremental algorithm

• Result does not depend on the order of points

Page 17: Algorithms for Triangulations of a 3D Point Set

Angle criterion in the plane

• For quadrilateral ABCD, set triangle pair by comparing + with +

• Valid on surfaces with constant curvature

Page 18: Algorithms for Triangulations of a 3D Point Set

Projected angles

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

Page 19: Algorithms for Triangulations of a 3D Point Set

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

Page 20: Algorithms for Triangulations of a 3D Point Set

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

Page 21: Algorithms for Triangulations of a 3D Point Set

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

Page 22: Algorithms for Triangulations of a 3D Point Set

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

Page 23: Algorithms for Triangulations of a 3D Point Set

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

Page 24: Algorithms for Triangulations of a 3D Point Set

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

Page 25: Algorithms for Triangulations of a 3D Point Set

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

Page 26: Algorithms for Triangulations of a 3D Point Set

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

Page 27: Algorithms for Triangulations of a 3D Point Set

2.3. Filling holes

• Generalising a planar method

• Easy to triangulate a convex polygon by comparing angles

Page 28: Algorithms for Triangulations of a 3D Point Set

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.

Page 29: Algorithms for Triangulations of a 3D Point Set

2.4. Insert non-processed points

• Insert vertices which do not belong to any triangles to the closest triangle

Page 30: Algorithms for Triangulations of a 3D Point Set

3.1. Smoothing• Apply a smoothing step to improve quality

of the triangle mesh.

• Principle: edge-swapping

Page 31: Algorithms for Triangulations of a 3D Point Set

Examples

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

Page 32: Algorithms for Triangulations of a 3D Point Set

Examples

• Stanford Bunny. 35947 points, 69451 triangles.

Page 33: Algorithms for Triangulations of a 3D Point Set

Examples

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

Page 34: Algorithms for Triangulations of a 3D Point Set

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

Page 35: Algorithms for Triangulations of a 3D Point Set

Thanks for your attention