Progressive Simplicial Complexes Jovan Popovic Carnegie Mellon University Jovan Popovic Carnegie...
-
Upload
pearl-dawson -
Category
Documents
-
view
226 -
download
1
Transcript of Progressive Simplicial Complexes Jovan Popovic Carnegie Mellon University Jovan Popovic Carnegie...
Progressive Simplicial Progressive Simplicial ComplexesComplexes
Jovan PopovicJovan PopovicCarnegie Mellon Carnegie Mellon
UniversityUniversity
Jovan PopovicJovan PopovicCarnegie Mellon Carnegie Mellon
UniversityUniversity
Hugues HoppeHugues HoppeMicrosoft ResearchMicrosoft Research
Hugues HoppeHugues HoppeMicrosoft ResearchMicrosoft Research
Triangle Meshes
{f{f11} : { v} : { v11 , v, v22 , v , v33 } }{f{f22} : { v} : { v33 , v , v22 , v , v44 } }……
connectivityconnectivity
geometrygeometry{v{v11} : (x,y,z)} : (x,y,z){v{v22} : (x,y,z)} : (x,y,z)……
face attributesface attributes{f{f11} : } : “skin material”“skin material”{f{f22} : } : “brown hair”“brown hair”……
Triangle Meshes
{v{v22,f,f11} : (n} : (nxx,n,nyy,n,nzz) (u,v)) (u,v){v{v22,f,f22} : (n} : (nxx,n,nyy,n,nzz) (u,v)) (u,v)……
corner attrib.corner attrib.
{f{f11} : { v} : { v11 , v, v22 , v , v33 } }{f{f22} : { v} : { v33 , v , v22 , v , v44 } }……
connectivityconnectivity
geometrygeometry{v{v11} : (x,y,z)} : (x,y,z){v{v22} : (x,y,z)} : (x,y,z)……
face attributesface attributes{f{f11} : } : “skin material”“skin material”{f{f22} : } : “brown hair”“brown hair”……
•RenderingRendering
•StorageStorage
•TransmissionTransmission
•RenderingRendering
•StorageStorage
•TransmissionTransmission
Complex Models
232, 974 faces
Previous Work
Model Model M=(K,V,D,S)M=(K,V,D,S)
Progressive mesh Progressive mesh representationrepresentation
Model Model M=(K,V,D,S)M=(K,V,D,S)
Progressive mesh Progressive mesh representationrepresentation
1
( , )
set of meshes (simplicial complex of 2D orientable manifods)
{ ,... }vertex coordinates
discrete atributes of 2-smplexes
scalar atributes (e.g. normals, texturecoord.)
m
f
v f
K
V v v
D d f K
S s
1 01
1 1 0
00 1
1 0
ˆPM( ) ,{ ,..., }
ˆ n
n
n
ecol ecolecoln
vsplit vsplit vsplit
M M vsplit vsplit
M M M M
Simplification: Edge collapse
13,54613,546 500500 152152 150 faces150 faces
MM00MM11MM175175
ecolecol00ecolecoliiecolecoln-1n-1
MMnn
ecol(vecol(vs s ,v,vt t , , vvss ))
vvllvvrr
vvtt
vvss
vvssvvll vvrr
(optimization)(optimization)
’’
’’
Previous Work
Progressive MeshesProgressive Meshes [Hoppe, [Hoppe, ‘96]‘96]Progressive MeshesProgressive Meshes [Hoppe, [Hoppe, ‘96]‘96]
150150
MM00
vsplvspl00MM11
152152
MM175175
500500
… … vsplvsplii … …
13,54613,546
vsplvspln-1n-1
MMnn=M=M̂̂MM00
vsplvspl00 … … vsplvsplii … … vsplvspln-1n-1
Progressive Mesh (PM) representation
Application: Progressive transmissionTransmit records progressively:Transmit records progressively:Transmit records progressively:Transmit records progressively:
MM00
ReceiverReceiver displays: displays:
timetime
MM0 0
vsplvspl00 vsplvspl11 vsplvspli-1i-1
MMii
(~ progressive GIF & JPEG)(~ progressive GIF & JPEG) MMnn
vsplvspln-1n-1
Application: Continuous-resolution LOD
From PM, extract MFrom PM, extract Mii of any desired complexity. of any desired complexity.From PM, extract MFrom PM, extract Mii of any desired complexity. of any desired complexity.
MM00 vsplvspl00 vsplvspl11 vsplvspli-1i-1 vsplvspln-1n-1
MMii
3,478 faces?3,478 faces?
3,4783,478
MM00 MMnnMMii
~400K~400K faces/sec! faces/sec!~400K~400K faces/sec! faces/sec!
PM Features
Continuous LOD sequenceContinuous LOD sequence
Smooth visual transitions Smooth visual transitions (Geomorphs)(Geomorphs)
Progressive transmissionProgressive transmission
Space-efficient representationSpace-efficient representation
Continuous LOD sequenceContinuous LOD sequence
Smooth visual transitions Smooth visual transitions (Geomorphs)(Geomorphs)
Progressive transmissionProgressive transmission
Space-efficient representationSpace-efficient representation
Would also like:
PM Restrictions
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
PM Restrictions
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
MM00 MMnn
PM Restrictions
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
167,744167,7448,0008,0002,5222,522MM00 MMnn… … MMii … …
PM Restrictions
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
minimal vertex num of closed g genus minimal vertex num of closed g genus meshmesh
Supports only “meshes”Supports only “meshes”(orientable, 2-dimensional manifolds)(orientable, 2-dimensional manifolds)
Preserves topological typePreserves topological type
minimal vertex num of closed g genus minimal vertex num of closed g genus meshmesh 1/27 (48 1) / 2 if 2, 10 if 2g g g
7744 1100
1100
PM RestrictionsVolumetric data :Volumetric data :Volumetric data :Volumetric data :
Progressive Simplicial Complexes (PSC)
edge collapseedge collapse(ecol)(ecol)
vertex splitvertex split(vspl)(vspl)
PMPM
Progressive Simplicial Complexes (PSC)
edge collapseedge collapse(ecol)(ecol)
vertex splitvertex split(vspl)(vspl)
PMPMvertex unificationvertex unification
(vunify)(vunify)
PSCPSC
Progressive Simplicial Complexes (PSC)
edge collapseedge collapse(ecol)(ecol)
vertex splitvertex split(vspl)(vspl)
PMPMvertex unificationvertex unification
(vunify)(vunify)
generalized vertex splitgeneralized vertex split(gvspl)(gvspl)
PSCPSC
PSC representation
PSC Representation
MM11 MM2222
gvsplgvspl11MM116116
… … gvsplgvsplii … … gvsplgvspln-1n-1
MMnn=M=M̂̂
arbitrary simplicial arbitrary simplicial complexescomplexes
Abstract simplicial complexes (ASC)
is ASC of {1,.., } vertices iff
1. {1,.., }
2. { } , 1,...
3. ' , '
K m
K P m
i K i m
s K s K s s
is called of
dim | | 1
dim max dims K
s K simplex K
s s
K s
Abstract simplicial complexes (ASC)
faces( ) ( ) \ , star( ) ' '
children( ) ' dim ' dim 1
parents( ) ' star( ) dim ' dim 1
|parents( ) | 1
parents( )
s s P s s s K s s
s s s s s
s s s s s
s s boundary simplex
s s principle simplex
Abstract simplicial complexes
1
is
: 0, 1, 0 { }
topological realization of is
{ }
m
mm
j j jj
s K
open simplex s
s b b b b j s
K K s
of is ( ), where
: linear map, s.t.m d m dj j
geometric realization K K
e v
GGeometric vs toplogical eometric vs toplogical realizationsrealizations
Graph representation.Graph representation.
•First level – principle simplicesFirst level – principle simplices
discrete attributesdiscrete attributes
Abstract simplicial complexes
1 s2 s
1 s2 s
Manifold-Manifold-adjecentadjecent
Not manifold-Not manifold-adjecentadjecent
1 2
1 2
11 2
Two simplices and are - if they have
a common d-dimensional face.
Two d-adjacent (d +1)-simplices and are
- if star( ) d
s s d adjacent
s s
manifold adjacent s s
1
1 1 1
1
'{ }
: For each ({ }) : ' \{ } { }
dublicates simplices in are deleted. ' of
: is deleted , , ( ) / 2
principle in: if ' principle simplex
elsei
i i ii i i
i
i i i i i ib a a a b
isi i
ss a
K s star b K s s s b a K
K s ancestor s
V v v v v v
d s KD s K d
d
1({ },{ }, ) : i ii i i ivunify a b midp M M
( , , , )j j j j jM K V D A
1
'{ }
principle in: if ' principle simplex
elsei
isi i
ss a
d s KD s K d
d
1' ,principle in not principle ini is K s K
1
1
1. { } ( )
2. { }
parents
principle in
iK
i
s a s
s a K
1 ({ }) ' \{ } { }vunifyi ii i iK star b s s s b a K
1
1
'
1. ( ) { } ' { } ( ') '
2. { } { } ' { } ( ')
then
not princ. in
i i
i
vunify
c sK K
vunifyi
Kc sc p
parents s s c s c parents s c s c a
p s a K p c p p c star s
aa
ii
bbii
aa
ii
sss’s’
1
1 1 1
1
'{ }
: For each ({ }) : ' \{ } { }
dublicates simpleces in are deleted. ' of
: is deleted , , ( ) / 2
principle in: if ' principle simplex
elsei
i i ii i i
i
i i i i i ib a a a b
isi i
ss a
K s star b K s s s b a K
K s ancestor s
V v v v v v
d s KD s K d
d
1({ },{ }, ) : i ii i i ivunify a b midp M M
( , , , )j j j j jM K V D A
1
'
: If was deleted then redistributed to ( ) \ ({ , })
If ( ) \ ({ , }) then if 'principle in ,
else discarded.
i is
is s
s
A s K a MN s star a b
MN s star a b a a s K
a
* MN – manifold adjacent * MN – manifold adjacent neighborsneighbors
( , , , )j j j j jM K V D A
1({ }, , , , , ) :K D A i ii i i i i i igvsplit a C midp v C C M M
ia
1 1
(4)
(1) (2) (3)
: For each ({ }) : ' according to
' , ( \{ }) { 1}, , ( \{ }) { 1},
, ( \{ }) { 1}, { 1}
i i i Ki i
i i
i
K s star a K s s K C
s s s a i s s a i
s s a i s i
{ }
{ }{ }
{ }, { }
1.
2.
3.
4. { , }, { }, { }
vunify i
p a
p bp a s K
p b p a
p a b p b p a
1 1
{ , } 1({ }) ({ }) 2 , , ,i i
a b i
K Kstar b star a x p x a b p p K
Connectivity Encoding
case case (1)(1)
case case (2)(2)
case case (3)(3)
case case (4)(4)
0-dim0-dim
1-1-dimdim
2-dim2-dim
undefinundefineded
undefinundefineded
( , , , )j j j j jM K V D A
1({ }, , , , , ) :K D A i ii i i i i i igvsplit a C midp v C C M M
, , are sorted by simplex dimension first, then by simplex idK D Ai i iC C C
ia
1 1
1 1 11
1
1
(4)
(1) (2) (3)
: For each ({ }) : ' according to
' , ( \{ }) { 1}, , ( \{ }) { 1},
, ( \{ }) { 1}, { 1}
: , ,
: according to
: accordin
i i i i
i i i Ki i
i i
i
i i i i i ii a i a a a i
i Di
i
K s star a K s s K C
s s s a i s s a i
s s a i s i
V v v v v v v v
D C
A
g to AiC
Geomorps. Geomorps. (smooth (smooth transform.)transform.)Interpolation between , 1
correspondance { } ( )
,( )
( ) ,
c f
f f c c
f cf c
j
M M c f n
K j p j K
j j cp j
p b j c
( )
01
( ) ( , ( ), , ( ))
( ) (1 ) ,
( ) (1 ) , ( )
f c
f f
f cj j p j
f c fs s s
M K V D A
v v v
a a a s P K
Simplicial Complex
VV KKMM̂̂
Simplicial Complex
VV KKMM̂̂
KK
Simplicial Complex
VVMM̂̂ 1122 33 44
55
66
77
= {1, 2, 3, 4, 5, 6, 7} + = {1, 2, 3, 4, 5, 6, 7} + simplicessimplices
abstract abstract simpliciasimplicia
l l complexcomplex
{1}, {2}, …{1}, {2}, … 0-0-dimdim
Simplicial Complex
5511
22 33 4466
77
= {1, 2, 3, 4, 5, 6, 7} + = {1, 2, 3, 4, 5, 6, 7} + simplicessimplices
VV KKMM̂̂
{1}, {2}, …{1}, {2}, … 0-0-dimdim{1, 2}, {2, 3}…{1, 2}, {2, 3}…1-1-dimdim
abstract abstract simpliciasimplicia
l l complexcomplex
Simplicial Complex
5511
22 33 4466
77
= {1, 2, 3, 4, 5, 6, 7} + = {1, 2, 3, 4, 5, 6, 7} + simplicessimplices
{1}, {2}, …{1}, {2}, … 0-0-dimdim{1, 2}, {2, 3}…{1, 2}, {2, 3}…1-1-dimdim
VV KKMM̂̂
{4, 5, 6}, {6, 7, 5}{4, 5, 6}, {6, 7, 5}2-dim2-dim
abstract abstract simpliciasimplicia
l l complexcomplex
Generalized Vertex Split Encoding
vunifvunifyy
aa
iiaa
ii
bbii
Generalized Vertex Split Encoding
gvspgvspll
vunifvunifyy
aa
ii
gvsplgvsplii = = {a {aii},},
aa
iiaa
ii
bbii
Connectivity Encoding
case case (1)(1)
case case (2)(2)
case case (3)(3)
case case (4)(4)
0-dim0-dim
1-1-dimdim
2-dim2-dim
undefinundefineded
undefinundefineded
Connectivity Encoding
case case (1)(1)
case case (2)(2)
case case (3)(3)
case case (4)(4)
0-dim0-dim
1-1-dimdim
2-dim2-dim
undefinundefineded
undefinundefineded
Connectivity Encoding
case case (1)(1)
case case (2)(2)
case case (3)(3)
case case (4)(4)
0-dim0-dim
1-1-dimdim
2-dim2-dim
undefinundefineded
undefinundefineded
SS
gvsplgvsplii = = {a {aii},},
Generalized Vertex Split Encoding
vunifvunifyy
aa
ii
gvspgvspll
0-0-simplicessimplices
44
11
2233
44
55aa
iiaa
ii
bbii
Generalized Vertex Split Encoding
vunifvunifyy
aa
ii
gvsplgvsplii = = {a {aii}, 4 14223}, 4 14223
gvspgvspll
1-1-simplicessimplices
11
2233
44
55aa
ii
bbii
gvsplgvsplii = = {a {aii}, 4 14223 }, 4 14223 1212
Generalized Vertex Split Encoding
vunifvunifyy
aa
ii
2-2-simplicessimplices
gvspgvspll
aa
ii
bbii
11
22
gvsplgvsplii = = {a {aii}, 4 14223 }, 4 14223 1212
Generalized Vertex Split Encoding
vunifvunifyy
aa
ii
connectivitconnectivityy
gvspgvspll
SS
aa
ii
bbii
Generalized Vertex Split Encoding
vunifvunifyy
gvsplgvsplii = = {a {aii}, 4 14223 }, 4 14223 12,12,
vpos
gvspgvspll
aa
ii
bbii
Generalized Vertex Split Encoding
vunifvunifyy
gvsplgvsplii = = {a {aii}, 4 14223 }, 4 14223 12,12,
vpos
gvspgvspll
aa
ii
bbii
11
2233
44
5511
22
•If a simplex has split code If a simplex has split code c c inin {1, 2} , all of its parents have {1, 2} , all of its parents have split code split code cc..
•If a simplex has split code 3, none of its parents have split If a simplex has split code 3, none of its parents have split code 4.code 4.
1. { }, 2. { } { }vunifyp a p b p a
3. { }, { } { }vunifyp b p a p a
Connectivity Encoding Constraints
vunifvunifyy
gvspgvspll
11 22 44 55 11 2233
11
2233
44
5511
22
11 1 1 11 1 1 1 1 11 1 12 2 2 2 22 22 2 2 2 2 22
33 33 3 3 3 3 3 3 33 3 33 344 4 4 44 4 4 4 4 4 4 4 44 4
Space Analysis
Average 2D manifold meshAverage 2D manifold meshn vertices, 3n edges, 2n trianglesn vertices, 3n edges, 2n triangles
PM representationPM representation
n ( logn ( log22n + 4 ) bitsn + 4 ) bits
PSC representationPSC representation
n ( logn ( log22n + 7 ) bitsn + 7 ) bits
Average 2D manifold meshAverage 2D manifold meshn vertices, 3n edges, 2n trianglesn vertices, 3n edges, 2n triangles
PM representationPM representation
n ( logn ( log22n + 4 ) bitsn + 4 ) bits
PSC representationPSC representation
n ( logn ( log22n + 7 ) bitsn + 7 ) bits
PSC Construction
Form a set of candidate vertex Form a set of candidate vertex pairspairs
•1-simplices of K some pairs from 1-simplices of K some pairs from different different components components
Form a set of candidate vertex Form a set of candidate vertex pairspairs
•1-simplices of K some pairs from 1-simplices of K some pairs from different different components components
For each candidate vertex pairs a, For each candidate vertex pairs a, b :b :
• calculate accuracy of vunify (a,b)calculate accuracy of vunify (a,b)
Sort candidate vertices according Sort candidate vertices according to accuracyto accuracy
For each candidate vertex pairs a, For each candidate vertex pairs a, b :b :
• calculate accuracy of vunify (a,b)calculate accuracy of vunify (a,b)
Sort candidate vertices according Sort candidate vertices according to accuracyto accuracy
PSC ConstructionHow to get pairs from different How to get pairs from different componentscomponents
• Octree of model’s bboxOctree of model’s bbox
How to get pairs from different How to get pairs from different componentscomponents
• Octree of model’s bboxOctree of model’s bbox
PSC ConstructionHow to get pairs from different How to get pairs from different componentscomponents
• Delaunay triangulation KDelaunay triangulation KDTDT
How to get pairs from different How to get pairs from different componentscomponents
• Delaunay triangulation KDelaunay triangulation KDTDT
No point in No point in PP is is inside the inside the circumcircles of any circumcircles of any simplex in simplex in KKDTDT
Center of Center of circumcircles gives circumcircles gives Voronoi diagram Voronoi diagram
Unify pair with lowest costUnify pair with lowest cost•updating costs of affected candidatesupdating costs of affected candidates
Unify pair with lowest costUnify pair with lowest cost•updating costs of affected candidatesupdating costs of affected candidates
PSC Construction
Form a set of candidate vertex Form a set of candidate vertex pairspairs
•1-simplices of K 1-simplices of K ++ 1-simplices of K 1-simplices of KDTDT
Compute cost of each vertex Compute cost of each vertex pairpair
•∆∆E = ∆EE = ∆Edistdist + ∆E + ∆Ediscdisc + ∆ E + ∆ Earea area + E+ Efoldfold
Form a set of candidate vertex Form a set of candidate vertex pairspairs
•1-simplices of K 1-simplices of K ++ 1-simplices of K 1-simplices of KDTDT
Compute cost of each vertex Compute cost of each vertex pairpair
•∆∆E = ∆EE = ∆Edistdist + ∆E + ∆Ediscdisc + ∆ E + ∆ Earea area + E+ Efoldfold
Form a set of candidate vertex Form a set of candidate vertex pairspairsForm a set of candidate vertex Form a set of candidate vertex pairspairs
PSC Construction
1-simplices of KDT1-simplices of K
candidate vertex pairs
Computing ∆E 2 2
ˆˆ {P( ) samples}
1
( ) ( , ) ( , )
( ) ( )
distx Mp M
i idist dist dist
E M d p M d x M
E E M E M
' ''
( ) penelizes in
is ', '' parent( ) :
Or boundaysimplex .
disc
s s
E M sharp simplices K
s K sharp simplex s s s d d
s
Computing ∆E
( ) penalizes surface folding caused byfoldE M vunify
1
2
star( ) star( )
principle in
2
{ , }
( )
simple version: ( )
i
areas a b
s K
ispring j k
j k V
E area s
E M v v
Simplification Results
72,346 72,346 trianglestriangles
674 triangles674 triangles
Simplification Results
8,936 8,936 trianglestriangles
170 170 trianglestriangles
PSC Features Video
Destroyer PSC sequenceDestroyer PSC sequence
PM, PSC comparisonPM, PSC comparison
PSC GeomorphsPSC Geomorphs
Line DrawingLine Drawing
Destroyer PSC sequenceDestroyer PSC sequence
PM, PSC comparisonPM, PSC comparison
PSC GeomorphsPSC Geomorphs
Line DrawingLine Drawing
PSC Features Video
PSCPSC
VV KK
MM̂̂
MM11
gvsplgvspl
progressive geometry progressive geometry and topologyand topology
losslesslossless
any triangulationany triangulation
single single vertexvertex
PSC Summary
arbitrary arbitrary simplicial simplicial complexcomplex
Continuous LOD sequenceContinuous LOD sequence
Smooth transitions Smooth transitions (Geomorphs)(Geomorphs)
Progressive transmissionProgressive transmission
Space-efficient representationSpace-efficient representation
Continuous LOD sequenceContinuous LOD sequence
Smooth transitions Smooth transitions (Geomorphs)(Geomorphs)
Progressive transmissionProgressive transmission
Space-efficient representationSpace-efficient representation
PSC Summary
Supports topological changesSupports topological changes
Models of arbitrary dimensionModels of arbitrary dimension
Supports topological changesSupports topological changes
Models of arbitrary dimensionModels of arbitrary dimensione.g. LOD in volume renderinge.g. LOD in volume renderinge.g. LOD in volume renderinge.g. LOD in volume rendering