Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.

Slides:



Advertisements
Similar presentations
Least-squares Meshes Olga Sorkine and Daniel Cohen-Or Tel-Aviv University SMI 2004.
Advertisements

2/14/13CMPS 3120 Computational Geometry1 CMPS 3120: Computational Geometry Spring 2013 Planar Subdivisions and Point Location Carola Wenk Based on: Computational.
Geometry Compression Michael Deering, Sun Microsystems SIGGRAPH (1995) Presented by: Michael Chung.
THE WORLD OF POLYGONS LESSON 4.
3D Compression, SM’02 1Jarek Rossignac, GVU Center, Georgia Tech1: T-meshes Triangle meshes Jarek Rossignac GVU Center and College of Computing Georgia.
Mesh Representation, part II based on: Data Structures for Graphics, chapter 12 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner) Slides.
Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung
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.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.

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.
Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill Mesh Collapse 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.
Polygonal Mesh – Data Structure and Smoothing
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.
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
Compressing the Property Mapping of Polygon Meshes Martin Isenburg Jack Snoeyink University of North Carolina at Chapel Hill.
Compressing Polygon Mesh Connectivity
Space Efficient Point Location forTriangulations.
Streaming Compression of Triangle Meshes Martin Isenburg University of California at Berkeley Jack Snoeyink University of North Carolina at Chapel Hill.
Polygonal Meshes 3D Object Representation -Tyler Abrams.
4.5 More Platonic Solids Wednesday, March 3, 2004.
Martin Isenburg UC Berkeley Jack Snoeyink UNC Chapel Hill Early Split Coding of Triangle Mesh Connectivity.
University of British Columbia Compressing Connectivity.
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.
Geometric Compression Through Topological Surgery Gabriel Taubin (IBM) Jarek Rossignac (Georgia Tech)
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Surface Simplification Using Quadric Error Metrics.
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.
Chapter 12 Surface Area and Volume. Topics We Will Discuss 3-D Shapes (Solids) Surface Area of solids Volume of Solids.
Geometry Review. Name that Shape… Rectangle Name that Shape… hexagon.
Volumetric and Blobby Objects Lecture 8 (Modelling)
1 MESHCOMPRESSIONMESHCOMPRESSION EG99 Tutorial Mesh Compression.
9/7/06CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2006 Triangulations and Guarding Art Galleries Carola Wenk.
Modeling and representation 2 – the economics of polygon meshes 3.1 Compressing polygonal models 3.2 Compressing the geometry (information per vertex)
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.
Random-Accessible Compressed Triangle Meshes Sung-eui Yoon Korea Advanced Institute of Sci. and Tech. (KAIST) Peter Lindstrom Lawrence Livermore National.
Section 3.5 Polygons A polygon is:  A closed plane figure made up of several line segments they are joined together.  The sides to not cross each other.
Shape of the Day. Assessment 1.Name each shape. 2.Tell 3 things all of these shapes have in common. 3.What are two names that classify ALL of.
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.
1 Compressing TINs Leila De Floriani, Paola Magillo University of Genova Genova (Italy) Enrico Puppo National Research Council Genova (Italy)
04 MPEG-4, 1 Jarek Rossignac, CoC & GVU Center, Georgia Tech SM, June D Compression Jarek Rossignac GVU Center and College of Computing Georgia Tech,
Do Now 4/9/13 Take out HW from last night. –Text p. 329, #1-4 all Copy HW in your planner. –Text p. 332, #1-23 all, 25, Be ready to complete NJASK7.
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall 2003 Subdivision Surfaces Greg Humphreys University of Virginia CS 445, Fall 2003.
Solid Modeling 2002 A Multi-resolution Topological Representation for Non-manifold Meshes Leila De Floriani, Paola Magillo, Enrico Puppo, Davide Sobrero.
M4G1 Students will define and identify the characteristics of geometric figures through examination and construction. M4G2 Students will understand fundamental.
1 Overview (Part 1) Background notions A reference framework for multiresolution meshes Classification of multiresolution meshes An introduction to LOD.
9/8/10CS 6463: AT Computational Geometry1 CS 6463: AT Computational Geometry Fall 2010 Triangulations and Guarding Art Galleries Carola Wenk.
P O L Y G O N S 2-6. DEFINITION A POLYGON is the union of segments in the same plane such that each segment intersects exactly two others at their endpoints.
Decimation of Triangle Meshes Paper by W.J.Schroeder et.al Presented by Guangfeng Ji.
Polygons Only one of these is a polygon. Do you know? A polygon MUST be a closed figure.
Rossignac, Szymczak, King, Safonova
A Brief History of 3D MESH COMPRESSION ORAL, M. ELMAS, A.A.
Arthur D Gregory, Andrei State, Ming C Lin,
Jarek Rossignac GVU Center Georgia Institute of Technology
Efficient Edgebreaker for surfaces of arbitrary topology
Progressive coding Motivation and goodness measures
Surface Area and Volume
a closed figure whose sides are straight line segments.
Iso-Surface extraction from red and green samples on a regular lattice
Subdivision Surfaces 고려대학교 컴퓨터 그래픽스 연구실 cgvr.korea.ac.kr.
Presentation transcript:

Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression

