Download presentation
Presentation is loading. Please wait.
1
http://www.cs.unc.edu/~isenburg/trianglestripcompression/
2
Martin Isenburg Triangle Strip Compression University of North Carolina at Chapel Hill
3
Introduction A new edge-based encoding scheme for mesh connectivity.
4
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations
5
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation
6
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding
7
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding
8
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding include triangle strip information at little additional costs
9
A Triangle Mesh
10
A Stripified Triangle Mesh
11
Triangle Strips
12
Technique for efficient rendering of triangle meshes. Reduce data transfer between main memory and render engine. Requires built-in buffer for two (previous) vertices. Supported in today’s graphic boards. Triangle Strips
13
Rendering with Triangles
15
Rendering with Triangle Strips
18
v 0 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 8 v2v2 v1v1 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8 v0v0 7 triangles 9 vertices Sequential Triangle Strip
19
Sequential Generalized
20
v2v2 v1v1 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8 v0v0 v 0 v 1 v 2 v 3 v 2 v 5 v 4 v 7 v 6 v 8 7 triangles 10 vertices Generalized Triangle Strip
21
v2v2 v1v1 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8 v0v0 v 0 v 1 v 2 v 3 v 2 v 5 v 4 v 7 v 6 v 8 7 triangles 10 vertices Generalized Triangle Strip
22
v2v2 v1v1 v3v3 v4v4 v5v5 v6v6 v7v7 v8v8 v0v0 v 0 v 1 v 2 v 3 v 2 v 5 v 4 v 7 v 6 v 8 7 triangles 10 vertices Generalized Triangle Strip v2v2 swap
23
finding good set of triangle strips (e.g. few swaps, restarts) isn’t easy computing optimal solution is NP hard proposed tools with good heuristics: –STRIPE(96, Evans et al.) –SWAPS(97, Speckmann & Snoeyink) –FGTS(99, Xiang et al.) Stripification Algorithms
24
Storing a Mesh
25
Where are the vertices located ? mesh geometry Which vertices form a triangle? mesh connectivity Storing a Mesh
26
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
27
list of vertices list of triangles 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
28
list of vertices list of triangles 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
29
list of vertices list of triangles 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
30
list of vertices list of triangles 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
31
list of vertices list of triangles 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
32
list of vertices list of triangles 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..... Connectivity Storage costs: 6 log(n) bpv
33
Storing a Stripified Mesh
34
Where are the vertices located ? mesh geometry Which vertices form a triangle? mesh connectivity Storing a Stripified Mesh
35
Where are the vertices located ? mesh geometry Which vertices form a triangle? mesh connectivity Which triangles form a strip? mesh stripification Storing a Stripified Mesh
36
Which vertices form a triangle strip? mesh connectivity mesh stripification Storing a Stripified Mesh Where are the vertices located ? mesh geometry
37
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
38
list of verticeslist of triangle strips x 0 y 0 z 0 1 4 20 30 0... x 1 y 1 z 1 1 0 40 20 4... x 2 y 2 z 2 7 4 50 80 4... x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Standard Representation.........
39
list of verticeslist of triangle strips x 0 y 0 z 0 1 4 20 30 0... x 1 y 1 z 1 1 0 40 20 4... x 2 y 2 z 2 7 4 50 80 4... x 3 y 3 z 3 4x 4 y 4 z 4 6 4..... x n y n z n Storage costs: 2~3 log(n) bpv Connectivity and Stripification.........
40
Connectivity Compression for Triangle Meshes
41
Keeler Westbrook [ 95 ] Taubin Rossignac [ 96 ] Tauma Gotsman [ 98 ] Rossignac [ 98 ] DeFloriani et al [ 99 ] Isenburg Snoeyink [ 99 ] Compression Techniques
42
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) Compression Techniques
43
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 (--) Compression Techniques
44
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 (--) Compression Techniques
45
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) Compression Techniques
46
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) Compression Techniques
47
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 (--) Compression Techniques
48
strip-internal edges
49
1 1 1 1 1 1 1 1 1 1 1 1
50
1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 bpv strip-internal edges
51
Triangle Fixer
52
Encoding scheme Define initial active boundary around arbitrary edge of mesh.
53
Define initial active gate as one of the two boundary edges. Encoding scheme
54
Label active gate with T, R, L, S, or E. Encoding scheme
55
Label active gate with T, R, L, S, or E. Which label ? Depends on its adacency relation with the boundary.
56
Encoding scheme Label active gate with T, R, L, S, or E. Which label ? Depends on its adacency relation with the boundary. Update active boundary and active gate.
57
Encoding scheme Label active gate with T, R, L, S, or E. Which label ? Depends on its adacency relation with the boundary. Update active boundary and active gate. Boundary is expanded (T), is shrunk (R and L), is split (S), or is terminated (E).
58
Label T before Active gate not adjacent to other boundary edge.
59
Label T beforeafter
60
Label R before Active gate adjacent to next edge along active boundary.
61
Label R beforeafter
62
Label L before Active gate adjacent to previous edge along active boundary.
63
Label L beforeafter
64
Label S before Active gate adjacent to some other edge of active boundary.
65
Label S Active gate adjacent to some other edge of active boundary.
66
Label S before Active gate adjacent to some other edge of active boundary.
67
Label S beforeafter
68
Label E before Active gate adjacent to previous and next edge along active boundary.
69
Label E beforeafter
70
Example Run: Encoding
73
T
74
T
75
T
76
T
77
T
78
R
79
T
80
T
81
T
82
T
83
R
84
T
85
T
86
T
87
T
88
R
89
T
90
H 10
91
R
92
R
93
R
94
R
95
R
96
R
97
R
98
R
99
E
101
Example Run: Decoding
102
E
103
R
104
R
105
R
106
R
107
R
108
R
109
R
110
R
111
H 10
112
T
113
R
114
T
115
T
116
T
117
T
118
R
119
T
120
T
121
T
122
T
123
R
124
T
125
T
126
T
127
T
128
T
131
Holes and Handles
132
Simple Mesh
133
Mesh with Holes
134
Mesh with Handle
135
Mesh with Handle and Holes
136
Encoding a hole use new label H associate integer called size with label H that specifies number of edges/vertices around hole one label H size per hole total number of labels remains equal to number of mesh edges
137
Label H size before hole Active gate adjacent to hole of size edges/vertices.
138
Label H size beforeafter hole
139
Encoding a handle use new label M associate three integers called index, offset 1, and offset 2 with label M that specify current configuration one label M idx,off 1,off 2 per handle total number of labels remains equal to number of mesh edges
140
Label M idx,off 1,off 2 before offset 1 offset 2 index in stack Active gate adjacent to some edge of boundary in stack.
141
Label M idx,off 1,off 2 beforeafter offset 1 offset 2 index in stack
142
Triangle Strip Compression
143
let triangle strips guide the mesh traversal replace label T with labels T R, T L, T B, and T E traversing along strip means progress for both: –encoding connectivity –encoding stripification
144
Label T R Triangle strip leaves triangle on the right. before
145
Label T R beforeafter
146
Label T L Triangle strip leaves triangle on the left. before
147
Label T L beforeafter
148
Label T B Triangle strip leaves triangle on the left and on the right. before
149
Label T B beforeafter
150
Label T E (case 1) Triangle strip ends in triangle. AND It’s the last triangle of current strip. It doesn’t follow a label of type T B. before
151
Label T E (case 1) beforeafter
152
Label T E (case 2) before Triangle strip ends in triangle. AND Not the last triangle of current strip. It follows a label of type T B.
153
Label T E (case 2) afterbefore
154
Example Run: Encoding
158
TLTL
159
TRTR
160
TRTR
161
TRTR
162
TETE
165
TBTB
166
TLTL
167
TRTR
168
TRTR
169
TLTL
170
TRTR
171
TRTR
172
TETE
174
TETE
177
H 10
178
R
179
R
180
R
181
R
182
R
183
S
184
L
185
L
186
E
187
R
188
R
189
E
191
Example Run: Decoding
192
T L T R T L T L T E T B T L T R T R T L T R T R T E T E H 10 RRR RRSLLE RRE calculate offset * Offset = 6
193
E
194
R
195
R
196
E
197
L
198
L
199
S
200
R
201
R
202
R
203
R
204
R
205
H 10
206
TETE
207
TE*TE*
208
TE*TE*
209
TE*TE*
210
TE*TE*
211
TRTR
212
TRTR
213
TLTL
214
TRTR
215
TRTR
216
TLTL
217
TBTB
220
TETE
221
TRTR
222
TRTR
223
TRTR
224
TLTL
228
Compressing the label sequence
229
map label types to unique bit-codes example: frequent labels are mapped to short bit-codes make mapping dependent on last label (e.g. one label memory) very simple implementation Fixed-Bit Encoding T 0R 01S 0001 L 001E 0011
230
approaches the entropy of the label sequence adaptive version three label memory due to small number of different symbols, probability tables require less than 4 KB implemented with fast bit operations Arithmetic Encoding
231
Results
232
Fandisk
233
Eight
234
Bunny
235
Triceratops
236
Skull
237
aac-3 vertices mesh Results 2832 4.00triceratops3.494.122.52 34834 4.00bunny2.403.691.73 10952 4.22skull4.184.782.96 766 4.09eight 38974.16femur 1.78 4.02 3.46 4.48 1.43 3.05 250 3.99bishop1.78 2562 4.00shape 6475 4.01fandisk 0.62 2.25 2.98 3.09 3.61 2.36 0.77 1.67 fixed
238
Video
239
Many polygon meshes include additional information Surface Normals Texture coordinates Colours Mesh Properties
240
Mesh properties can be attached to Mesh Properties
241
Mesh properties can be attached to vertices Mesh Properties
242
Mesh properties can be attached to vertices faces Mesh Properties
243
Mesh properties can be attached to vertices faces corners Mesh Properties
244
Make stripification process difficult. Corner attributes must be consistent for vertices in strip. But... mapping attributes to strip corners is cheaper than mapping to triangle corners. Usually requires 1 bit per corner. Immediate savings of 50 % and more! Corner Attributes
245
Number of Corners strip vertices mesh 2832 16980triceratops5948 34834 208353bunny71909 10952 66312skull23304 766 4608eight 389723394femur 1584 8272 250 1488bishop 2562 15360shape 6475 38838fandisk 498 5124 13394 triangles
246
Compact encodings for stripified triangle meshes. Exploit existing correlation between connectivity and stripification. Edge-based encoding has other useful applications (non-triangular meshes). Summary and Current Work
247
Bettina Speckmann for fruitful discussions on triangle strips Xinyu Xiang for triangulating some of my test models my supervisor Jack Snoeyink for reviewing the paper Acknowledgements
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.