2.47k likes | 2.48k Views
http://www.cs.unc.edu/~isenburg/trianglestripcompression/. Triangle Strip Compression. Martin Isenburg. University of North Carolina at Chapel Hill. Introduction. A new edge-based encoding scheme for mesh connectivity. Introduction. A new edge-based encoding scheme for mesh connectivity.
E N D
Triangle Strip Compression Martin Isenburg University of North Carolina at Chapel Hill
Introduction A new edge-based encoding schemefor mesh connectivity.
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding
Introduction A new edge-based encoding scheme for mesh connectivity. compact mesh representations simple implementation fast decoding include triangle strip informationat little additional costs
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. • Supportedintoday’sgraphicboards.
v0 v2 v1 v4 v3 v6 v5 v7 v8 Sequential Triangle Strip v0 v1 v2 v3 v4 v5 v6 v7 v8 7 triangles 9 vertices
v0 v2 v1 v4 v3 v6 v5 v7 v8 Generalized Triangle Strip 7 triangles 10 vertices v0 v1 v2 v3 v2 v5 v4 v7 v6 v8
v0 v2 v1 v4 v3 v6 v5 v7 v8 Generalized Triangle Strip 7 triangles 10 vertices v0 v1 v2v3 v2v5 v4 v7 v6 v8
v0 v2 v1 v4 v3 v6 v5 v7 v8 Generalized Triangle Strip swap v2 7 triangles 10 vertices v0 v1 v2v3 v2v5 v4 v7 v6 v8
Stripification Algorithms • 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.)
Storing a Mesh • Where are the vertices located ? mesh geometry • Which vertices form a triangle? mesh connectivity
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
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
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
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
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
Standard Representation list of vertices list of triangles x0 y0 z0 1 4 2 x1 y1 z1 2 3 03 4 x2 y2 z2 u2 v2 w24 0 53 4 x3 y3 z3 u3 v3 w33 4 53 6 4 x4 y4 z4 u4 v4 w45 0 2 . . . . . xn yn zn . . . . . . . . . . . . . . .
Connectivity list of vertices list of triangles x0 y0 z01 4 2 x1 y1 z12 3 0 3 4 x2 y2 z2 u2 v2 w24 0 5 3 4 x3 y3 z3 u3 v3 w33 4 5 3 6 4x4 y4 z4 u4 v4 w45 0 2 . . . . . xn yn zn Storage costs: 6 log(n) bpv . . . . . . . . . . . . . . .
Storing a Stripified Mesh • Where are the vertices located ? mesh geometry • Which vertices form a triangle? mesh connectivity
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
Storing a Stripified Mesh • Where are the vertices located ? mesh geometry • Which vertices form a triangle strip? mesh connectivity mesh stripification
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
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 . . . . . . . . . . . . . . . . . . . . . . . . . . .
Connectivity and Stripification list of vertices list of triangle strips x0 y0 z01 4 20 30 0 . . . x1 y1 z11 0 40 20 4 . . . x2 y2 z2 7 4 50 80 4 . . . x3 y3 z3 4x4 y4 z4 6 4. . . . . xn yn zn Storage costs: 2~3 log(n) bpv . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compression Techniques • Keeler Westbrook[95] • Taubin Rossignac[96] • Tauma Gotsman[98] • Rossignac[98] • DeFloriani et al[99] • Isenburg Snoeyink[99]
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]
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]
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]
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]
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]
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]
strip-internal edges 1 1 1 1 1 1 1 1 1 1 1 1
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