compressing hexahedral volume meshes

96
Compressing Hexahedral Volume Meshes Martin Isenburg UNC Chapel Hill Pierre Alliez INRIA Sophia-Antipolis

Upload: easter

Post on 23-Jan-2016

70 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Compressing Hexahedral Volume Meshes

CompressingHexahedral Volume Meshes

Martin IsenburgUNC

Chapel Hill

Pierre AlliezINRIA

Sophia-Antipolis

Page 2: Compressing Hexahedral Volume Meshes

Overview• Volume Meshes• Related Work• Compressing Connectivity

– Coding with Edge Degrees– Boundary Propagation– Adaptive Traversal

• Compressing Geometry– Parallelogram Prediction

• Demo

Page 3: Compressing Hexahedral Volume Meshes

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.”

Page 4: Compressing Hexahedral Volume Meshes

Volume Meshes

Page 5: Compressing Hexahedral Volume Meshes

Volume Meshes

• scientific & industrial applications– thermodynamics

– structural mechanics

– …

• visualization & simulation• unstructured / irregular

( not on a grid )• tetrahedral, hexahedral, polyhedral

Page 6: Compressing Hexahedral Volume Meshes

Hexahedral Volume Meshes

• have “numerical advantages in finite element computations”

• challenging to generate

• their internal structure looks “nice” compared to tetrahedral meshes

Page 7: Compressing Hexahedral Volume Meshes

Ingredients

• geometry :positions of vertices

• connectivity :which vertices form a hexahedron

• properties:attached to vertices

density, pressure, heat, ...

Page 8: Compressing Hexahedral Volume Meshes

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

Page 9: Compressing Hexahedral Volume Meshes

Related Work

Page 10: Compressing Hexahedral Volume Meshes

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]

Page 11: Compressing Hexahedral Volume Meshes

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]

Page 12: Compressing Hexahedral Volume Meshes

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

Page 13: Compressing Hexahedral Volume Meshes

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

Page 14: Compressing Hexahedral Volume Meshes

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

Page 15: Compressing Hexahedral Volume Meshes

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]

Page 16: Compressing Hexahedral Volume Meshes

“Worst-case” Distribution

3

4

5

6

78

9

vertex degrees

……

[Alliez & Desbrun, 01]

3.241… bpv

[Tutte, 62]

Page 17: Compressing Hexahedral Volume Meshes

Adaptation to Regularity

6

vertexdegrees

facedegrees

3

... ... ... ...

3

vertexdegrees

facedegrees

6

... ... ... ...

4

vertexdegrees

facedegrees

4

... ... ... ...

Page 18: Compressing Hexahedral Volume Meshes

Degree Coding for Volumes ?

tri tet quad hex

vertex degrees edge degrees

Page 19: Compressing Hexahedral Volume Meshes

Regular Volume Meshes?

• elements for regular 2D tiling – regular triangle

– regular quadrilateral

– regular hexagon

• elements for regular 3D tiling– regular tetrahedron

– regular hexahedron

Page 20: Compressing Hexahedral Volume Meshes

Compressing Connectivity

Page 21: Compressing Hexahedral Volume Meshes

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

Page 22: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

focus face

Page 23: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

focus face

Page 24: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

focus face

slots

Page 25: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 26: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 27: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

border faces

incompletefaces

Page 28: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 29: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 30: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 31: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 32: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 33: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

edges onhull maintain

slot count

Page 34: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

edges witha slot countof zero are“zero slots”

zero slots

Page 35: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 36: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 37: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 38: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 39: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 40: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 41: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 42: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 43: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 44: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 45: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 46: Compressing Hexahedral Volume Meshes

Coding with Edge Degrees

Page 47: Compressing Hexahedral Volume Meshes

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 ?

Page 48: Compressing Hexahedral Volume Meshes

Average Distributions

2

3

4 5 6+

border degrees

3

4

5 6 7+

interior degrees border?

2

join?

no

yes

no

yes

Page 49: Compressing Hexahedral Volume Meshes

Possible Configurations

Page 50: Compressing Hexahedral Volume Meshes

Possible Configurations

hut step bridge

roof

pit den

tunnel

gap

corner

Page 51: Compressing Hexahedral Volume Meshes

Configuration: “hut”

“hut”

hut

zero-slots: 0

free faces 5free edges 8free vertices 4

not azero slot

freeedge

free vertex

freeface

Page 52: Compressing Hexahedral Volume Meshes

Configuration: “step”

“step”

0

this is azero slot

step

zero-slots: 1

free faces 4free edges 5free vertices 2

Page 53: Compressing Hexahedral Volume Meshes

Configuration: “bridge”

“bridge”

00 bridge

zero-slots: 2

free faces 3free edges 2free vertices --

Page 54: Compressing Hexahedral Volume Meshes

“hut” or “roof”

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

hut

roof

?

“roof” “join” operation

Page 55: Compressing Hexahedral Volume Meshes

other “join” operations

• free vertex already on hull

• free edge already on hull

hut step

for every free vertex / edge: “join?” /Y N

