Presentation is loading. Please wait.

Presentation is loading. Please wait.

Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen.

Similar presentations


Presentation on theme: "Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen."— Presentation transcript:

1 Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen

2 Gigantic Meshes 3D scansCAD modelsisosurfaces

3 Gigantic Meshes 3D scansCAD modelsisosurfaces

4 Gigantic Meshes 3D scansCAD modelsisosurfaces

5 St. Matthew Statue slows down: transmission storage loading processing over 6 Gigabyte 186 million vertices 372 million triangles cut into 12 pieces

6 Mesh Compression many efficient schemes, but... – mesh has to fit into memory – 2/4 GB limit on common PCs “Geometry Compression” [ Deering ‘95 ] active research area since ‘95 “Compressing Large Polygonal Models”[ Ho et al. ‘01 ] cut mesh into pieces, compress separately, stitch back together

7 Mesh De-Compression but decompress on desktop PC – single pass – small memory foot-print use 64-bit super computer eliminates number of schemes “Topological Surgery”[ Taubin & Rossignac ‘98 ] “Edgebreaker”[ Rossignac ‘99 ] “Face Fixer”[ Isenburg & Snoeyink ‘00 ]   

8 Contributions

9 Compressor – minimal access

10 Contributions Compressor – minimal access Out - of - Core Mesh – transparent – caching clusters

11 Contributions Compressor – minimal access Out - of - Core Mesh – transparent – caching clusters Compact Format – small footprint – streaming

12 Overview Related Work Out-of-Core Mesh Compression Scheme Processing Sequences Conclusion Current Work

13 Related Work

14 Main Out-of-Core Techniques 1.Mesh Cutting 2.Batch Processing 3.Online Processing Related Work Large Mesh Processing – Simplification – Visualization (  Multi-Resolution ) – Compression

15 1. Mesh Cutting cut mesh into smaller pieces process each piece separately give special treatment to cuts stitch result back together  Compression [ Ho et al. 01 ]  [ Hoppe 97 ] [ Bernadini et al. 99 ] Simplification Visualization

16 cut / compress pieces / stitch Ho et al. “Compressing Large Polygonal Models”[ Ho et al. ‘01 ] artificial discontinuities – special treatment for cuts – compression rates 25 % lower multi-pass decompression – each separately, then stitch – decompression 100 times slower

17 2. Batch Processing work on “polygon soup” process mesh in increments of single triangles make no use of connectivity  Simplification [ Lindstrom 00 ] [ Lindstrom 03 ]  Visualization + external sorting

18 3. Online Processing reorganize mesh data into an external memory structure allow “random” mesh access full connectivity available [ this paper ]  Compression [ Cignoni et al. 03 ]  Simplification

19 Cignoni et al. motivation: enable use of high quality simplification – use edge-collapse – simplify in one piece – just like “in-core” figure courtesy of Paolo Cignoni “Octree-based External Memory Mesh” [ Cignoni et al. ‘03 ] clusters do not store explicit connectivity

20 Out-of-Core Mesh

21 struct HalfEdge { Index origin; Index inv; Index next; }; half-edge based Out-of-Core Mesh ( 1 ) next inv origin spatial clustering – stored on disk – cached clusters

22 Out-of-Core Mesh ( 2 ) struct IndexPair { int ci : 15; int li : 17; }; cluster index + local index – hide clustering – try to fit in 32 bits mesh.getNext(edge); mesh.getInv(edge); mesh.getOrigin(edge); mesh.isBorder(edge); mesh.isEncoded(edge); mesh.setIsEncoded(edge); mesh.getPosition(vertex); mesh.isManifold(vertex); "isEncoded" functionality – read only – except for flag per edge

23 Construction geometry passes  compute bounding box  create clustering  sort vertices into clusters connectivity passes  sort edges into clusters  match inverse half-edges  link border edges  mark non-manifold vertices clustering input computing connectivity

24 Clustering Input 9 2 6 5 4 9 1 68 6 7 7 7 1 89 7 3 8 7 7 3 7 7 9 6 7 7 7 27 4 87 7 7 8 8 9 7 7 26 5 89  compute bounding box  create clustering – counter grid – nearest neighbors – graph partitioning  sort vertices into clusters

