Streaming Compression of Triangle Meshes Martin Isenburg University of California at Berkeley Jack Snoeyink University of North Carolina at Chapel Hill.

Slides:



Advertisements
Similar presentations
Point-based Graphics for Estimated Surfaces
Advertisements

Multilevel Streaming for Out-of-Core Surface Reconstruction
Watermarking 3D Objects for Verification Boon-Lock Yeo Minerva M. Yeung.
Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004.
Surface Compression with Geometric Bandelets Gabriel Peyré Stéphane Mallat.
Memory-Efficient Sliding Window Progressive Meshes Pavlo Turchyn University of Jyvaskyla.
Geometry Compression Michael Deering, Sun Microsystems SIGGRAPH (1995) Presented by: Michael Chung.
MATHIEU GAUTHIER PIERRE POULIN LIGUM, DEPT. I.R.O. UNIVERSITÉ DE MONTRÉAL GRAPHICS INTERFACE 2009 Preserving Sharp Edges in Geometry Images.
Angle-Analyzer: A Triangle-Quad Mesh Codec Haeyoung Lee USC Mathieu Desbrun USC Pierre Alliez INRIA.
Martin Isenburg University of North Carolina at Chapel Hill Craig Gotsman Technion - Israel Institute of Technology Stefan Gumhold University of Tübingen.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
March 2, D Mesh Coding and Transmission Lihang Ying Department of Computing Science University of Alberta.

