Mesh Collapse Compression - PowerPoint PPT Presentation

About This Presentation
Title:

Mesh Collapse Compression

Description:

Title: Mesh Collapse Compression Author: Martin Isenburg Last modified by: Martin Isenburg Created Date: 7/29/1999 3:28:42 AM Document presentation format – PowerPoint PPT presentation

Number of Views:157
Avg rating:3.0/5.0
Slides: 248
Provided by: MartinI3
Learn more at: http://www.cs.unc.edu
Category:

less

Transcript and Presenter's Notes

Title: Mesh Collapse Compression


1
http//www.cs.unc.edu/isenburg/trianglestripcompr
ession/
2
Triangle Strip Compression
Martin Isenburg
University of North Carolina at Chapel Hill
3
Introduction
  • A new edge-based encoding schemefor 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
Triangle Strips
  • 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 todays graphic boards.

13
Rendering with Triangles













14
Rendering with Triangles
15
Rendering with Triangle Strips













16
Rendering with Triangle Strips













17
Rendering with Triangle Strips











18
Sequential Triangle Strip

v0 v1 v2 v3 v4 v5 v6 v7 v8

7 triangles



9 vertices




19









20
Generalized Triangle Strip

7 triangles




10 vertices



v0 v1 v2 v3 v2 v5 v4 v7 v6 v8

21
Generalized Triangle Strip

7 triangles




10 vertices



v0 v1 v2 v3 v2 v5 v4 v7 v6 v8

22
Generalized Triangle Strip

swap
v2
7 triangles





10 vertices



v0 v1 v2 v3 v2 v5 v4 v7 v6 v8

23
Stripification Algorithms
  • finding good set of triangle strips (e.g. few
    swaps, restarts) isnt 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.)

24
Storing a Mesh
25
Storing a Mesh
  • Where are the vertices located ? ? mesh
    geometry
  • Which vertices form a triangle? ? mesh
    connectivity

26
Standard Representation
list of vertices x0 y0 z0 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
27
Standard Representation
list of vertices list of triangles
x0 y0 z0 1 4 20 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
28
Standard Representation
list of vertices list of triangles
x0 y0 z0 1 4 20 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
29
Standard Representation
list of vertices list of triangles
x0 y0 z0 1 4 20 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
30
Standard Representation
list of vertices list of triangles
x0 y0 z0 1 4 20 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
31
Standard Representation
list of vertices list of triangles
x0 y0 z0 1 4 2 x1 y1 z1
2 3 0 3 4 x2 y2 z2 u2 v2 w2
4 0 5 3 4 x3 y3 z3 u3 v3 w3
3 4 5 3 6 4 x4 y4 z4 u4 v4 w4
5 0 2 . . . . . xn yn zn
. . . . .
. . . . .
. . . . .
32
Connectivity
list of vertices list of triangles
x0 y0 z0 1 4 2 x1 y1 z1
2 3 0 3 4 x2 y2 z2 u2 v2 w2
4 0 5 3 4 x3 y3 z3 u3 v3 w3
3 4 5 3 6 4 x4 y4 z4 u4 v4 w4
5 0 2 . . . . . xn yn zn
Storage costs 6 log(n) bpv
. . . . .
. . . . .
. . . . .
33
Storing a Stripified Mesh
34
Storing a Stripified Mesh
  • Where are the vertices located ? ? mesh
    geometry
  • Which vertices form a triangle? ? mesh
    connectivity

35
Storing a Stripified Mesh
  • Where are the vertices located ? ? mesh
    geometry
  • Which vertices form a triangle? ? mesh
    connectivity
  • Which triangles form a strip? ?
    mesh stripification

36
Storing a Stripified Mesh
  • Where are the vertices located ? ? mesh
    geometry
  • Which vertices form a triangle strip? ? mesh
    connectivity ? mesh stripification

37
Standard Representation
list of vertices x0 y0 z0 x1 y1 z1
x2 y2 z2 x3 y3 z3 4 x4 y4 z4 6 4 . . .
. . xn yn zn
38
Standard Representation
list of vertices list of triangle strips x0
y0 z0 1 4 20 30 0 . . . x1 y1
z1 1 0 40 20 4 . . . x2 y2
z2 7 4 50 80 4 . . . x3 y3 z3
4 x4 y4 z4 6 4 . . . . . xn yn zn
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
39
Connectivity and Stripification
list of vertices list of triangle strips x0
y0 z0 1 4 20 30 0 . . . x1 y1
z1 1 0 40 20 4 . . . x2 y2
z2 7 4 50 80 4 . . . x3 y3 z3
4 x4 y4 z4 6 4 . . . . . xn yn zn
Storage costs 23 log(n) bpv
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
40
Connectivity Compressionfor Triangle Meshes
41
Compression Techniques
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

42
Compression Techniques
Short Encodings of Planar Graphs and Maps 4.6 bpv
(4.6)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

43
Compression Techniques
Topological Surgery 2.4 7.0 bpv (--)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