25 Clustering Input 9 2 6 5 4 9 1 68 6 7 7 7 1 89 7 3 8 7 7 3 7 7 9 6 7 7 7 27 4 87 7 7 8 8 9 7 7 26 5 89  compute bounding box  create clustering – counter grid – nearest neighbors – graph partitioning  sort vertices into clusters

26 Clustering Input  compute bounding box  create clustering – counter grid – nearest neighbors – graph partitioning  sort vertices into clusters

27 Computing Connectivity  sort edges into clusters  match inverse half-edges – border edges – non-manifold edges are cut  link borders  non-manifold vertices next inv

28 Example Timings build 7 hours 35 min19 min 4 hours14 min49 min compression cache misses 2.11.311.0 96 MB in-core limit 192 MB384 MB 871 MB on-disk size 1.7 GB11.2 GB 128 MB 2.1 5 min

29 Compression Scheme

30 Popular Schemes “Topological Surgery”[ Taubin & Rossignac ‘98 ] “Triangle Mesh Compression”[ Touma & Gotsman ‘98 ] “Cut-Border Machine”[ Gumhold & Strasser ‘98 ] “Edgebreaker”[ Rossignac ‘99 ] “Face Fixer”[ Isenburg & Snoeyink ‘00 ] “Angle Analyzer”[ Lee, Alliez & Desbrun ‘02 ] “Dual Graph Approach”[ Li & Kuo ‘98 ] “Spectral Compression”[ Karni & Gotsman ‘00 ]         “Triangle Mesh Compression”[ Touma & Gotsman ‘98 ]

31 Triangle Mesh Compression

32 Data Structure prev next across origin edge already encoded not yet encoded struct BoundaryEdge { BoundaryEdge* prev; BoundaryEdge* next; Index edge; Index origin_idx; int origin[3]; int across[3]; int slots; bool border; };

33 Holes

34 Non-Manifold Vertices

35 Parallelogram Prediction

36 Quantization precision of 32-bit float? largest exponent  least precise - 4.095 190.974 01286432 x - axis 1684 23 bit of precision

37 Samples per Millimeter 16 bit18 bit 20 bit22 bit24 bit 97388 15532.7 m 3271311 20 cm 5 22 86 195 m

38 Results 508 MB original 1 GB6.7 GB compressed 344 MB 61 MB37 MB174 sec27 sec15 sec load-time foot-print 9.4 MB2.8 MB1.5 MB

39 double eagle power plant Results 1.8 GB 285 MB original 28 MB 180 MB compressed 63 sec 9 sec load-time 1 MB foot-print

40 Processing Sequences

41 polygon soup – efficient processing – no connectivity external memory mesh – seamless connectivity – slow to build & use Mesh Formats indexed meshes – bad for large data sets 2 GB 4 GB

42 Processing Sequences seamless connectivity during fixed traversal

43 Large Mesh Simplification output boundary input boundary buffered region processed region unprocessed region “Large Mesh Simplification using Processing Sequences” [ Isenburg, Lindstrom, Gumhold, Snoeyink Visualization ‘03 ] original method using processing sequences

44 Conclusion

45 Summary Compressor – minimal access Compact Format – small footprint – streaming Out - of - Core Mesh – transparent – caching clusters

46 Issues length of compression boundary – possible – but we use only local heuristics – may require too many clusters – causes thrashing O( n )O( n ) [ Bar-Yehuda & Gotsman ‘96 ] external memory mesh – expensive to build & use – avoid using it ?

47 Current Work

48 Small Footprint Streaming vertices & triangles interleaved streaming  small memory footprint  concept: “Streaming Meshes” knowledge when vertex is no longer needed

49 Streaming Meshes interleave vertices & triangles “finalize” vertices 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 done 2 v 0.72 0.34 0.35 f 4 1 3 done 1 ⋮ ⋮ ⋮ ⋮ vertices finalized ( not used by subsequent triangles )

50 Streaming Compression application indexed mesh out-of-core mesh compressed streaming mesh streaming mesh compressed streaming mesh some kind of processing compressed streaming mesh

51 Thank You. gigantic thanks to Stanford’s Digital Michelangelo project Walkthru group at UNC Newport News Shipbuilding LLNL


Download ppt "Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen."

Similar presentations


Ads by Google