compressing hexahedral volume meshes
Embed Size (px)
DESCRIPTION
Compressing Hexahedral Volume Meshes. Martin Isenburg UNC Chapel Hill. Pierre Alliez INRIA Sophia-Antipolis. Overview. Volume Meshes Related Work Compressing Connectivity Coding with Edge Degrees Boundary Propagation Adaptive Traversal Compressing Geometry Parallelogram Prediction - PowerPoint PPT PresentationTRANSCRIPT

CompressingHexahedral Volume Meshes
Martin IsenburgUNC
Chapel Hill
Pierre AlliezINRIA
Sophia-Antipolis

Overview• Volume Meshes• Related Work• Compressing Connectivity
– Coding with Edge Degrees– Boundary Propagation– Adaptive Traversal
• Compressing Geometry– Parallelogram Prediction
• Demo

Take this home:
“The connectivity of a hexahedral mesh can be coded through asequence of its edge degrees.”
“This encoding naturallyexploits the regularity commonly
found in such data sets.”

Volume Meshes

Volume Meshes
• scientific & industrial applications– thermodynamics
– structural mechanics
– …
• visualization & simulation• unstructured / irregular
( not on a grid )• tetrahedral, hexahedral, polyhedral

Hexahedral Volume Meshes
• have “numerical advantages in finite element computations”
• challenging to generate
• their internal structure looks “nice” compared to tetrahedral meshes

Ingredients
• geometry :positions of vertices
• connectivity :which vertices form a hexahedron
• properties:attached to vertices
density, pressure, heat, ...

Standard Representation
• connectivity
• geometry
vtx1 ( x, y, z )vtx2 ( x, y, z )vtx3 ( x, y, z )
vtxv
hex1 1 3 6 4 7 8 9 2hex2 4 5 8 2 9 1 6 7hex3 7 5 …
hexh
8h * 32 bits
3v * 32 bits
71572 hexahedra78618 vertices
log2(v)
16
size: 3.23 MB
1.69
less than
84 KB

Related Work

Surface Mesh Compression– Geometry Compression, [Deering, 95] – Topological Surgery, [Taubin & Rossignac, 98]– Cut-Border Machine, [Gumhold & Strasser, 98]– Triangle Mesh Compression, [Touma & Gotsman, 98]– Edgebreaker, [Rossignac, 99]– Spectral Compression of Geometry, [Karni & Gotsman, 00]– Face Fixer, [Isenburg & Snoeyink, 00]– Valence-driven Connectivity Coding, [Alliez & Desbrun, 01]– Near-Optimal Coding, [Khodakovsky, Alliez, Desbrun &
– Degree Duality Coder, [Isenburg, 02]– Polygonal Parallelogram Prediction, [Isenburg & Alliez, 02]
Schröder, 02]

Volume Mesh Compression– Grow & Fold, [Szymczak & Rossignac, 99]– Cut-Border Machine, [Gumhold, Guthe & Strasser, 99]
!! only for tetrahedral meshes !!
– Rendering of compressed volume data, [Yang et al., 01]
Simplification:– Simplification of tetrahedral meshes, [Trotts et al., 98]– Progressive Tetrahedralizations, [Staadt & Gross, 98]
Progressive Compression:– Implant Sprays, [Pajarola, Rossignac & Szymczak, 99]

Surface / Volume Connectivity
a mesh with v vertices has maximalsurfaces:
2v-2 triangles ~ 6v indices
v-1 quadrilaterals ~ 4v indices
connectivity dominates geometry even more for volume meshes
volumes:
O(v2) tetrahedra ~ 12v indices
O(v2) hexahedra ~ 8v indices

Degree Coding for Connectivity• Triangle Mesh Compression, [Touma & Gotsman, 98]• Valence-driven Connectivity Coding, [Alliez, Desbrun, 01]• Degree Duality Coder, [Isenburg, 02]• Near-Optimal Connectivity Coding, [Khodakovsky, Alliez,
Desbrun, Schröder, 02]
4 5. . . . . .3 64 4 4 4 4 4 4 4
. . . 7 3 . . .644 56 7 6 6 6
compressed with arithmetic coder converges to entropy

