Presentation is loading. Please wait.

Presentation is loading. Please wait.

Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression.

Similar presentations


Presentation on theme: "Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression."— Presentation transcript:

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

49

50

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

80

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

105

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

131

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


Download ppt "Martin Isenburg University of North Carolina at Chapel Hill Triangle Fixer: Edge-based Connectivity Compression."

Similar presentations


Ads by Google