Upload
jeremy-castro
View
48
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Mesh Collapse Compression. Martin Isenburg Jack Snoeyink University of North Carolina Chapel Hill. Introduction. A novel scheme for encoding triangle mesh topology. Introduction. A novel scheme for encoding triangle mesh topology. triangle mesh. Introduction. - PowerPoint PPT Presentation
Citation preview
Introduction
A novel scheme for encoding
triangle mesh topology.
– triangle mesh
– encoding
– topology
Triangle Mesh
• Computer Graphics• Surface description• Hardware support• Used everyday• Used everywhere• Used by everybody• Increasingly complex
Topology
geometry versus topology x0 y0 z0 0 1 2
x1 y1 z1 2 3 0
x2 y2 z2 2 3 1
x3 y3 z3 2 4 3
x4 y4 z4 5 4 3 . . . . .
xn yn zn
. . . . .
. . . . .
. . . . .
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Geometry Compression
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Short Encodings of Planar Graphs and Maps
4.6 bpv (4.6)
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Topological Surgery
2.2 ~ 4.8 bpv (--)
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Triangle Mesh Compression
0.2 ~ 2.9 bpv (--)
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Edgebreaker
3.4 ~ 4.0 bpv (4.0)
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
A Simple and EfficientEncoding for Triangle
Meshes4.2 ~ 5.4 bpv (6.0)
Previous work
• Deering [95]
• Keeler Westbrook [95]
• Taubin Rossignac [96]
• Tauma Gotsman [98]
• Rossignac [98]
• DeFloriani et al [99]
• Isenburg Snoeyink [00]
Face Fixer
3.9 ~ 4.1 bpv (6.0)
Simple Meshes
(1) the mesh is a surface composed of triangles
(2) the mesh has no boundary
(3) the mesh has no holes
(4) the mesh has no handles
Mesh Collapse Compression i
Input: Output:a simple mesh - a sequence of
codewords
- a permutation ofvertices
Compression Scheme
(2) loop until done (and usually):
- contract current edge- record the removed vertex- record the degree- select new current edge
Compression Scheme
(2) loop until done (but occasionally):
- divide mesh along current edge- record start symbol- continue on one mesh part- record end symbol- continue on other mesh part
Encode Algorithmencode( Mesh mesh, Codec codec ) { stack.push( digonify( mesh ) ); while ( not stack.empty( ) ) { digon = stack.pop( ); while ( not digon.trivial ( ) ) { if ( digon.complex() ) { subdigon = mc-divide( digon ); stack.push( subdigon ); codec.pushCode( “S” ); } else { degree = mc-contract( digon ); codec.pushCode( degree ); } } codec.push( “E” ); }}
Decode algorithm
decode( Mesh mesh, Codec codec ) { while ( not codec.empty( ) ) { code = codec.popCode( ); if ( code == “E” ) { stack.push( digon ); digon = new Digon( ); } else if ( code == “S” ) { subdigon = stack.pop( ); mc-join( digon, subdigon ); } else { mc-expand( digon, code ); } } mesh = undigonify ( digon );}
General Meshes
(1) the mesh is a surface composed of triangles
(2) the mesh can have a boundary
(3) the mesh can have holes
(4) the mesh can have handles
Encoding a Handle
digon in stack
After mc-contract:
M + index + [0..5]
After mc-divide:
M + index + [0..1]
Hiding in a trivial digon:
M + index + [0..7]
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Results
vertices/triangles bpvmesh
250/496 1.4 ~ 1.7bishop
1524/3044 2.7 ~ 2.8bunny
1502/3000 3.1 ~ 3.4dragon
2832/5660 2.4 ~ 2.7triceratops
2655/5030 2.5 ~ 2.7beethoven
2562/5120 1.1 ~ 1.2shape
Summary
We presented a novel scheme for encoding the topology of triangular meshes.
The achieved compression rates of 1.1 ~ 3.4 bits/vertex compete withthe best results known today.
Currently we work on a progressive version of mc-compression.