Spherical Parameterization and Remeshing Emil Praun, University of Utah Hugues Hoppe, Microsoft Research.
Compressing Texture Coordinates Martin IsenburgJack Snoeyink University of North Carolina at Chapel Hill with h Selective Linear Predictions.
Max-Plank Institut für Informatik systematic error parallelogram rule polygonal rules exact prediction Geometry Prediction for High Degree Polygons Martin.
Compressing Hexahedral Volume Meshes Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis.
Streaming Computation of Delaunay Triangulations Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Yuanxin Liu UNC Chapel Hill Martin Isenburg.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Cache-Oblivious Mesh Layouts Sung-Eui Yoon, Peter Lindstrom Valerio Pascucci, Dinesh Manocha 1: University.
Large Mesh Simplification using Processing Sequences Martin Isenburg UNC Chapel Hill Peter Lindstrom LLNL Livermore Stefan Gumhold GRIS Tubingen Jack Snoeyink.
Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill Mesh Collapse Compression.
Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.
Face Fixer Compressing Polygon Meshes with Properties Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.
Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill Reverse Decoding of the Edgebreaker Encoding S PIRALE R EVERSI.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Quick-VDR: Interactive View-Dependent Rendering of Massive Models Sung-Eui Yoon Brian Salomon Russell Gayle.
Surface Simplification & Edgebreaker Compression for 2D Cel Animations Vivek Kwatra & Jarek Rossignac GVU Center, College of Computing Georgia Institute.
Lossless Compression of Floating-Point Geometry Martin Isenburg UNC Chapel Hill Peter Lindstrom LLNL Livermore Jack Snoeyink UNC Chapel Hill.
With Parallelogram Prediction Compressing Polygon Mesh Geometry Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis.
Visibility-Guided Simplification Eugene Zhang and Greg Turk GVU Center, College of Computing Georgia Institute of Technology.
Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.
Compressing Polygon Mesh Connectivity
Kumar, Roger Sepiashvili, David Xie, Dan Professor Chen April 19, 1999 Progressive 3D Mesh Coding.
Space Efficient Point Location forTriangulations.
Irregular to Completely Regular Meshing in Computer Graphics Hugues Hoppe Microsoft Research International Meshing Roundtable 2002/09/17 Hugues Hoppe Microsoft.
Generating Raster DEM from Mass Points via TIN Streaming Jack Snoeyink UNC Chapel Hill Jonathan Shewchuk UC Berkeley Tim Thirion UNC Chapel Hill Martin.
Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh Connectivity.
Martin Isenburg UC Berkeley Streaming Meshes Peter Lindstrom LLNL.
Coding with ASCII: compact, yet text-based 3D content Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill and INRIA Sophia-Antipolis.
An Introduction to 3D Geometry Compression and Surface Simplification Connie Phong CSC/Math April 2007.
Topological Surgery Progressive Forest Split Papers by Gabriel Taubin et al Presented by João Comba.
Out-of-Core Compression for Gigantic Polygon Meshes Martin IsenburgStefan Gumhold University of North CarolinaWSI/GRIS at Chapel Hill Universität Tübingen.
Compact Representations of Separable Graphs From a paper of the same title submitted to SODA by: Dan Blandford and Guy Blelloch and Ian Kash.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
VPC3: A Fast and Effective Trace-Compression Algorithm Martin Burtscher.
Compressing Multiresolution Triangle Meshes Emanuele Danovaro, Leila De Floriani, Paola Magillo, Enrico Puppo Department of Computer and Information Sciences.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Mesh Data Structure. Meshes Boundary edge: adjacent to 1 face Regular edge: adjacent to 2 faces Singular edge: adjacent to >2 faces Mesh: straight-line.
RACBVHs: Random-Accessible Compressed Bounding Volume Hierarchies Tae-Joon Kim Bochang Moon Duksu Kim Sung-Eui Yoon KAIST (Korea Advanced Institute of.
Semi-regular 3D mesh progressive compression and transmission based on an adaptive wavelet decomposition 21 st January 2009 Wavelet Applications in Industrial.
Random-Accessible Compressed Triangle Meshes Sung-eui Yoon Korea Advanced Institute of Sci. and Tech. (KAIST) Peter Lindstrom Lawrence Livermore National.
Click to edit Master title style HCCMeshes: Hierarchical-Culling oriented Compact Meshes Tae-Joon Kim 1, Yongyoung Byun 1, Yongjin Kim 2, Bochang Moon.
1 Compressing Triangle Meshes Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
Spectral Compression of Mesh Geometry (Karni and Gotsman 2000) Presenter: Eric Lorimer.
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
Efficient Streaming of 3D Scenes with Complex Geometry and Complex Lighting Romain Pacanowski and M. Raynaud X. Granier P. Reuter C. Schlick P. Poulin.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
1 Compressing TINs Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
Rendering Large Models (in real time)
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
A Multiphase Approach to Efficient Surface Simplification Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign Michael Garland Eric.
CENG 789 – Digital Geometry Processing 04- Mesh Data Structures
The Greedy Method and Text Compression
A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.
Cache-Efficient Layouts of BVHs and Meshes
Parallel Model Simplification of Very Large Polygonal Meshes
Degree-aware Hybrid Graph Traversal on FPGA-HMC Platform
Meshes.
Presentation transcript:

Streaming Compression of Triangle Meshes Martin Isenburg University of California at Berkeley Jack Snoeyink University of North Carolina at Chapel Hill Peter Lindstrom Lawrence Livermore National Labs

Compression

physical – sleeping bags – compressed air JPG GIF digital – text, programs … – images – voice, music – movies

– Efficient Rendering – Progressive Transmission – Maximum Compression Connectivity Geometry Properties Mesh Compression “Geometry Compression” [ Deering, 95 ] storage / network main memory Maximum Compression

Current Schemes “Triangle Mesh Compression” [ Touma & Gotsman ‘98 ] “Cut-Border Machine” [ Gumhold & Strasser ‘98 ] “Edgebreaker” [ Rossignac ‘99 ] “Face Fixer” [ Isenburg & Snoeyink ‘00 ] “Degree Duality Coder” [ Isenburg ‘02 ] “Angle Analyzer” [ Lee, Alliez & Desbrun ‘02 ] “FreeLence” [ Kälberer et al. ‘05 ] “Out-of-Core Compression” [ Isenburg & Gumhold ‘03 ]

Current Approach

Underlying Assumption original ordering of vertices and triangles is not important – no need to preserve it – compressor is allowed to re-order impose “canonical” ordering – only encode connectivity graph – re-order mesh based on some deterministic traversal

Original Orderings rendering the first 20 to 40 percent of the triangle array

Connectivity Traversal Entire Mesh As Input triangles vertices before compression starts create data structure for querying and marking connectivity

Large Meshes 3D scansisosurfaces

Large Meshes 3D scansisosurfaces

Limited Main Memory “Compressing Large Polygonal Models” [ Ho et al. ‘01 ] cut mesh into pieces, compress separately, stitch back together “Out-of-core Compression of Gigantic Polygon Meshes” [ Isenburg and Gumhold. ‘03 ] use an external memory structure impossible to construct / store data structures for mesh traversal

Out-of-Core Compression OoC-Mesh – on-disk clustering – construct in advance – cache LRU clusters OoC-Compressor – make few queries

Out-of-Core Compression OoC-Mesh – on-disk clustering – construct in advance – cache LRU clusters OoC-Compressor – make few queries Decompression – “streaming”

Streaming

physical – water in a pipe – drip coffee digital – streaming formats audio video triangle meshes

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

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

Streaming Mesh Formats interleave introduce finalize v v v f done 2 v f done 1 v ⋮ ⋮ ⋮ ⋮ vertex # 2 finalized not used by subsequent triangles vertex # 2 introduced not used by preceding triangles active “Streaming Meshes” [ Isenburg and Lindstrom ‘05 ] number of active vertices “width”

Outputting Streaming Meshes 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

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

Streaming Compression

Streaming Compression ( 1 ) streaming API bool open(FILE* file, int bits); bool write_vertex(float* position); bool write_triangle(int* index, bool* finalize); bool close(); compare to standard API bool compress(FILE* file, int bits, int num_pos, float* positions, int num_tri, int* indices);

Streaming Compression ( 2 ) when writing a triangle – look-up active vertices – determine configuration – compress triangle + positions of new vertices – remove finalized data structures when writing a vertex – insert in hash

Possible Configurations start add start 1 fill join end written triangle active elements

Compressing a Triangle – configuration add fill – specify active vertex log 2 ( width ) bits better: use cache – specify other active vertices use local edge lists – position of new vertices parallelogram prediction – finalization flags add fill

Demo compress triangles immediately use delay buffer

Greedy Local Reordering Improving connectivity compression by reordering triangles in a delay buffer none K 5K 10K 50K delay buffer size bpv lucy (original) (spectral) (geometric) (breadth) (depth) st. matthew (original) (spectral) (geometric)

out-of-core compressed 344 MB pre-process 7 hours 4 hours compress main memory 384 MB disk space 11.2 GB streaming min MB 392 MB (coordinates uniformly quantized to 18 bits)

Example Processing Pipeline

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

Demo Pipeline 256 regular volume grid smextract | smclean | smsimp | smcompress P2 P3 P1 P4 grid.raw mesh.smc v v v f done 2 v f done 1 ⋮ ⋮ ⋮ ⋮

Conclusion

Current Schemes do not Scale 9 GB 1 MB

Problems of Current Schemes 372 million triangles ( 4 GB ) 186 million vertices ( 2 GB ) dedicated out-of-core data structure ( 11 GB ) global reordering of mesh during compression entire mesh as inputIO-inefficient for large data

Streaming Approach bool open(FILE* file, int bits); bool write_vertex(float* position); bool write_triangle(int* index, bool* finalize); bool close();

out-of-core compressed 344 MB pre-process 7 hours 4 hours compress main memory 384 MB disk space 11.2 GB streaming min MB 392 MB (coordinates uniformly quantized to 18 bits)

Alternate Approaches – different re-ordering strategy higher correlation – deterministic growing strategy let compressor choose & correct – degree-based coding need to relax “max delay” constraint geometry – local coordinate system, angles, … connectivity

Compressing Volume Meshes standardstreaming torso fighter 2.14 bpt3.88 bpt rate time 7 min 115 MB 8 sec 3 MB memory 1.81 bpt3.56 bpt rate time 11 min 140 MB 12 sec 6 MB memory

Current/Future Work implement more stream modules – streaming surface reconstruction – streaming stripification – streaming re-meshing – streaming smoothing – streaming segmentation – streaming feature extraction – streaming …

Acknowledgements meshes – Stanford University, Cyberware support – NSF grant "Collaborative Research: Fundamentals and Algorithms for Streaming Meshes." – U.S. DOE / LLNL # W-7405-Eng-48 – Max Planck Institute für Informatik

Thank You streaming compression API :

Stream-Processing Modules 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 

# triceratops.obj # # 2832 vertices # 2834 polygons # v v v v ⋮ ⋮ ⋮ ⋮ f f f f ⋮ ⋮ ⋮ ⋮ 2832! permutations 2832! 2834! 4 different orderings = 1.6E possible descriptions rotations ! permutations 2806