Entropy
for a symbol sequence of t types
# of type tpi =
i = 1
t
Entropy = pi • log2( ) bitspi
1
# total
2.0 bits1.3 bits0.2 bits

Average Distribution
2
3
4
56 7 8 9+
vertex degrees
3
4
5 6 7 8 9+
face degrees
[over a set of 11 polygonal meshes]

“Worst-case” Distribution
…
3
4
5
6
78
9
vertex degrees
……
[Alliez & Desbrun, 01]
3.241… bpv
[Tutte, 62]

Adaptation to Regularity
6
vertexdegrees
facedegrees
3
... ... ... ...
3
vertexdegrees
facedegrees
6
... ... ... ...
4
vertexdegrees
facedegrees
4
... ... ... ...

Degree Coding for Volumes ?
tri tet quad hex
vertex degrees edge degrees

Regular Volume Meshes?
• elements for regular 2D tiling – regular triangle
– regular quadrilateral
– regular hexagon
• elements for regular 3D tiling– regular tetrahedron
– regular hexahedron

Compressing Connectivity

Space Growing
similar in spirit to “region growing”:
algorithm maintains hull enclosing processed hexahedra
• pick incomplete face on hull• process adjacent hexahedra• record degrees of its free edges
1. initialize hull with a border face
2. iterate until done

Coding with Edge Degrees
focus face

Coding with Edge Degrees
focus face

Coding with Edge Degrees
focus face
slots

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees
border faces
incompletefaces

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees
edges onhull maintain
slot count

Coding with Edge Degrees
edges witha slot countof zero are“zero slots”
zero slots

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Coding with Edge Degrees

Resulting Symbols
– border edge degrees
– interior edge degrees
. . . . . .
. . . . . .
3 33 3 32 42
4 5 4 4 4 4 3 4
. . . . . .YN N N N N N N N N N N N N
– border ?
. . . . . .YN N N N N N NN N N N N N
– join ?

Average Distributions
2
3
4 5 6+
border degrees
3
4
5 6 7+
interior degrees border?
2
join?
no
yes
no
yes

Possible Configurations

Possible Configurations
hut step bridge
roof
pit den
tunnel
gap
corner

Configuration: “hut”
“hut”
hut
zero-slots: 0
free faces 5free edges 8free vertices 4
not azero slot
freeedge
free vertex
freeface

Configuration: “step”
“step”
0
this is azero slot
step
zero-slots: 1
free faces 4free edges 5free vertices 2

Configuration: “bridge”
“bridge”
00 bridge
zero-slots: 2
free faces 3free edges 2free vertices --

“hut” or “roof”
for the free face of “hut” that potentially forms a roof: “join?” /Y N
hut
roof
?
“roof” “join” operation

other “join” operations
• free vertex already on hull
• free edge already on hull
hut step
for every free vertex / edge: “join?” /Y N

Adaptive traversalto avoid “join”operations

Reason for “join” operations
hull

Reason for “join” operations
hull

Reason for “join” operations
hull

Reason for “join” operations
hull

Reason for “join” operations
processed region
unprocessed region
hull

Reason for “join” operations
processed region
unprocessed region
hull

Reason for “join” operations
processed region
unprocessed region
hull

Reason for “join” operations
processed region
unprocessed region
hull

Reason for “join” operations
processed region
unprocessed region
join
hull

Adaptive Traversal
• Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01]
avoid creation of cavities
focusface
pick face with largest # of zero slots

Propagating theborder information

Explaining Exampleborder faceborder face &
slot count = 1

Explaining Exampleborder face
borderedges

Explaining Example
interior edgesincomplete
faces

Explaining Example
for everything else: “border?” /Y N
remainingelements

