640 likes | 816 Views
Progressive Simplicial Complexes. Jovan Popovic Carnegie Mellon University. Hugues Hoppe Microsoft Research. {f 1 } : { v 1 , v 2 , v 3 } {f 2 } : { v 3 , v 2 , v 4 } …. connectivity. {v 1 } : ( x,y,z ) {v 2 } : ( x,y,z ) …. geometry.
E N D
Progressive Simplicial Complexes Jovan Popovic Carnegie Mellon University Hugues Hoppe Microsoft Research
{f1} : { v1, v2 , v3 }{f2} : { v3 , v2 , v4 }… connectivity {v1} : (x,y,z){v2} : (x,y,z)… geometry {f1} : “skin material”{f2} : “brown hair”… face attributes Triangle Meshes
{f1} : { v1, v2 , v3 }{f2} : { v3 , v2 , v4 }… connectivity {v1} : (x,y,z){v2} : (x,y,z)… geometry {f1} : “skin material”{f2} : “brown hair”… face attributes Triangle Meshes corner attrib. {v2,f1} : (nx,ny,nz) (u,v){v2,f2} : (nx,ny,nz) (u,v)…
Complex Models • Rendering • Storage • Transmission 232, 974 faces
Previous Work • Model M=(K,V,D,S) • Progressive mesh representation
(optimization) Simplification: Edge collapse ecol(vs ,vt , vs) ’ vt vl vl vr vr vs ’ vs 13,546 500 152 150 faces Mn M175 M1 M0 ecoln-1 ecol0 ecoli
150 152 500 13,546 ^ Mn=M M1 M175 M0 M0 vspl0 … vspli … vspln-1 … vspli … vspl0 vspln-1 Progressive Mesh (PM) representation Previous Work • Progressive Meshes [Hoppe, ‘96]
vspl0 vspl1 vspli-1 vspln-1 Mi Mn Application: Progressive transmission Transmit records progressively: time M0 Receiver displays: M0 (~ progressive GIF & JPEG)
3,478 M0 Mn Mi ~400K faces/sec! ~400K faces/sec! Application: Continuous-resolution LOD From PM, extract Mi of any desired complexity. 3,478 faces? M0 vspl0 vspl1 vspli-1 vspln-1 Mi
PM Features • Continuous LOD sequence • Smooth visual transitions (Geomorphs) • Progressive transmission • Space-efficient representation
Would also like: PM Restrictions • Supports only “meshes” (orientable, 2-dimensional manifolds)
M0 Mn PM Restrictions • Supports only “meshes” (orientable, 2-dimensional manifolds) • Preserves topological type
2,522 8,000 167,744 PM Restrictions • Supports only “meshes” (orientable, 2-dimensional manifolds) • Preserves topological type M0 Mn … Mi …
PM Restrictions • Supports only “meshes” (orientable, 2-dimensional manifolds) • Preserves topological type • minimal vertex num of closed g genus mesh 10 10 7 4
PM Restrictions • Volumetric data :
PM edge collapse(ecol) vertex split(vspl) Progressive Simplicial Complexes (PSC)
PM PSC edge collapse(ecol) vertex unification(vunify) vertex split(vspl) Progressive Simplicial Complexes (PSC)
PM edge collapse(ecol) vertex split(vspl) Progressive Simplicial Complexes (PSC) PSC vertex unification(vunify) generalized vertex split(gvspl)
PSC Representation arbitrary simplicial complexes ^ Mn=M M1 M22 M116 gvspl1 … gvspli … gvspln-1 PSC representation
Graph representation. • First level – principle simplices • discrete attributes
Abstract simplicial complexes Manifold-adjecent Not manifold-adjecent
bi s s’ ai ai
Connectivity Encoding case (1) case (2) case (3) case (4) 0-dim undefined undefined 1-dim 2-dim
^ M V K Simplicial Complex
^ M Simplicial Complex V K
^ M 6 4 2 3 1 7 5 abstract simplicial complex = {1, 2, 3, 4, 5, 6, 7} + simplices {1}, {2}, … 0-dim Simplicial Complex V K
^ M V K 6 4 2 3 1 7 5 Simplicial Complex abstract simplicial complex = {1, 2, 3, 4, 5, 6, 7} + simplices {1}, {2}, … 0-dim {1, 2}, {2, 3}… 1-dim
^ M V K 6 4 2 3 1 7 5 Simplicial Complex abstract simplicial complex = {1, 2, 3, 4, 5, 6, 7} + simplices {1}, {2}, … 0-dim {1, 2}, {2, 3}… 1-dim {4, 5, 6}, {6, 7, 5} 2-dim
vunify Generalized Vertex Split Encoding bi ai ai
ai gvspli = {ai}, Generalized Vertex Split Encoding vunify bi ai gvspl ai
Connectivity Encoding case (1) case (2) case (3) case (4) 0-dim undefined undefined 1-dim 2-dim
Connectivity Encoding case (1) case (2) case (3) case (4) 0-dim undefined undefined 1-dim 2-dim
Connectivity Encoding case (1) case (2) case (3) case (4) 0-dim undefined undefined 1-dim 2-dim S
Generalized Vertex Split Encoding 4 0-simplices vunify 3 bi 2 4 ai ai 5 gvspl 1 ai gvspli = {ai},
Generalized Vertex Split Encoding vunify 3 bi 2 4 ai 5 gvspl ai 1 gvspli = {ai}, 4 14223 1-simplices
Generalized Vertex Split Encoding vunify 2 bi ai 1 gvspl ai gvspli = {ai}, 4 14223 12 2-simplices
Generalized Vertex Split Encoding vunify bi ai gvspl ai gvspli = {ai}, 4 14223 12 connectivity S
Generalized Vertex Split Encoding vpos vunify bi gvspl ai gvspli = {ai}, 4 14223 12,
Generalized Vertex Split Encoding vpos vunify 2 3 bi 2 4 1 5 gvspl ai 1 gvspli = {ai}, 4 14223 12, • If a simplex has split code c in{1, 2} , all of its parents have split code c. • If a simplex has split code 3, none of its parents have split code 4.
1 1 1 1 1 1 1 2 2 22 2 2 2 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 Connectivity Encoding Constraints vunify 2 3 2 4 1 5 gvspl 1 1 2 3 4 5 1 2
Space Analysis • Average 2D manifold mesh n vertices, 3n edges, 2n triangles • PM representation n ( log2n + 4 ) bits • PSC representation n ( log2n + 7 ) bits