44
Compression Techniques
Triangle Mesh Compression 0.2 2.9 bpv (--)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

45
Compression Techniques
Edgebreaker 3.2 4.0 bpv (4.0)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

46
Compression Techniques
A Simple and Efficient Encoding for Triangle
Meshes 4.2 5.4 bpv (6.0)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

47
Compression Techniques
Mesh Collapse Compression 1.1 3.4 bpv (--)
  • Keeler Westbrook 95
  • Taubin Rossignac 96
  • Tauma Gotsman 98
  • Rossignac 98
  • DeFloriani et al 99
  • Isenburg Snoeyink 99

48
strip-internal edges













49
strip-internal edges


1
1


1
1

1

1
1


1
1

1
1
1




50
strip-internal edges
3 bpv
0


0
0
1
1
0


1
1

0
0
1
0
0

1
0
1


1
1

0
1
1
0
1
0


0
0


51
Triangle Fixer
52
Encoding scheme
Define initial active boundary around arbitrary
edge of mesh.






53
Encoding scheme
Define initial active gate as one of the two
boundary edges.








54
Encoding scheme
Label active gate with T, R, L, S, or E.
55
Encoding scheme
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
Active gate not adjacent to other boundary edge.
before









59
Label T
before
after



















60
Label R
Active gate adjacent to next edge along active
boundary.
before










61
Label R
before
after



















62
Label L
Active gate adjacent to previous edge along
active boundary.
before










63
Label L
before
after



















64
Label S
Active gate adjacent to some other edge of
active boundary.
before










65
Label S
Active gate adjacent to some other edge of
active boundary.



























66
Label S
Active gate adjacent to some other edge of
active boundary.
before










67
Label S
before
after




















68
Label E
Active gate adjacent to previous and next edge
along active boundary.
before









69
Label E
before
after
















70
Example Run Encoding
71













72















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








H10















91








R















92








R














93








R













94








R












95








R











96







R











97






R











98





R











99




E











100













101
Example Run Decoding
102
E
103
R




104


R




105




R




106






R




107








R




108








R






109








R








110








R










111








H10












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











129















130













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 Hsize per hole
  • total number of labels remains equal to number of
    mesh edges

137
Label Hsize
Active gate adjacent to hole of size
edges/vertices.
before



hole







138
Label Hsize
before
after







hole














139
Encoding a handle
  • use new label M
  • associate three integers called index, offset1,
    and offset2 with label M that specify current
    configuration
  • one label Midx,off1,off2 per handle
  • total number of labels remains equal to number of
    mesh edges

140
Label Midx,off1,off2
Active gate adjacent to some edge of boundary in
stack.
before











141
Label Midx,off1,off2
before
after




offset2




offset1
index in stack














142
Triangle Strip Compression
143
Triangle Strip Compression
  • let triangle strips guide the mesh traversal
  • replace label T with labels TR, TL, TB, and TE
  • traversing along strip means progress for both
  • encoding connectivity
  • encoding stripification

144
Label TR
Triangle strip leaves triangle on the right.
before











145
Label TR
before
after























146
Label TL
Triangle strip leaves triangle on the left.
before











147
Label TL
before
after























148
Label TB
Triangle strip leaves triangle on the left and on
the right.
before











149
Label TB
before
after























150
Label TE (case 1)
Triangle strip ends in triangle.
AND Its the last triangle of current
strip. It doesnt follow a label of
type TB.
before











151
Label TE (case 1)
before
after























152
Label TE (case 2)
Triangle strip ends in triangle.
AND Not the last triangle of current
strip. It follows a label of type TB.
before











153
Label TE (case 2)
after
before























154
Example Run Encoding
155













156













157















158




TL











159





TR











160






TR











161







TR











162








TE











163




















164




















165








TB












166








TL













167








TR













168








TR














169








TL















170








TR















171








TR
















172









TE
















173

























174









TE
















175


























176


























177









H10

















178








R


















179








R

















180
R
181








R















182








R














183







S














184
L
185






L














186






E













187






R











188





R











189




E











190













191
Example Run Decoding
192
calculate offset
TL TR TL TL TE TB TL TR TR TL TR
TR TE TE H10 R R R R R S L L E R R E

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








H10


















206








TE


















207








TE

















208








TE

















209








TE

















210








TE

















211








TR

















212







TR

















213







TL
















214







TR
















215







TR















216







TL














217







TB














218




















219




















220







TE













221







TR












222






TR












223





TR












224




TL












225















226















227













228
Compressing the label sequence
229
Fixed-Bit Encoding
  • map label types to unique bit-codesexample
  • frequent labels are mapped to short bit-codes
  • make mapping dependent on last label (e.g. one
    label memory)
  • very simple implementation

T ? 0 R ? 01 S ? 0001 L ? 001 E ? 0011
230
Arithmetic Encoding
  • 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

231
Results
232
Fandisk
233
Eight
234
Bunny
235
Trice
Write a Comment
User Comments (0)
About PowerShow.com