Introduction A new edge-based encoding scheme for polygon mesh connectivity.

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations  simple implementation

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations  simple implementation  fast decoding

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations  simple implementation  fast decoding

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations  simple implementation  fast decoding  extends to non-triangular meshes

Introduction A new edge-based encoding scheme for polygon mesh connectivity.  compact mesh representations  simple implementation  fast decoding  extends to non-triangular meshes  extends to meshes with group or triangle strip information

What are ‘Polygon Meshes’... ?

A Simple Mesh

Mesh with Holes

Mesh with Handle

Mesh with Handle and Holes

How are Polygon Meshes stored... ?

The minimal information we need to store is: Where are the vertices located ?  mesh geometry How are the vertices connected ?  mesh connectivity Geometry and Connectivity

list of vertices x 0 y 0 z 0 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z x n y n z n Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z x n y n z n Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z x n y n z n Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z x n y n z n Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z x n y n z n Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z x 2 y 2 z 2 u 2 v 2 w x 3 y 3 z 3 u 3 v 3 w x 4 y 4 z 4 u 4 v 4 w x n y n z n..... Standard Representation

list of vertices list of faces x 0 y 0 z x 1 y 1 z x 2 y 2 z 2 u 2 v 2 w x 3 y 3 z 3 u 3 v 3 w x 4 y 4 z 4 u 4 v 4 w x n y n z n..... Compressing Geometry

list of vertices list of faces x 0 y 0 z x 1 y 1 z x 2 y 2 z 2 u 2 v 2 w x 3 y 3 z 3 u 3 v 3 w x 4 y 4 z 4 u 4 v 4 w x n y n z n..... Compressing Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity

Uncompressed Connectivity 6 log(n) bpv

Maximum Connectivity Compression for Triangle Meshes

Turan’s observation The fact that a planar graph can be decomposed into two spanning trees implies that it can be encoded in a constant number of bits.

The two spanning trees are: –a vertex spanning tree –its dual triangle spanning tree Turan’s observation

The fact that a planar graph can be decomposed into two spanning trees implies that it can be encoded in a constant number of bits. The two spanning trees are: –a vertex spanning tree –its dual triangle spanning tree He gave an encoding that uses 12 bits per vertex (bpv). Turan’s observation

Vertex Spanning Tree

Triangle Spanning Tree

Vertex Spanning Tree

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Short Encodings of Planar Graphs and Maps 4.6 bpv (4.6) Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Topological Surgery 2.4 ~ 7.0 bpv (--) Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Triangle Mesh Compression 0.2 ~ 2.9 bpv (--) Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Edgebreaker 3.2 ~ 4.0 bpv (4.0) Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] A Simple and Efficient Encoding for Triangle Meshes 4.2 ~ 5.4 bpv (6.0) Previous work

Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Mesh Collapse Compression 1.1 ~ 3.4 bpv (--) Previous work

Triangle Fixer: Edge-based Connectivity Compression

edge-based traverses mesh and grows a boundary labels edges with T, R, L, S, or E for each triangle there is a T label the remaining labels R, L, S, and E encode a vertex spanning tree linear-time decompression processes labels in reverse order Short description

Encoding scheme An initial active boundary is defined in cw order around an arbitrary edge of the mesh.

One of the two initial boundary edges is defined to be the active gate. Encoding scheme

At every step of the encoding process the active gate is labeled with T, R, L, S, or E. Encoding scheme

At every step of the encoding process the active gate is labeled with T, R, L, S, or E. Then the boundary and the gate are updated. Encoding scheme

At every step of the encoding process the active gate is labeled with T, R, L, S, or E. Then the boundary and the gate are updated. The boundary is expanded (T), is shrunk (R and L), is split (S), or is terminated (E). Encoding scheme

At every step of the encoding process the active gate is labeled with T, R, L, S, or E. Then the boundary and the gate are updated. The boundary is expanded (T), is shrunk (R and L), is split (S), or is terminated (E). Which label the gate is assigned depends on its adjacency relation with the boundary. Encoding scheme

