Presentation is loading. Please wait.

Presentation is loading. Please wait.

Streaming Computation of Delaunay Triangulations Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Yuanxin Liu UNC Chapel Hill Martin Isenburg.

Similar presentations


Presentation on theme: "Streaming Computation of Delaunay Triangulations Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Yuanxin Liu UNC Chapel Hill Martin Isenburg."— Presentation transcript:

1 Streaming Computation of Delaunay Triangulations Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Yuanxin Liu UNC Chapel Hill Martin Isenburg UC Berkeley

2 The 2D Delaunay Triangulation a triangulation in which every triangle has an empty circumscribing circle important tool for interpolating points – graphics, GIS, finite elements, …

3 Billions of Points courtesy of www.ncfloodmaps.com 0.5 billion points 11 GB Neuse-River Basin Elevation map Contour map

4 Streaming Computation output to diskinput from disk small buffer in main memory restrict computations to data in buffer – process data in the order it arrives – output results early and reuse the memory – do not use external memory finalization tags external memory small buffer in main memory another small buffer finalization tags

5 Spatial Finalization inject tags into the point stream that inform when grid cells are free of future points finalized region future points only arrive in these cells use tags to certify triangles as being part of the final triangulation and output them

6 Streaming Delaunay Spatial FinalizationIncremental Triangulation finalization tags 0.5 Billion Points 11 GB  1.0 Billion Triangles 17 GB on a laptop  in 48 minutes  using 60 + 10 MB

7 pipe mesh only store isolines extract isolines and discard mesh Immediate Processing of Output

8 Features of Streaming Delaunay efficient – 10 × faster than previous method extremely scalable – billions of terrain points on a laptop streaming output – process triangulation without storing it only uniform points distributions – can tetrahedralize 3D points – but not when point are along a surface

9 Related Work

10 Streaming Geometry Processing Streaming Meshes – topological finalization of vertices [ Isenburg & Lindstrom ‘05 ] Stream-Processing Points – globally sort points along a sweep line – derive neighbors for smoothing, normals... [ Pajarola ‘05 ] Streaming Simplification Streaming Compression

11 Delaunay Triangulators Sweep line – pretty complex implementation – points along sweep line  global sort Divide and Conquer – fastest in practice (in main memory) – partition points recursively  global sort Incremental Point Insertion – usually fast (except for “bad” orders) – can process points in any order

12 locate triangle enclosing the point Incremental Point Insertion find and remove all triangles with non- empty circumcircles triangulate by connecting new point [ Lawson ’77 ] [ Bowyer ’81 ] [ Watson ’81 ]

13 Triangulating Lots of Points buy more main memory – need 36 GB for 0.5 billion points use less memory – compress the data structures ( ratio 1:3 ) [ Blandford et al. ‘05 ] store data to external memory – Incremental Point Insertion BRIO order, virtual memory paging of OS [ Amenta et al. ‘03 ] [ Arge et al. ‘05 ] – Divide and Conquer algorithm controls temporary storage to disk

14 External Memory Methods sorted points output mesh triangulation data structure in external memory

15 Our Streaming Approach finalized points output mesh output isolines extract

16 Streaming Delaunay Pipeline spfinalize -i points.raw -ospb | spdelaunay –ispb –o tin.smb enhances points with spatial finalization uses spatial finalization to certify triangles as final

17 The Finalizer

18 Spatial Finalization of Points  compute bounding box

19 2 11 3 4 5 5 1 2 6 1 8 4 7 5 5 7 1 7 4 1 9 7 6 4 Spatial Finalization of Points 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 5 8 79 8 7 6  compute bounding box  create finalization grid – count number of points per cell

20 5 8 4 7 9 7 6 4 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 5 8 79 8 7 6 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

21 1 7 4 7 9 7 3 4 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 5 8 79 8 5 6 0 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

22 0 2 4 5 9 6 0 4 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 5 8 79 8 5 6 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

23 0 0 3 3 9 3 0 4 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 5 8 79 8 0 4 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

24 07 0 4 8 9 7 9 8 5 4 8 2 7 7 8 8 6 77 73 9 7 88 9 6 6 2 7 2 7 3 7 1 7 21 1 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