Page 56: Compressing Hexahedral Volume Meshes

Adaptive traversalto avoid “join”operations

Page 57: Compressing Hexahedral Volume Meshes

Reason for “join” operations

hull

Page 58: Compressing Hexahedral Volume Meshes

Reason for “join” operations

hull

Page 59: Compressing Hexahedral Volume Meshes

Reason for “join” operations

hull

Page 60: Compressing Hexahedral Volume Meshes

Reason for “join” operations

hull

Page 61: Compressing Hexahedral Volume Meshes

Reason for “join” operations

processed region

unprocessed region

hull

Page 62: Compressing Hexahedral Volume Meshes

Reason for “join” operations

processed region

unprocessed region

hull

Page 63: Compressing Hexahedral Volume Meshes

Reason for “join” operations

processed region

unprocessed region

hull

Page 64: Compressing Hexahedral Volume Meshes

Reason for “join” operations

processed region

unprocessed region

hull

Page 65: Compressing Hexahedral Volume Meshes

Reason for “join” operations

processed region

unprocessed region

join

hull

Page 66: Compressing Hexahedral Volume Meshes

Adaptive Traversal

• Valence-driven connectivity encoding for 3D meshes [Alliez & Desbrun, 01]

avoid creation of cavities

focusface

pick face with largest # of zero slots

Page 67: Compressing Hexahedral Volume Meshes

Propagating theborder information

Page 68: Compressing Hexahedral Volume Meshes

Explaining Exampleborder faceborder face &

slot count = 1

Page 69: Compressing Hexahedral Volume Meshes

Explaining Exampleborder face

borderedges

Page 70: Compressing Hexahedral Volume Meshes

Explaining Example

interior edgesincomplete

faces

Page 71: Compressing Hexahedral Volume Meshes

Explaining Example

for everything else: “border?” /Y N

remainingelements

Page 72: Compressing Hexahedral Volume Meshes

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

Page 73: Compressing Hexahedral Volume Meshes

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

Page 74: Compressing Hexahedral Volume Meshes

Compressing Geometry

Page 75: Compressing Hexahedral Volume Meshes

Predictive Compression

1. quantize positions with b bits

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Page 76: Compressing Hexahedral Volume Meshes

Predictive Compression

1. quantize positions with b bits

2. traverse positions

(1.2045, -0.2045, 0.7045) (1008, 67, 718)floating point integer

Page 77: Compressing Hexahedral Volume Meshes

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

Page 78: Compressing Hexahedral Volume Meshes

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

Page 79: Compressing Hexahedral Volume Meshes

Parallelogram Rule

across“non-convex”

triangles

across“non-planar”

triangles

within“planar” & “convex”

quadrilateral

Triangle Mesh Compression, [Touma & Gotsman, 98]

Page 80: Compressing Hexahedral Volume Meshes

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

Page 81: Compressing Hexahedral Volume Meshes

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

Page 82: Compressing Hexahedral Volume Meshes

Demo

Page 83: Compressing Hexahedral Volume Meshes

Summary

• degree coding for volume mesh connectivity– edge degrees

– boundary propagation

– adaptive traversal

• parallelogram prediction for volume mesh geometry– “within” predictions

Page 84: Compressing Hexahedral Volume Meshes

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

Page 85: Compressing Hexahedral Volume Meshes

Acknowledgements

data sets• Alla Sheffer

• Steven Owen

• Scott Mitchell

• Claudio Silva

financial support

• ARC TéléGéo grant from INRIA

Page 86: Compressing Hexahedral Volume Meshes

Thank You!

Page 87: Compressing Hexahedral Volume Meshes

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)

Page 88: Compressing Hexahedral Volume Meshes
Page 89: Compressing Hexahedral Volume Meshes
Page 90: Compressing Hexahedral Volume Meshes
Page 91: Compressing Hexahedral Volume Meshes

Configurations: “roof”

“roof”

zero-slots: 0adjacent faces: 1

free faces 4free edges 4free vertices --

roof

Page 92: Compressing Hexahedral Volume Meshes

Configurations: “tunnel”

tunnel

“tunnel”

zero-slots: 2adjacent faces: 4

free faces 2free edges --free vertices --

00 00

Page 93: Compressing Hexahedral Volume Meshes

corner

Configuration: “corner”

“corner”

zero-slots: 2adjacent faces: 3

free faces 3free edges 3free vertices 1

0

00

Page 94: Compressing Hexahedral Volume Meshes

gap

Configuration: “gap”

“gap”

zero-slots: 3adjacent faces: 4

free faces 2free edges 1free vertices --

0

0

0

00

Page 95: Compressing Hexahedral Volume Meshes

Configurations: “pit”

0

0

0 0 pit

zero-slots: 4adjacent faces: 5

free faces 1free edges --free vertices --

“pit”

00

0 0

Page 96: Compressing Hexahedral Volume Meshes

den

Configurations: “den”

zero-slots: 4adjacent faces: 6

free faces --free edges --free vertices --

“den”

0

0

0 00

0