Download presentation
Presentation is loading. Please wait.
1
Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression
2
Introduction A new edge-based encoding scheme for polygon mesh connectivity.
3
Introduction A new edge-based encoding scheme for polygon mesh connectivity. compact mesh representations
4
Introduction A new edge-based encoding scheme for polygon mesh connectivity. compact mesh representations simple implementation
5
Introduction A new edge-based encoding scheme for polygon mesh connectivity. compact mesh representations simple implementation fast decoding
6
Introduction A new edge-based encoding scheme for polygon mesh connectivity. compact mesh representations simple implementation fast decoding
7
Introduction A new edge-based encoding scheme for polygon mesh connectivity. compact mesh representations simple implementation fast decoding extends to non-triangular meshes
8
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
9
What are ‘Polygon Meshes’... ?
10
A Simple Mesh
11
Mesh with Holes
12
Mesh with Handle
13
Mesh with Handle and Holes
14
How are Polygon Meshes stored... ?
15
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
16
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 4 6 4..... x n y n z n Standard Representation
17
list of vertices list of faces x 0 y 0 z 0 1 4 20 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Standard Representation
18
list of vertices list of faces x 0 y 0 z 0 1 4 20 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Standard Representation
19
list of vertices list of faces x 0 y 0 z 0 1 4 20 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Standard Representation
20
list of vertices list of faces x 0 y 0 z 0 1 4 20 x 1 y 1 z 1 x 2 y 2 z 2 x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Standard Representation
21
list of vertices list of faces x 0 y 0 z 0 1 4 2 x 1 y 1 z 1 2 3 03 4 x 2 y 2 z 2 u 2 v 2 w 2 4 0 53 4 x 3 y 3 z 3 u 3 v 3 w 3 3 4 53 6 4x 4 y 4 z 4 u 4 v 4 w 4 5 0 2..... x n y n z n..... Standard Representation
22
list of vertices list of faces x 0 y 0 z 0 1 4 2 x 1 y 1 z 1 2 3 03 4 x 2 y 2 z 2 u 2 v 2 w 2 4 0 53 4 x 3 y 3 z 3 u 3 v 3 w 3 3 4 53 6 4x 4 y 4 z 4 u 4 v 4 w 4 5 0 2..... x n y n z n..... Compressing Geometry
23
list of vertices list of faces x 0 y 0 z 0 1 4 2 x 1 y 1 z 1 2 3 03 4 x 2 y 2 z 2 u 2 v 2 w 2 4 0 53 4 x 3 y 3 z 3 u 3 v 3 w 3 3 4 53 6 4x 4 y 4 z 4 u 4 v 4 w 4 5 0 2..... x n y n z n..... Compressing Connectivity
24
0 1 10 2 3 4 5 6 7 8 9 11 12 Uncompressed Connectivity
25
0 1 10 2 3 4 5 6 7 8 9 11 12 045045 Uncompressed Connectivity
26
0 1 10 2 3 4 5 6 7 8 9 11 12 045051045051 Uncompressed Connectivity
27
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561045051561 Uncompressed Connectivity
28
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561162045051561162 Uncompressed Connectivity
29
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561162263045051561162263 Uncompressed Connectivity
30
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561162263485045051561162263485 Uncompressed Connectivity
31
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561162263485895045051561162263485895 Uncompressed Connectivity
32
0 1 10 2 3 4 5 6 7 8 9 11 12 045051561162263485895596045051561162263485895596 Uncompressed Connectivity
33
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 116 Uncompressed Connectivity
34
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 Uncompressed Connectivity
35
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673 Uncompressed Connectivity
36
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 9 Uncompressed Connectivity
37
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 991011 Uncompressed Connectivity
38
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity
39
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity
40
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity
41
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity
42
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity
43
0 1 10 2 3 4 5 6 7 8 9 11 12 04505 15611 62263 48589 55969 1166117 673810 99101111 127 Uncompressed Connectivity 6 log(n) bpv
44
Maximum Connectivity Compression for Triangle Meshes
45
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.
46
The two spanning trees are: –a vertex spanning tree –its dual triangle spanning tree Turan’s observation
47
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
48
Vertex Spanning Tree
51
Triangle Spanning Tree
52
Vertex Spanning Tree
53
Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Previous work
54
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
55
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
56
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
57
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
58
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
59
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
60
Triangle Fixer: Edge-based Connectivity Compression
61
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
62
Encoding scheme An initial active boundary is defined in cw order around an arbitrary edge of the mesh.
63
One of the two initial boundary edges is defined to be the active gate. Encoding scheme
64
At every step of the encoding process the active gate is labeled with T, R, L, S, or E. Encoding scheme
65
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
66
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
67
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
68
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
69
Label T before The active gate is not adjacent to any other boundary edge.
70
Label T beforeafter The new active gate is the right edge of the included triangle.
71
Label R before The active gate is adjacent to the next edge along the active boundary.
72
Label R beforeafter The new active gate is the previous edge along the active boundary.
73
Label L before The active gate is adjacent to the previous edge along the active boundary.
74
Label L beforeafter The new active gate is the next edge along the active boundary.
75
Label S before The active gate is adjacent to some other edge of the active boundary.
76
Label S beforeafter The new active gate is the previous and the next edge along the active boundary.
77
Label E before The active gate is adjacent to the previous and the next edge along the active boundary.
78
Label E beforeafter The new active gate is popped from the stack. If the stack is empty we terminate.
79
Example Run - Encoding
81
T
82
T
83
T
84
R
85
T
86
T
87
R
88
T
89
T
90
R
91
T
92
R
93
T
94
R
95
T
96
R
97
T
98
S
99
T
100
R
101
E
102
T
103
R
104
E
106
Example Run - Decoding
107
E
108
R
109
T
110
E
111
R
112
T
113
S
114
T
115
R
116
T
117
R
118
T
119
R
120
T
121
R
122
T
123
T
124
R
125
T
126
T
127
R
128
T
129
T
130
T
132
Holes and Handles
133
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
134
Label H size before hole The active gate is adjacent to a hole of size edges/vertices.
135
Label H size beforeafter hole The new active gate is the rightmost edge of the included hole.
136
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
137
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.
138
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
139
Compressing the label sequence
140
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 13333 label encoding guarantees to use exactly 5v - 10 bits.
141
label bits code T 1 0 R3100 L3101 S3110 E3111 guarantees 5 bits per vertex 13333 label encoding
142
label bits code T 1 0 R210 L3110 S41110 E41111 guarantees 6 bits per vertex 12344 label encoding
143
previous label current encoding T 1 2 4 3 4 R 1 2 4 3 4 L 1 4 2 4 3 S 1 4 2 4 3 E 1 2 4 4 3 guarantees 6 bits per vertex fixed bit encoding
144
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
145
Example results vertices fixedmesh 33204 4.05phone 34834 4.00bunny 10952 4.22skull 766 4.09eight 38974.16femur 3078 3.99cow aac-3 2.70 1.73 2.96 1.43 3.05 2.36 2562 4.00shape 6475 4.01fandisk 0.77 1.67 holes 3 5 -- 22 -- handles -- 51 2 2 --
146
Sneak Preview
147
Triceratops 2832 vertices
148
2834 polygons Triceratops
149
2832 vertices 2834 polygons –346 triangles Triceratops
150
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals Triceratops
151
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons Triceratops
152
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons Triceratops
153
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons Triceratops
154
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons –7 octagons Triceratops
155
2832 vertices 2834 polygons –346 triangles –2266 quadrilaterals –140 pentagons –63 hexagons –10 heptagons –7 octagons –2 undecagons Triceratops
156
2832 vertices 2834 polygons Triceratops
157
2832 vertices 2834 polygons -> 11328 corners Triceratops
158
2832 vertices 2834 polygons -> 11328 corners 2832 vertices 5660 triangles Triceratops
159
2832 vertices 2834 polygons -> 11328 corners 2832 vertices 5660 triangles -> 16980 corners Triceratops
160
2832 vertices 2834 polygons -> 11328 corners 2832 vertices 5660 triangles -> 16980 corners Triceratops
161
2832 vertices 2834 polygons Triceratops
162
2832 vertices 2834 polygons -> 2834 faces Triceratops
163
2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles Triceratops
164
2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles -> 5660 faces Triceratops
165
2832 vertices 2834 polygons -> 2834 faces 2832 vertices 5660 triangles -> 5660 faces Triceratops
166
Beethoven
167
Galleon
168
Sandal
169
Shark
170
Cessna
171
Tommy-gun
172
Short Example Run
173
F4F4
174
F3F3
175
R
176
F5F5
177
R
178
F4F4
179
Example results vertices bpvmesh 2832 2.36triceratops 2372 2.60galleon 3745 2.84cessna 2655 2.89beethoven 2636 2.60sandal 2560 1.67shark 4171 tommygun 2.61 346 336 900 680 961 188 992 2266 1947 2797 2078 1985 2253 2785 140 40 180 44 7 83 84 82 62 50 10 0 38 119
180
Face Fixer: Compressing Polygon Meshes with Properties SIGGRAPH ’2000 http://www.cs.unc.edu/~isenburg/papers/is-ff-00.pdf
181
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.
182
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.