Presentation is loading. Please wait.

Presentation is loading. Please wait.

Martin Isenburg UC Berkeley Streaming Meshes Peter Lindstrom LLNL.

Similar presentations


Presentation on theme: "Martin Isenburg UC Berkeley Streaming Meshes Peter Lindstrom LLNL."— Presentation transcript:

1 Martin Isenburg UC Berkeley Streaming Meshes Peter Lindstrom LLNL

2 Indexed Formats

3 # triceratops.obj # # 2832 vertices # 2834 polygons # v 3.661 0.002 -0.738 v 3.719 0.347 -0.833 v 3.977 0.311 -0.725 v 4.077 0.139 -0.654 ⋮ ⋮ ⋮ ⋮ f 2806 2810 2815 2821 f 2797 2801 2811 2805 f 2789 2793 2802 2796 f 2783 2794 2788 ⋮ ⋮ ⋮ ⋮ 2806

4 Original Orderings showing the first 20 to 40 percent of the triangle array

5 Large Meshes 3D scansisosurfaces

6 Large Meshes 3D scansisosurfaces

7 Mesh Pieces 6.1 GB Input Problem 186 million vertices = 2 GB 372 million triangles = 4 GB Indexed Mesh 6 GB

8 Input Problem 186 million vertices = 2 GB 372 million triangles = 4 GB Indexed Mesh 6 GB External Memory Mesh 12 GB

9 Input Problem 186 million vertices = 2 GB 372 million triangles = 4 GB Indexed Mesh Triangle Soup 12 GB 6 GB

10 Papers from 1997 - 2005 Viz 1997, “I/O Optimal Isosurface Extraction”, Chiang, Silva “unfortunately, data sets are often given in formats that contain indices to vertices” SIGGRAPH 2000, “Out-of-Core Simplification”, Lindstrom “operate on a triangle soup in which each triangle” SIAM 2003, “Adaptive Vertex Clustering”, Schaefer, Warren “we also assume that the mesh is in a triangle soup format” GI 2003, “Decimation of Massive Meshes”, Wu, Kobbelt “in this format (dubbed “triangle soup” in [14]) every triangle” TVCG 2003, “External Memory Mesh”, Cignoni et al. “from a triangle soup (list of faces, not indexed)” SIGGRAPH 2004, “Tetra Puzzles”, Cignoni et al., “we assume […] triangle soup, a flat list of triangles” SIGGRAPH 2005, “Far Voxels”, Gobbetti, Marton “[…] we assume […] represented as a triangle soup”

11 Large Model Distribution “Digital Michelangelo Project” Stanford University “3D Gallery” Visual Computing Lab, ISTI

12 Reading Indexed Input one-pass – memory-map the vertex array – rely on paging system of OS – will “fail” on incoherent input [ Chiang & Silva 1997 ] multi-pass – sort triangle array on each index field – replace index with vertex – large disk space and I/O overhead

13 Output Problem Pieces

14 Writing Indexed Output use computer with lots of memory – Stanford used an SGI Onyx2 output piece by piece – concatenate in final pass memory-map the mesh – number of vertices known a priori ? output into two separate files – concatenate in final pass

15 Format Conversion standard indexed formats streaming formats piecesexternalsoup 372 million triangles = 4 GB 186 million vertices = 2 GB possibly not IO-efficient IO-efficient + finalization !!!

16 Streaming Formats

17 physical – water in a pipe – drip coffee digital – streaming formats audio video geometry

18 Two Types of Streaming progressive  non-progressive    

19 Non-Progressive Streaming consume immediately potentially without end keep small buffer delete data if no longer needed small window

20 Streaming Mesh Formats interleave introduce finalize v 1.32 0.12 0.23 v 1.43 0.23 0.92 v 0.91 0.15 0.62 f 1 2 3 finalize 2 v 0.72 0.34 0.35 f 4 1 3 finalize 1 ⋮ ⋮ ⋮ ⋮ vertex # 2 finalized not used by subsequent triangles vertex # 2 introduced not used by preceding triangles active

21 Reading Streaming Formats mesh.open ( “mesh.sma” ) ; while ( event = mesh.read_event() ) switch ( event ) case TRIANGLE: // look-up v[0], v[1], v[2] in hash case VERTEX: // put new vertex in hash case FINALIZE: // remove finalized vertex from hash mesh.close ();

22 span – maximal “time” a vertex stays active  how “long” vertices remain in the buffer do not “bloat” width and span !!! – introduce late and finalize early width – maximal number of active vertices  how many vertices need to be buffered Streaming Mesh Definitions

23 Writing Streaming Formats isosurface – 235 million vertices – 469 million triangles over 8 Gigabyte marching cubes – extract layer by layer – output elements as extracted – finalize vertices of previous layer Richtmeyer-Meshkov instability simulation at LLNL