For each label T, R, L, S, and E we will now explain: (1)for which active gate boundary adjacency relation it applies (2)how the boundary is updated (3)how the active gate is updated Encoding scheme

Label T before The active gate is not adjacent to any other boundary edge.

Label T beforeafter The new active gate is the right edge of the included triangle.

Label R before The active gate is adjacent to the next edge along the active boundary.

Label R beforeafter The new active gate is the previous edge along the active boundary.

Label L before The active gate is adjacent to the previous edge along the active boundary.

Label L beforeafter The new active gate is the next edge along the active boundary.

Label S before The active gate is adjacent to some other edge of the active boundary.

Label S beforeafter The new active gate is the previous and the next edge along the active boundary.

Label E before The active gate is adjacent to the previous and the next edge along the active boundary.

Label E beforeafter The new active gate is popped from the stack. If the stack is empty we terminate.

Example Run - Encoding

T

T

T

R

T

T

R

T

T

R

T

R

T

R

T

R

T

S

T

R

E

T

R

E

Example Run - Decoding

E

R

T

E

R

T

S

T

R

T

R

T

R

T

R

T

T

R

T

T

R

T

T

T

Holes and Handles

Encoding a hole use a new label H associate an integer called size with the label that specifies the number of edges/vertices around the hole there is one label H size per hole the total number of labels does not change, it is still equal to the number of edges in the mesh

Label H size before hole The active gate is adjacent to a hole of size edges/vertices.

Label H size beforeafter hole The new active gate is the rightmost edge of the included hole.

Encoding a handle use a new label M associate three integers called index, offset 1, and offset 2 with the label that specify the current configuration there is one label M idx,off 1,off 2 per handle the total number of labels does not change, it is still equal to the number of edges in the mesh

Label M idx,off 1,off 2 before offset 1 offset 2 index in stack The active gate is adjacent to some edge of a boundary in the stack.

Label M idx,off 1,off 2 beforeafter offset 1 The new active gate is the one previous to the adjacent edge from the stack boundary. offset 2 index in stack

Compressing the label sequence

label encoding The number of labels T, R, L, S, and E equals the number of edges in the mesh. A simple mesh with v vertices has 3v - 6 edges and 2v - 4 triangles. This means that 2v - 4 labels are of type T and the remaining v - 2 labels are of type R, L, S, and E. A label encoding guarantees to use exactly 5v - 10 bits.

label bits code T 1 0 R3100 L3101 S3110 E3111 guarantees 5 bits per vertex label encoding

label bits code T 1 0 R210 L3110 S41110 E41111 guarantees 6 bits per vertex label encoding

previous label current encoding T R L S E guarantees 6 bits per vertex fixed bit encoding

approaches the entropy of the label sequence adaptive version three label memory due to small number of different symbols, probability tables require less than 8KB implemented with fast bit operations arithmetic encoding

Example results vertices fixedmesh phone bunny skull eight femur cow aac shape fandisk holes handles

Sneak Preview

Triceratops 2832 vertices

2834 polygons Triceratops

2832 vertices 2834 polygons –346 triangles Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons –7 octagons Triceratops

2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons –7 octagons –2 undecagons Triceratops

2832 vertices 2834 polygons Triceratops

2832 vertices 2834 polygons -> corners Triceratops

2832 vertices 2834 polygons -> corners 2832 vertices 5660 triangles Triceratops

2832 vertices 2834 polygons -> corners 2832 vertices 5660 triangles -> corners Triceratops

2832 vertices 2834 polygons -> corners 2832 vertices 5660 triangles -> corners Triceratops

2832 vertices 2834 polygons Triceratops

2832 vertices 2834 polygons -> 2834 faces Triceratops

2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles Triceratops

2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles -> 5660 faces Triceratops

2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles -> 5660 faces Triceratops

Beethoven

Galleon

Sandal

Shark

Cessna

Tommy-gun

Short Example Run

F4F4

F3F3

R

F5F5

R

F4F4

Example results vertices bpvmesh triceratops galleon cessna beethoven sandal shark 4171 tommygun

Face Fixer: Compressing Polygon Meshes with Properties SIGGRAPH ’2000

Current Work Patch Fixer –Find frequent patches in mesh and use their repeating structure for encoding. Tetra Fixer –Compressing Tetrahedral Meshes Volume Fixer –Compressing Volume Data composed of Tetrahedrons and Octahedrons with support for cell group structures.

Acknowledgements Paola Magillo for providing her set of example meshes Michael Maniscalco and Frederick Wheeler for technical insights on arithmetic coding Jarek Rossignac and Davis King for fruitful discussions my supervisor Jack Snoeyink for reviewing the paper