hangerra
bump…
warpedhutch
c1
5.32.92.1
…0.20.30.6
Results (Connectivity)
raw
bits per hexahedron (bph)model compressed
72.0 80.0 88.0
… 112.0 112.0 136.0
1 : 141 : 281 : 42 ...1 : 6211 : 3611 : 226
ratio
average compression ratio = 1 : 163

hangerra
bump…
warpedhutch
c1
5.32.92.1
…0.20.30.6
Results (Connectivity)
raw
bits per hexahedron (bph)model compressed
72.0 80.0 88.0
… 112.0 112.0 136.0
1 : 141 : 281 : 42 ...1 : 6211 : 3611 : 226
ratio
average compression ratio = 1 : 163

Compressing Geometry

Predictive Compression
1. quantize positions with b bits
(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Predictive Compression
1. quantize positions with b bits
2. traverse positions
(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Predictive Compression
1. quantize positions with b bits
2. traverse positions
3. predict position from neighbors
(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer
(1004, 71, 723)prediction

Predictive Compression
1. quantize positions with b bits
2. traverse positions
3. predict position from neighbors
4. store corrective vector
(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer
(4, -3, -5)corrector
(1004, 71, 723)prediction

Parallelogram Rule
across“non-convex”
triangles
across“non-planar”
triangles
within“planar” & “convex”
quadrilateral
Triangle Mesh Compression, [Touma & Gotsman, 98]

8
Position Predictions
init
hut
0
4
12
3
56
7
0
12
3
v0 0v1 v0
v2 v1
v3 v0 - v1 + v2
v4 2v0 – v8 (or v0 )v5 v1 – v0 + v4
v6 v2 – v1 + v5
v7 v3 – v2 + v6
vertex prediction rule

hangerra
bump…
warpedhutch
c1
23.230.824.4
…10.519.9
5.9
Results (Geometry)
raw
bits per vertex (bpv)model compressed
48.0 48.0 48.0
… 48.0 48.0 48.0
1 : 2.11 : 1.61 : 2.0
...1 : 4.61 : 2.41 : 8.1
ratio
average compression ratio = 1 : 3.7

Demo

Summary
• degree coding for volume mesh connectivity– edge degrees
– boundary propagation
– adaptive traversal
• parallelogram prediction for volume mesh geometry– “within” predictions

Current / Future Work
• Mixed Volume Meshes– hex + tet + prism + pyramid cells
• Universal Connectivity Coder– face, vertex, and edge degrees
– tri / quad / poly surfaces
– tet / hex / poly volumes
– surface mesh = cell of volume mesh
– bit-rate like specialized coder

Acknowledgements
data sets• Alla Sheffer
• Steven Owen
• Scott Mitchell
• Claudio Silva
financial support
• ARC TéléGéo grant from INRIA

Thank You!

Old Beijing & Duck
Whoever had expressed interest in going to eat duck in the ancient-style “hutong” area:
meet me 10-15 minutes after
end of PG in front of hotelbring :
• map• address card of your hotel• ~100 yuan (smaller bills for subway / bus)




Configurations: “roof”
“roof”
zero-slots: 0adjacent faces: 1
free faces 4free edges 4free vertices --
roof

Configurations: “tunnel”
tunnel
“tunnel”
zero-slots: 2adjacent faces: 4
free faces 2free edges --free vertices --
00 00

corner
Configuration: “corner”
“corner”
zero-slots: 2adjacent faces: 3
free faces 3free edges 3free vertices 1
0
00

gap
Configuration: “gap”
“gap”
zero-slots: 3adjacent faces: 4
free faces 2free edges 1free vertices --
0
0
0
00

Configurations: “pit”
0
0
0 0 pit
zero-slots: 4adjacent faces: 5
free faces 1free edges --free vertices --
“pit”
00
0 0

den
Configurations: “den”
zero-slots: 4adjacent faces: 6
free faces --free edges --free vertices --
“den”
0
0
0 00
0