Compression opportunities using progressive meshes Hugues Hoppe Microsoft Research SIGGRAPH 98...
-
date post
19-Dec-2015 -
Category
Documents
-
view
217 -
download
0
Transcript of Compression opportunities using progressive meshes Hugues Hoppe Microsoft Research SIGGRAPH 98...
Compression opportunities using Compression opportunities using progressive meshesprogressive meshes
Hugues HoppeHugues HoppeMicrosoft ResearchMicrosoft Research
SIGGRAPH 98 course: “3D SIGGRAPH 98 course: “3D Geometry compression”Geometry compression”
Triangle MeshesTriangle 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 MeshesTriangle 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”
……
Complex meshesComplex meshes
43,000 faces43,000 faces43,000 faces43,000 faces lots of faces!lots of faces!lots of faces!lots of faces!
Challenges:Challenges:- rendering- rendering- storage- storage- transmission- transmission
geometrygeometrycompressioncompression
Talk outlineTalk outline
Progressive meshProgressive mesh (PM) representation (PM) representation
Analysis of PM compressionAnalysis of PM compression
Improved PM compressionImproved PM compression
Progressive simplicial complexProgressive simplicial complex (PSC) repr. (PSC) repr.
Progressive mesh representationProgressive mesh representation
Basic idea:Basic idea:
Simplify arbitrary mesh through sequence Simplify arbitrary mesh through sequence of transformations.of transformations.
Record:Record:
simplified meshsimplified mesh++
sequence of inverse transformationssequence of inverse transformations
Simplification: Edge collapseSimplification: Edge collapse
13,54613,546 500500 152152 150 faces150 faces
MM00MM11MM175175
ecolecol00ecolecoliiecolecoln-1n-1
MMnn
ecol(vecol(vs s ,v,vt t , , vvss ))
vvll vvrr
vvtt
vvss
vvssvvll vvrr
(optimization)(optimization)
’’
’’
Invertible! Vertex split transformationInvertible! Vertex split transformation
vvssvvll vvrr
vspl(vvspl(vs s ,v,vl l ,v,vr r , , vvss ,,vvtt ,…),…)
vvll vvrr
vvtt
vvss
’’ ’’’’
’’
attributesattributes
150150
MM00 MM11
vsplvspl00
152152
Reconstruction processReconstruction process
MM175175
500500
… … vsplvsplii … …
13,54613,546
vsplvspln-1n-1
MMnn
progressive mesh (PM)progressive mesh (PM) representation representation
vsplvspl00 … … vsplvsplii … … vsplvspln-1n-1
MM00 MMnn
PM benefitsPM benefits
PMPM
VVnn
MMnn
MM00
progressive transmissionprogressive transmission continuous-resolutioncontinuous-resolution smooth LODsmooth LOD geometry compressiongeometry compression
losslesslossless
single resolutionsingle resolution
vsplvsplFFnn
attributesattributes
Application: Progressive transmissionApplication: Progressive transmission
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 LODApplication: Continuous-resolution LOD
From PM, extract From PM, extract MMii 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!(200 MHz Pentium Pro)(200 MHz Pentium Pro)
Property: Vertex correspondenceProperty: Vertex correspondence
MMnn MM00MMccMMff
vv11
vv22
vv33
vv44
vv55
vv66
vv77
vv88
vv11
vv22
vv33
MMf-1f-1
vv11
vv22
vv33
vv44
vv55
vv66
vv77
ecolecol
MMf-2f-2
vv11
vv22
vv33
vv44
vv55
vv66
ecolecol ecolecol
Application: Smooth transitionsApplication: Smooth transitions
MMnn MM00MMccMMff
vv11
vv22
vv33
vv44
vv55
vv66
vv77
vv88
vv11
vv22
vv33
can form a smoothcan form a smooth visual transition: visual transition: geomorphgeomorph
VV FF
MMffcc
VV
BUT, geometry compression?BUT, geometry compression?
MM00 vsplvspl00 vsplvspl11 vsplvspli-1i-1
MMnn
vsplvspln-1n-1
MM00 is typically small is typically small
key is encoding of key is encoding of vsplvsplii
vvssvvll vvrr
vvll vvrr
vvtt’’
vvss’’
Record:Record:
Analysis:Analysis:
vsplvspli i (v(vs s ,v,vl l ,v,vr r ,,vvs s ,,vvt t ,…),…)’’ ’’
Vertex split encodingVertex split encoding
connectivity:connectivity: n(logn(log22n+4)n+4) bits bits vs.vs. n(6logn(6log22n) n)
bitsbits
vvss (log(log22i i
bits)bits) vvll && v vrr (~5 (~5
bits)bits))1(loglog 2
12
nnin
i
vvssvvll vvrr
vvll vvrr
vvtt’’
vvss’’
vsplvspli i (v(vs s ,v,vl l ,v,vr r ,,vvs s ,,vvt t ,…),…)’’ ’’
Vertex split encodingVertex split encoding
connectivity:connectivity: n(logn(log22n+4)n+4) bits bits vs.vs. n(6logn(6log22n) n)
bitsbits geometry:geometry: ~~40n40n bits bits vs.vs. 96n96n bits bits16-bit quantization & variable-length encoding [Deering95]16-bit quantization & variable-length encoding [Deering95]
Record:Record: vvss (log(log22i i
bits)bits) vvll && v vrr (~5 (~5
bits)bits)
Analysis:Analysis:
vvtt - - vvss (delta)(delta) vvs s - - vvss (delta)(delta)
’’’’
vvssvvll vvrr
vvll vvrr
vvtt’’
vvss’’
Record:Record:
Analysis:Analysis:
vsplvspli i (v(vs s ,v,vl l ,v,vr r ,,vvs s ,,vvt t ,…),…)’’ ’’
Vertex split encodingVertex split encoding
connectivity:connectivity: n(logn(log22n+4)n+4) bits bits vs.vs. n(6logn(6log22n) n)
bitsbits
vvss (log(log22i i
bits)bits) vvll && v vrr (~5 (~5
bits)bits)
predict face attrib.predict face attrib.
geometry:geometry: ~~40n40n bits bits vs.vs. 96n96n bits bits
vvtt - - vvss (delta)(delta) vvs s - - vvss (delta)(delta)
’’’’
Summary of vsplit encodingSummary of vsplit encoding
((nn is #vertices, ~2n is #faces) is #vertices, ~2n is #faces)42,712 faces42,712 facesnn=21,373=21,373151 Kbytes (ignoring corners)151 Kbytes (ignoring corners)
??
Improved PM compressionImproved PM compression
ConnectivityConnectivity group vsplits group vsplits forest splits forest splits [Taubin etal98][Taubin etal98] permute vsplitspermute vsplits
GeometryGeometry apply smoothing apply smoothing [Taubin etal98][Taubin etal98] local prediction + single deltalocal prediction + single delta
Face attributesFace attributes already negligiblealready negligible
Corner attributesCorner attributes wedge data structurewedge data structure
Compression of connectivityCompression of connectivity
Detail: Detail: fflclwlclw , , nrotnrot
vvssvvll vvrr
Problem: locating vsplit on meshProblem: locating vsplit on mesh (using either (using either fflclwlclw or or vvs s ) requires log) requires log22i bits.i bits.
Progressive Forest Split (PFS)Progressive Forest Split (PFS)
MM00 vsplvspl00 vsplvspl11 vsplvspl55 vsplvspln-1n-1vsplvspl22 vsplvspl33 vsplvspl44
PM:PM: n(4+logn(4+log22n)n) bits bits
[Taubin,Gueziec,Horn,Lazarus98][Taubin,Gueziec,Horn,Lazarus98]
fsplitfsplit00 fsplitfsplit11 fsplitfsplit22 fsplitfsplitlognlogn… …
PFS:PFS: n(8..10)n(8..10) bits bits
MM00
Other solution: permutation of vsplitsOther solution: permutation of vsplits
We record We record fflclwlclw and minimize and minimize fflclwlclw by permuting by permuting
vsplits.vsplits.
MM00 fflclw,1lclw,1 fflclw,2lclw,2
fflclwlclw
Legal vsplit permutationsLegal vsplit permutations
Determine dependencies between vsplitsDetermine dependencies between vsplits [Xia & Varshney 96][Xia & Varshney 96] [Hoppe 97][Hoppe 97]
vsplit is vsplit is candidatecandidate if it has no dependencies. if it has no dependencies.
Greedy algorithm:Greedy algorithm: Maintain candidate vsplits in balanced tree, Maintain candidate vsplits in balanced tree,
sorted by sorted by fflclwlclw . .
Remove vsplit with smallest Remove vsplit with smallest fflclwlclw and update and update
candidate tree.candidate tree.
Result of permuting vsplitsResult of permuting vsplits
9.79.7nn
~(log~(log22n+4n+4))nn~(log~(log22n+4n+4))nn
9.79.7nn…10.3…10.3nn9.79.7nn…10.3…10.3nn
Drawback: intermediate meshes Drawback: intermediate meshes MMii ( (0<i<n0<i<n) lose ) lose geometric accuracy.geometric accuracy.
O(O(nn log log nn) bits to undo permutation.) bits to undo permutation.
(now (now linearlinear))
Layered permutationsLayered permutations
MM00MM00 vsplvspl00vsplvspl00 vsplvspl11vsplvspl11 vsplvspln-1n-1vsplvspln-1n-1vsplvspl22vsplvspl22 vsplvspl33vsplvspl33 vsplvspl44vsplvspl44 vsplvspl55vsplvspl55 vsplvspl66vsplvspl66 vsplvspl77vsplvspl77 vsplvspl88vsplvspl88 vsplvspl99vsplvspl99 vsplvspl1010vsplvspl1010
MM00MM00
checkpointscheckpoints(mesh complexity(mesh complexity increasing exponentially) increasing exponentially)
Results using layered permutationsResults using layered permutations
# checkpoints# checkpoints growth factorgrowth factorconnectivityconnectivity
bits (bits (nn=#verts)=#verts)
11 549549 9.79.7nn
99 2.002.00 9.89.8nn
1313 1.631.63 9.89.8nn
1919 1.401.40 9.99.9nn
2424 1.301.30 10.010.0nn
3535 1.201.20 10.210.2nn
6666 1.101.10 10.510.5nn
20,37320,373 1.001.00 16.416.4nn
+ 0.1+ 0.1 bit/vert bit/vert
visuallyvisuallyidentical toidentical to
original PM !original PM !
vvtt’’
vvss’’
Restrict Restrict vvss to equal to equal vvs s ..’’
Geometry: local prediction + deltaGeometry: local prediction + delta
vvss
xx xx
Record single delta from prediction,Record single delta from prediction, in a local coordinate frame. in a local coordinate frame.
Predict position of Predict position of vvtt’ .’ .
Result of predicted deltaResult of predicted delta
Intermediate meshes Intermediate meshes MMii ( (0<i<n0<i<n) have) have minorminor loss in geometric accuracy. loss in geometric accuracy.
9.79.7nn
20.920.9nn
??
Corner attributesCorner attributes
vertexvertex
cornercorner
faceface
wedgewedge
Wedge data structureWedge data structure
vertexvertex
faceface
cornercorner
Vsplit encoding of wedgesVsplit encoding of wedges
(6 new corners)(6 new corners) 10 corner continuity booleans10 corner continuity booleans
+ 1..6 wedge attribute deltas+ 1..6 wedge attribute deltas
Results using wedgesResults using wedges
9.79.7nn
20.920.9nn
23.723.7nn
10 corner continuity booleans : 2.510 corner continuity booleans : 2.5nn bits bitswedge attribute deltas : 21.2wedge attribute deltas : 21.2nn bits bits
(16-bit n(16-bit nxx,n,nyy,n,nzz at corners) at corners)
Estimating normals from wedgesEstimating normals from wedges
9.79.7nn
20.920.9nn
2.5n2.5n
88 Kbytes88 Kbytesoriginaloriginal
Progressive Simplicial Progressive Simplicial ComplexesComplexes
[SIGGRAPH 97][SIGGRAPH 97]
(Joint work with Jovan Popovic)(Joint work with Jovan Popovic)
PM restrictions:PM restrictions:
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 … …
Progressive Simplicial ComplexesProgressive Simplicial Complexes
Represent arbitrary “triangulations”:Represent arbitrary “triangulations”: any dimension,any dimension, non-orientable,non-orientable, non-manifold,non-manifold, non-regular, … non-regular, …
Progressively encode both geometryProgressively encode both geometry and topologyand topology..
GeneralizationGeneralization
edge collapseedge collapse((ecolecol))
vertex splitvertex split((vsplvspl))
vertex unificationvertex unification((vunifyvunify))
generalized vertex splitgeneralized vertex split((gvsplgvspl))
PMPM PSCPSC
PSCPSC representation representation
LOD sequenceLOD sequence
MM11 MM2222
gvsplgvspl11 … …MM116116
… … gvsplgvsplii … … gvsplgvspln-1n-1
MMnn
Generalized vertex splitGeneralized vertex split
vunifyvunify
gvsplgvspl
Connectivity:Connectivity:• PM :PM : (log(log22n+n+44)n bits)n bits
• PSC PSC :: (log(log22n+n+77)n bits)n bits
0-simplex0-simplex
1-simplices1-simplices
2-simplices2-simplices
Space analysisSpace analysis
0
10
20
30
40
50
60
cessna destroyer drumset chandelier schooner castle2D
Dataset
bit
s p
er v
erte
x
A
D
V
K(C)
K(a)
geometry!geometry!connectivityconnectivityconnectivityconnectivity materialsmaterials
PSC analysisPSC analysis
PSCPSCMMnn
MM11
gvsplgvspl
(+)(+) progressive geometry progressive geometry and topologyand topology(+)(+) no “base mesh” no “base mesh”(–)(–) 3 bit / vertex overhead 3 bit / vertex overhead(–)(–) slower decompression slower decompression
losslesslossless
single single vertexvertex
VVnn
KKnn
arbitraryarbitrarysimplicial complexsimplicial complex
Summary: Progressive geometrySummary: Progressive geometry
ConnectivityConnectivity group vsplits group vsplits forest splits forest splits [Taubin etal98][Taubin etal98] permute vsplitspermute vsplits
GeometryGeometry apply smoothing apply smoothing [Taubin etal98][Taubin etal98] local prediction + single deltalocal prediction + single delta
Face attributesFace attributes already negligiblealready negligible
Corner attributesCorner attributes wedgewedge data structure data structure
ConclusionsConclusions
Geometry storage overwhelms connectivity,Geometry storage overwhelms connectivity, particularly for simplified meshes. particularly for simplified meshes.
Progressive representations:Progressive representations: reasonable compressionreasonable compression benefits: LODbenefits: LOD
Texture coordinates?Texture coordinates?
Beyond Gouraud shadingBeyond Gouraud shading
Texture mapping!Texture mapping!
44,000 triangles44,000 trianglesFuture:Future:• bump mappingbump mapping• environment mappingenvironment mapping~200~200nn bits bits (JPEG)(JPEG)
[Cohen-etal98][Cohen-etal98]
Simultaneous streamingSimultaneous streaming
progressiveprogressivegeometrygeometry
progressiveprogressivegeometrygeometry
progressiveprogressivetexturetexture
progressiveprogressivetexturetexture
viewer / applicationviewer / applicationviewer / applicationviewer / application
networknetwork
runtime tradeoffruntime tradeoffof geometry & textureof geometry & texture(platform-dependent)(platform-dependent)
ReferencesReferences
H. Hoppe. Progressive meshes. Computer Graphics H. Hoppe. Progressive meshes. Computer Graphics (SIGGRAPH 96), pages 99-108.(SIGGRAPH 96), pages 99-108.
J. Popovic, H. Hoppe. Progressive simplicial complexes. J. Popovic, H. Hoppe. Progressive simplicial complexes. Computer Graphics (SIGGRAPH 97), pages 217-224.Computer Graphics (SIGGRAPH 97), pages 217-224.
H. Hoppe. Efficient implementation of progressive H. Hoppe. Efficient implementation of progressive meshes. Computers & Graphics, Vol. 22, pages 27-36, meshes. Computers & Graphics, Vol. 22, pages 27-36, 1998.1998.
http://research.microsoft.com/~hoppe/http://research.microsoft.com/~hoppe/