progressive simplicial complexes

Post on 18-Jan-2016

63 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

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

top related