1 / 35

Algorithms for Triangulations of a 3D Point Set

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

didina
Download Presentation

Algorithms for Triangulations of a 3D Point Set

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. A few examples

  5. Optional assumptions on the surface • Manifold, not self-intersecting • Open boundaries, holes • „Handles” (genus>0) • Not oriented

  6. Typical properties of measured point clouds • Uneven density • Density depends on direction • Missing points (small holes) • Noise

  7. Tools: Voronoi diagram and Delaunay tessellation • Well defined in higher dimensions • Local, simple geometric criteria • Can be defined in manifolds as well

  8. 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

  9. Methods by projection • Project vertices to a carrier surface • Triangulate in parameter domain

  10. Methods by convex combinations Floater 2000; Hormann & Floater 2002 • 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

  11. Methods based on Delaunay tetrahedralization Boissonat 1984; Veltkamp 1995; Amenta et al 1998 • Build 3D Delaunay tessellation first • Discard large tetrahedra • Take boundary • Repair

  12. Methods based on alpha-shapes Bajaj et al 1996; Guo et al 1997; Bernardini 1997 • Alpha shape: a subset of the edges, triangles and tetrahedra of Delaunay tetrahedralization • Size is measured by radius of smallest empty sphere

  13. Methods extracting implicit functions Hoppe 1992 • 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

  14. Reconstructing Delaunay triangulation in surface metrics G. Kós 1998 • Generalised Delaunay triangulation • No artificial points • Reconstruct arbitrary 3D datasets with uneven distribution • Not projectable • Handles holes and open boundaries • Not oriented surfaces

  15. Generalised Delaunay triangulation on surfaces • Voronoi diagram and Delaunay triangulation on a surface

  16. Advantages of the Delaunay triangulation • Local criteria to choose triangles • Simple incremental algorithm • Result does not depend on the order of points

  17. Angle criterion in the plane • For quadrilateral ABCD, set triangle pair by comparing a+g with b+d • Valid on surfaces with constant curvature

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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 2.1. Flowchart of creating triangles Mark neighbours of P. Put them to the buffer Buffer empty? yes Stop Start no Remove the closest point from the buffer, call it C. Take unmarked neighbours of C, mark them and put them to the buffer. no Insert C to the triangulation? Insert C and change triangles yes

  25. 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

  26. 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

  27. 2.3. Filling holes • Generalising a planar method • Easy to triangulate a convex polygon by comparing angles

  28. 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.

  29. 2.4. Insert non-processed points • Insert vertices which do not belong to any triangles to the closest triangle

  30. 3.1. Smoothing • Apply a smoothing step to improve quality of the triangle mesh. • Principle: edge-swapping

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

  32. Examples • Stanford Bunny. 35947 points, 69451 triangles.

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

  34. 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

  35. Thanks for your attention

More Related