24 Layout Diagram triangles vertices Coherence in Indexed Meshes Indexed Streaming  visualization of the coherence vertex spans triangle spans  tells us how difficult it is to convert to stream

25 Layout Diagram: Buddha triangles vertices 20 MB

26 Layout Diagram: Dragon triangles vertices 20 MB

27 Layout Diagram: Lucy triangles vertices 508 MB

28 Layout Diagram: St. Matthew triangles vertices 6,760 MB 338 MB 676 MB vertex span

29 Visualizing high vertex spans

30 Topologic and Geometric Sort depth-first breadth-first along one axis z-order

31 Output Qualities low width & low span – sweep-line – FIFO (queue) low width, high span – block by block – FILO (stack) high width, high span – random access

32 Streaming with minimal width graph theory – minimization is NP hard – heuristic: “spectral sequencing”

33 Stream-Processing

34 unprocessed region Stream-Processing Model in-core buffer processed region

35 Stream-Processing Tasks tasks that process mesh elements one at a time – e.g. for each triangle t … tasks that only require access to local neighbors – e.g. for each triangle t of vertex v … tasks that are order independent – e.g. collapse edges shorter than 

36 Streaming Simplification “A Stream Algorithm for … ” [ Wu & Kobbelt ‘03 ] “Large Mesh Simplification …” [ Isenburg et al. ‘03 ]

37 Performance “External Memory Management and Simplification of Huge Meshes” [ Cignoni et al. ‘03 ] 12 GB construct 11 hrs simplify 80 MB 14 hrs Octree-based External Memory Mesh (figure courtesy of Paolo Cignoni) 15 MB 45 min compared to:

38 Streaming Compression “Streaming Compression of Triangle Meshes” [ Isenburg, Lindstrom & Snoeyink ‘05 ]

39 Performance “Out-of-Core Compression of Gigantic Polygon Meshes” [ Isenburg & Gumhold ‘03 ] 11 GB construct 7 hrs compress 384 MB 4 hrs compared to: 12 MB 28 min 344 MB392 MB file size Out-of-Core Mesh

40 Pipelined Streaming

41 P1 P2 P3 P1 P2 P3 P1 P2 P3 pipelined stream-processing Pipelined Stream-Processing conventional processing P1 P2 P3 – super-linear speedup – minimal end-to-end I/O delay – optimal disk caching

42 Demo Pipeline 256 regular volume grid smextract | smclean | smsimp | smcompress P2 P3 P1 P4 grid.raw mesh.smc v 1.32 0.12 0.23 v 1.43 0.23 0.92 v 0.91 0.15 0.62 f 1 2 3 finalized 2 v 0.72 0.34 0.35 f 4 1 3 finalized 1 ⋮ ⋮ ⋮ ⋮

43 Conclusion

44 Indexed Formats do not Scale 9 GB 1 MB

45 Small Change … Big Benefits Standard FormatStreaming Formats

46 Current / Future Work more stream modules – streaming re-meshing – streaming smoothing – streaming feature extraction – streaming stripification, … stream other geometry data – volumetric meshes / grids – points in 2D and 3D

47 Streaming Volume Meshes format – like surface mesh format – straight-forward applications – streaming iso-surface extraction – streaming simplification – streaming compression – streaming mesh refinement, …

48 Volume Mesh Compression torso fighter “Tetrahedral Mesh Compression with the Cut-Border Machine” [ Gumhold et al. ‘99 ] 140 MB 662 sec 6 MB 12 sec 1.813.56 compress bits / tet compared to:

49 Layouts of Volume Meshes torso.off v = 168,930tet = 1,082,723 (19 MB) fighter.off v = 256,614tet = 1,403,504 (25 MB) rbl.off v = 730,273tet = 3,886,728 (70 MB)

50 Streaming Points format – need “spatial finalization” e.g. no future points in this “space” applications – streaming surface reconstruction – streaming re-sampling – streaming smooting – streaming compression, …

51 Streaming Delaunay 450 MB 250 sec 4 MB 125 sec 2D Delaunay triangulate 6 million terrain points 2D Delaunay 3D Delaunay

52 Acknowledgements meshes – Stanford University – Cyberware support – NSF grant 0429901 "Collaborative Research: Fundamentals and Algorithms for Streaming Meshes." – U.S. DOE / LLNL # W-7405-Eng-48

53 Which models have such layouts? Thank You demo & API : http://www.cs.unc.edu/~isenburg/sm Why? Read the paper!


Download ppt "Martin Isenburg UC Berkeley Streaming Meshes Peter Lindstrom LLNL."

Similar presentations


Ads by Google