Você está na página 1de 50

Progressive Simplicial Complexes

Jovan Popovic
Carnegie Mellon University
Hugues Hoppe
Microsoft Research
Triangle Meshes
{v
2
,f
1
} : (n
x
,n
y
,n
z
) (u,v)
{v
2
,f
2
} : (n
x
,n
y
,n
z
) (u,v)

corner attrib.
{f
1
} : { v
1
, v
2
, v
3
}
{f
2
} : { v
3
, v
2
, v
4
}

connectivity
geometry
{v
1
} : (x,y,z)

{v
2
} : (x,y,z)

face attributes
{f
1
} : skin material
{f
2
} : brown hair

Previous Work
Model M=(K,V,D,S)



Progressive mesh representation
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
=
=
= e
=
( )
1 0 1
1 1 0
0
0 1
1 0

PM( ) ,{ ,..., }

n
n
n
ecol ecol ecol
n
vsplit vsplit vsplit
M M vsplit vsplit
M M M M

=

=

Simplification: Edge
collapse
13,546 500 152 150 faces
M
0
M
1
M
175
ecol
0
ecol
i
ecol
n-1
M
n
ecol(v
s
,v
t
, v
s
)
v
l
v
r
v
t
v
s
v
s
v
l
v
r
(optimization)


Application: Progressive
transmission
Transmit records progressively:
M
0
Receiver
displays:
time
M
0
vspl
0
vspl
1
vspl
i-1
M
i
(~ progressive GIF & JPEG)
M
n

vspl
n-1
Application: Continuous-
resolution LOD
From PM, extract M
i
of any desired
complexity.
M
0
vspl
0
vspl
1
vspl
i-1
vspl
n-1
M
i
3,478 faces?
3,478
M
0
M
n

M
i
~400K faces/sec! ~400K faces/sec!
(200 MHz Pentium Pro)
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)
PM Restrictions
Supports only meshes
(orientable, 2-dimensional manifolds)
Preserves topological type
M
0
M
n

PM Restrictions
Supports only meshes
(orientable, 2-dimensional manifolds)
Preserves topological type

167,744 8,000 2,522
M
0
M
n
M
i

PM Restrictions
Supports only meshes
(orientable, 2-dimensional manifolds)
Preserves topological type
minimal vertex num of closed g genus mesh
( )
1/ 2
7 (48 1) / 2 if 2, 10 if 2 g g g
(
+ + = =
(
7 4
10 10
Progressive Simplicial
Complexes (PSC)
edge collapse
(ecol)
vertex split
(vspl)
PM
Previous Work
Vertex unification schemes
[Rossignac-Borrel 93]
[Schaufler-Strzlinger 95]
Progressive Simplicial
Complexes (PSC)
edge collapse
(ecol)
vertex split
(vspl)
PM
vertex unification
(vunify)
PSC
Progressive Simplicial
Complexes (PSC)
edge collapse
(ecol)
vertex split
(vspl)
PM
vertex unification
(vunify)
generalized vertex split
(gvspl)
PSC
Abstract simplicial complexes (ASC)
( )
is ASC of {1,.., } verteces iff
1. {1,.., }
2. { } , 1,...
3. ' , '
K m
K P m
i K i m
s K s K s s
|
|
-
= _
e =
e e = _
is called of
dim | | 1
dim max dim
s K
s K simplex K
s s
K s
e
- e
=
=
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
|
|

- = = = e e
- = e =
- = e = +
=
=
Abstract simplicial complexes
1
is
: 0, 1, 0 { }
topological realization of is
{ }
m
m
m
j j j
j
s K
open simplex s
s b b b b j s
K K s
=
e
- _
= e > = > _
- =

of is ( ), where
: linear map, s.t.
m d m d
j j
geometric realization K K
e v

-
e
Abstract simplicial complexes
1
s
2
s
1
s
2
s
Manifold-adjecent
Not manifold-adjecent
1 2
1 2
1
1 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
'
{ }
principle in
: if ' principle simplex
else
i
i
s
i i
s
s a
d s K
D s K d
d
+

e =

1
' , principle in not principle in
i i
s K s K
+
-
{ }
1
1
1. { } ( )
2. { }
parents
principle in
i
K
i
s a s
s a K
+
+
e

( )
1
({ }) ' \{ } { }
vunify i i
i i i
K star b s s s b a K
+
_ = e
1
1
'
1. ( ) { } ' { } ( ') '
2. { } { } ' { } ( ')
then
not princ. in
i i
i
vunify
c s K K
vunify i
K
c s c p
parents s s c s c parents s c s c a
p s a K p c p p c star s
+
e
+
e e
e e =
= e
( )
1
1 1 1
1
'
{ }
: For each ({ }) : ' \ { } { }
dublicates simpleces in are deleted. ' of
: is deleted, , ( ) / 2
principle in
: if ' principle simplex
else
i
i i i
i i i
i
i i i i i i
b a a a b
i
s
i i
s
s a
K s star b K s s s b a K
K s ancestor s
V v v v v v
d s K
D s K d
d
+
+ + +
+