25 02 0 4 8 9 7 9 8 5 4 8 2 4 5 1 6 5 76 88 8 6 6 2 7 2 3 1 6 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

26 02 0 4 3 2 9 7 4 1 7 2 1 23 3 5 5 2 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

27 02 0 4 1 Spatial Finalization of Points  compute bounding box  create finalization grid – count number of points per cell  output finalized points – buffer per grid cell – if full, output points in one randomized chunk followed by finalization tag

28 Spatial Coherence

29

30 Exploit the Existing Coherence raw point stream finalized point stream document with finalization tags enhance by releasing chunks of points  benefits of global sort, but cheaper

31 Exploit the Existing Coherence document with finalization tags enhance by releasing chunks of points  benefits of global sort, but cheaper raw point stream finalized point stream

32 Unfinalized Region as Quadtree as tags finalize cell after cell, maintain remaining cells in adaptive quadtree  used for efficient overlap tests by the triangulator finalization tags

33 The Triangulator

34 Modified Incremental Delaunay insert points when reading a finalization tag – find certified triangles – output them to disk or pipe – deallocate data structure

35 Modified Incremental Delaunay insert points when reading a finalization tag – find certified triangles – output them to disk or pipe – deallocate data structure

36 do circumcircles lie completely in finalized region? Finding Certified Triangles efficient testing – avoid tests – try cheaper test link overlapping circles to cells  overlap test

37 Modified Point Location usual strategy – walk current triangulation starting at the newest triangle if we fail – restart from a triangle linked with the cell – brute force

38 Results

39 The Neuse-River Basin 6 min 36 min 52 MB 2,249,268 points 8 MB 512 x 512 grid 10 MB 60,388 triangles 0.5 Billion Points 11 GB  1.0 Billion Triangles 17 GB on a laptop  in 48 minutes  using 60 + 10 MB

40 Scalability: 3 x 3 Tiling of Neuse 4.5 Billion Points 101 GB  9.0 Billion Triangles 151 GB on a laptop  under 7 hours  using 152 + 11 MB

41 Comparisons to best out-of-core method – over 10 times faster on 0.5 billion points – laptop + 2 disks desktop & 4 disks – 0 scratch space50 GB scratch space [ Arge et al. ‘05 ] [ Shewchuk ‘96 ] to best in-core method – 30 - 60 % faster on 6 - 13 million points – despite all our extra overlap test? why? interleaving of computations and I/O better cache use due to smaller footprint

42 Discussion

43 Streaming Delaunay spfinalize -i points.raw -ospb | spdelaunay –ispb –o tin.smb enhances points with spatial finalization uses spatial finalization to certify triangles as final

44 Geometry Processing Pipelines isoline extraction raster DEM generation

45 no temporary storage to disk – output results early & reuse memory Spatial Finalization Tags order of magnitude faster than methods that use external memory no global sort – don’t fight the data, use existing coherence interleave input & computation & output – 100% CPU usage while triangulating

46 Streaming Delaunay in 3D

47 uniform distributed points – works, but bigger footprint – example result: 14 GB mesh, 2:40 hrs, 795 MB surface scans – does not work – big circumspheres intersect many cells – most tetrahedra cannot be certified early

48 Acknowledgements data – Kevin Yi, Duke support – NSF grants 0429901 + 0430065 "Collaborative Research: Fundamentals and Algorithms for Streaming Meshes." – NGA award HM1582-05-2-0003 – Alfred P. Sloan Research Fellowship

49 Thank You executables, video, slides, paper, and soon also source code: http://www.cs.unc.edu/~isenburg/sd/

50 Thank You executables, video, slides, paper, and soon also source code: http://www.cs.unc.edu/~isenburg/sd/

51 Future / Current Work Finalize without Bounding Box – eliminate 1 st pass of finalizer Streaming Constrained Delaunay – crucial in GIS applications Triangulate 3D surface points – data-dependent spatial finalization Spatial Finalization for other algorithm – surface reconstruction, …

52 Sprinkle Points without sprinkle points with sprinkle points add global randomness to the point insertion order


Download ppt "Streaming Computation of Delaunay Triangulations Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Yuanxin Liu UNC Chapel Hill Martin Isenburg."

Similar presentations


Ads by Google