e _ = e
=
= +

e =

1
({ },{ }, ) :
i i
i i i i
vunify a b midp M M
+

( , , , )
j j j j j
M K V D A =
1
'
: If was deleted then redistributed to ( ) \ ({ , })
If ( ) \ ({ , }) then if ' principle in ,
else discarded.
i i
s
i
s s
s
A s K a MN s star a b
MN s star a b a a s K
a
+
e
= C =
* MN manifold adjacent neighbors
( , , , )
j j j j j
M K V D A =
1
({ }, , , , , ) :
K D A i i
i i i i i i i
gvsplit a C midp v C C M M
A A A +
A
i
a
1 1
(4)
(1) (2) (3)
: For each ({ }) : ' according to
' , ( \ { }) { 1}, , ( \ { }) { 1},
, ( \ { }) { 1}, { 1}
i i i K
i 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
+ + A
e _ e
= + +
+ +
1. { }
2. { }
{ }
3. { }, { }
4. { , }, { }, { }
vunify i
p a
p b
p a s K
p b p a
p a b p b p a


= e
`


)
{ }
1
{ , } 1
({ }) 2 , , ,
i
a b i
K
star b x p x a b p p K
+
+
- = e e e
( , , , )
j j j j j
M K V D A =
1
({ }, , , , , ) :
K D A i i
i i i i i i i
gvsplit a C midp v C C M M
A A A +
A
, , are sorted by simplex dimension first, then by simplex id
K D A
i i i
C C C
A A A
-
i
a
1 1
1 1 1
1
1
1
(4)
(1) (2) (3)
: For each ({ }) : ' according to
' , ( \ { }) { 1}, , ( \ { }) { 1},
, ( \ { }) { 1}, { 1}
: , ,
: according to
: accordin
i i i i
i i i K
i i
i i
i
i i i i i i
i a i a a a i
i D
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
V v v v v v v v
D C
A
+ + A
+ + +
+
+ A
+
e _ e
= + +
+ +
= +A = A
g to
A
i
C
A
Geomorps. (smooth transform.)
1
Interpolation between , 1
correspondance { } ( )
,
( )
( )
,
c f
f f c c
f c
f c
j
M M c f n
K j p j K
j
j c
p j
p a
j c

- s < s
e
s
=

>

( )
01
( ) ( , ( ), , ( ))
( ) (1 ) ,
( ) (1 ) , ( )
f c
f f
f c
j j
p j
f c f
s s s
M K V D A
v v v
a a a s P K
o o o
o o o
o o o

- =
= +
= + e
Simplicial Complex
V K M
^
Simplicial Complex
V K M
^
K
Simplicial Complex
V M
^
1
2 3
4
5
6
7
= {1, 2, 3, 4, 5, 6, 7} + simplices
abstract
simplicial
complex
{1}, {2}, 0-dim
Simplicial Complex
5
1
2 3
4
6
7
= {1, 2, 3, 4, 5, 6, 7} + simplices
V K M
^
{1}, {2}, 0-dim
{1, 2}, {2, 3} 1-dim
abstract
simplicial
complex
Simplicial Complex
5
1
2 3
4
6
7
= {1, 2, 3, 4, 5, 6, 7} + simplices
{1}, {2}, 0-dim
{1, 2}, {2, 3} 1-dim
V K M
^
{4, 5, 6}, {6, 7, 5} 2-dim
abstract
simplicial
complex
PSC Features Video
Destroyer PSC sequence
PM, PSC comparison
PSC Geomorphs
Line Drawing
Generalized Vertex Split
Encoding
vunify
Generalized Vertex Split
Encoding
gvspl
vunify
a
i
gvspl
i
= {a
i
},
Connectivity Encoding
case (1) case (2) case (3) case (4)
0-dim
1-dim
2-dim
undefined undefined
S
gvspl
i
= {a
i
},
Generalized Vertex Split
Encoding
vunify
a
i
gvspl
0-simplices
4
Generalized Vertex Split
Encoding
vunify
a
i
gvspl
i
= {a
i
}, 4 34122
gvspl
1-simplices
gvspl
i
= {a
i
}, 4 34122 12
Generalized Vertex Split
Encoding
vunify
a
i
2-simplices
gvspl
gvspl
i
= {a
i
}, 4 34122 12
Generalized Vertex Split
Encoding
vunify
a
i
connectivity
gvspl
S
Generalized Vertex Split
Encoding
vunify
gvspl
i
= {a
i
}, 4 34122 12,
Avpos
gvspl
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
Connectivity Encoding
Compression
vunify
example:
15 bits
models (avg):
30 bits
example:
10.2 bits
models (avg):
14 bits
gvspl
Space Analysis
Average 2D manifold mesh
n vertices, 3n edges, 2n triangles
PM representation
n ( log
2
n + 4 ) bits
PSC representation
n ( log
2
n + 7 ) bits

Form a set of candidate vertex pairs
PSC Construction
1-simplices of K
DT
1-simplices of K

candidate vertex pairs

PSC Construction
Form a set of candidate vertex pairs
1-simplices of K some pairs from different
components

For each candidate vertex pairs a, b :


calculate accuracy of vunify (a,b)

Sort candidate vertices according to accuracy


PSC Construction
How to get pairs from different components

Octree of models bbox


PSC Construction
How to get pairs from different components
Delaunay triangulation K
DT



No point in P is inside
the circumcircles of any
simplex in K
DT

Center of circumcircles
gives Voronoi diagram
Unify pair with lowest cost
updating costs of affected candidates


PSC Construction
Form a set of candidate vertex pairs
1-simplices of K + 1-simplices of K
DT
Compute cost of each vertex pair
E = E
dist
+ E
disc
+ E
area
+ E
fold

Computing E
2 2

{P( ) samples}
1
( ) ( , ) ( , )
( ) ( )
dist
x M
p M
i i
dist dist dist
E M d p M d x M
E E M E M
e
e
+
- =
A =

}
' ''
( ) penelizes in
is ', '' parent( ) :
Or boundaysimplex.
disc
s s
E M sharp simplices K
s K sharp simplices s s s d d
s
-
e - e =
Computing E
( ) penalizes surface folding caused by
fold
E M vunify -
2
priciple
2
{ , }
( ) ( )
simple version: ( )
i
i
area
s K
i
spring j k
j k V
E M area s
E M v v
k
k
e
e
- =
=

Simplification Results
8,936 triangles 170 triangles
PSC
V K
M
^
M
1
gvspl
progressive geometry
and topology
lossless
any triangulation
single
vertex
PSC Summary
arbitrary
simplicial
complex
Continuous LOD sequence
Smooth transitions (Geomorphs)
Progressive transmission
Space-efficient representation


PSC Summary
Supports topological changes
Models of arbitrary dimension

e.g. LOD in volume rendering

Você também pode gostar