Post on 12-Jan-2016
Quadric-Based Polygonal Surface Simplification
Michael GarlandMichael Garland
Carnegie Mellon UniversityCarnegie Mellon University
December 1998December 1998
Michael GarlandMichael Garland
Carnegie Mellon UniversityCarnegie Mellon University
December 1998December 1998
OverviewPolygonal models are often too complexPolygonal models are often too complex• Can be highly over-sampled (e.g., scanned Can be highly over-sampled (e.g., scanned
data)data)
• Manage complexity given limited resourcesManage complexity given limited resources
– rendering speed, network bandwidth, disk space, ...rendering speed, network bandwidth, disk space, ...
Automatically build surface approximationsAutomatically build surface approximations• Maintain geometric fidelity to originalMaintain geometric fidelity to original
• Produce approximations rapidlyProduce approximations rapidly
• Simplify topology as well as geometrySimplify topology as well as geometry
Polygonal models are often too complexPolygonal models are often too complex• Can be highly over-sampled (e.g., scanned Can be highly over-sampled (e.g., scanned
data)data)
• Manage complexity given limited resourcesManage complexity given limited resources
– rendering speed, network bandwidth, disk space, ...rendering speed, network bandwidth, disk space, ...
Automatically build surface approximationsAutomatically build surface approximations• Maintain geometric fidelity to originalMaintain geometric fidelity to original
• Produce approximations rapidlyProduce approximations rapidly
• Simplify topology as well as geometrySimplify topology as well as geometry
Polygonal Surface ModelsSet of verticesSet of vertices
• Position in spacePosition in space
• Attributes (e.g., color)Attributes (e.g., color)
Set of trianglesSet of triangles
• All polygons are All polygons are triangulatedtriangulated
Primary focus on Primary focus on renderingrendering
• Appearance is paramountAppearance is paramount
Set of verticesSet of vertices
• Position in spacePosition in space
• Attributes (e.g., color)Attributes (e.g., color)
Set of trianglesSet of triangles
• All polygons are All polygons are triangulatedtriangulated
Primary focus on Primary focus on renderingrendering
• Appearance is paramountAppearance is paramount
Assumptions About Input ModelMesh connectivity is completeMesh connectivity is complete• Corners which coincide in space share verticesCorners which coincide in space share vertices
Surface need not have manifold topologySurface need not have manifold topology• Edges can border any number of facesEdges can border any number of faces
• Vertices shared by arbitrary collection of facesVertices shared by arbitrary collection of faces
• Consistent normal orientation not requiredConsistent normal orientation not required
Application domain does not rely on topologyApplication domain does not rely on topology• vs. medical imaging — hole in the lung mattersvs. medical imaging — hole in the lung matters
Mesh connectivity is completeMesh connectivity is complete• Corners which coincide in space share verticesCorners which coincide in space share vertices
Surface need not have manifold topologySurface need not have manifold topology• Edges can border any number of facesEdges can border any number of faces
• Vertices shared by arbitrary collection of facesVertices shared by arbitrary collection of faces
• Consistent normal orientation not requiredConsistent normal orientation not required
Application domain does not rely on topologyApplication domain does not rely on topology• vs. medical imaging — hole in the lung mattersvs. medical imaging — hole in the lung matters
Motivation:Highly Over-sampled Models
424,376 faces424,376 faces 60,000 faces60,000 faces
Motivation:Adaptive Models for Rendering
Single model not always suitableSingle model not always suitable
• Too large for hardware capacityToo large for hardware capacity
• Excessively detailed for screen sizeExcessively detailed for screen size
Use multiresolution modelsUse multiresolution models
• Encode many levels of detail (LOD)Encode many levels of detail (LOD)
• Adaptively select LOD at run timeAdaptively select LOD at run time
• Progressive network transmissionProgressive network transmission
Single model not always suitableSingle model not always suitable
• Too large for hardware capacityToo large for hardware capacity
• Excessively detailed for screen sizeExcessively detailed for screen size
Use multiresolution modelsUse multiresolution models
• Encode many levels of detail (LOD)Encode many levels of detail (LOD)
• Adaptively select LOD at run timeAdaptively select LOD at run time
• Progressive network transmissionProgressive network transmission
Surface Simplification:Create suitable approximations
Desirable Qualities forGood ApproximationsGeometric fidelity — a proxy for appearanceGeometric fidelity — a proxy for appearance• Shape is “similar” to the originalShape is “similar” to the original
• All points in close proximity to original surfaceAll points in close proximity to original surface
Economical meshesEconomical meshes• Mesh density & aspect ratios adapt to curvatureMesh density & aspect ratios adapt to curvature
Topological consistencyTopological consistency• Do not introduce self-intersectionsDo not introduce self-intersections
• But in practice, the input is often inconsistentBut in practice, the input is often inconsistent
Geometric fidelity — a proxy for appearanceGeometric fidelity — a proxy for appearance• Shape is “similar” to the originalShape is “similar” to the original
• All points in close proximity to original surfaceAll points in close proximity to original surface
Economical meshesEconomical meshes• Mesh density & aspect ratios adapt to curvatureMesh density & aspect ratios adapt to curvature
Topological consistencyTopological consistency• Do not introduce self-intersectionsDo not introduce self-intersections
• But in practice, the input is often inconsistentBut in practice, the input is often inconsistent
Features of My Surface Simplification AlgorithmAn effective algorithm for practical useAn effective algorithm for practical use• Simple to implementSimple to implement
• Fast simplification (10,000 faces in 1 second)Fast simplification (10,000 faces in 1 second)
• High quality approximationsHigh quality approximations
Implicitly simplifies topologyImplicitly simplifies topology• All decisions are based on geometric criteriaAll decisions are based on geometric criteria
Can manage surface propertiesCan manage surface properties• Color, texture, etc.Color, texture, etc.
An effective algorithm for practical useAn effective algorithm for practical use• Simple to implementSimple to implement
• Fast simplification (10,000 faces in 1 second)Fast simplification (10,000 faces in 1 second)
• High quality approximationsHigh quality approximations
Implicitly simplifies topologyImplicitly simplifies topology• All decisions are based on geometric criteriaAll decisions are based on geometric criteria
Can manage surface propertiesCan manage surface properties• Color, texture, etc.Color, texture, etc.
contractcontract
vv11
vv22 v’v’
Fundamental Operation:Edge ContractionContract vertex pair Contract vertex pair (v(v11,v,v22) ) v’ v’
• Move vMove v11 and v and v22 to position v’ to position v’
• Replace all occurrences of vReplace all occurrences of v22 with v with v11
• Remove vRemove v22 and degenerate triangles and degenerate triangles
Contract vertex pair Contract vertex pair (v(v11,v,v22) ) v’ v’
• Move vMove v11 and v and v22 to position v’ to position v’
• Replace all occurrences of vReplace all occurrences of v22 with v with v11
• Remove vRemove v22 and degenerate triangles and degenerate triangles
Properties of Edge ContractionLocal, fine-grained modificationLocal, fine-grained modification• Low computational costLow computational cost
• Removes 2 faces + 1 vertex (on a closed Removes 2 faces + 1 vertex (on a closed manifold)manifold)
Continuous transitionContinuous transition• Can linearly interpolate contraction through timeCan linearly interpolate contraction through time
• Allows smooth geomorphing between surfacesAllows smooth geomorphing between surfaces
Its inverse, vertex split, has same propertiesIts inverse, vertex split, has same properties• Handy for progressive mesh transmission Handy for progressive mesh transmission [Hoppe 96][Hoppe 96]
Local, fine-grained modificationLocal, fine-grained modification• Low computational costLow computational cost
• Removes 2 faces + 1 vertex (on a closed Removes 2 faces + 1 vertex (on a closed manifold)manifold)
Continuous transitionContinuous transition• Can linearly interpolate contraction through timeCan linearly interpolate contraction through time
• Allows smooth geomorphing between surfacesAllows smooth geomorphing between surfaces
Its inverse, vertex split, has same propertiesIts inverse, vertex split, has same properties• Handy for progressive mesh transmission Handy for progressive mesh transmission [Hoppe 96][Hoppe 96]
Overview of AlgorithmPreprocessing phase: model cleanupPreprocessing phase: model cleanup• Enforce vertex sharingEnforce vertex sharing
• Triangulate & remove degenerate facesTriangulate & remove degenerate faces
Iteratively contract vertex pairs (i.e., edges)Iteratively contract vertex pairs (i.e., edges)• Simple greedy techniqueSimple greedy technique
• Rank edges by “cost” of contractionRank edges by “cost” of contraction
• Maintain proposed contractions in a heapMaintain proposed contractions in a heap
• At each iteration, contract minimum cost edgeAt each iteration, contract minimum cost edge
Preprocessing phase: model cleanupPreprocessing phase: model cleanup• Enforce vertex sharingEnforce vertex sharing
• Triangulate & remove degenerate facesTriangulate & remove degenerate faces
Iteratively contract vertex pairs (i.e., edges)Iteratively contract vertex pairs (i.e., edges)• Simple greedy techniqueSimple greedy technique
• Rank edges by “cost” of contractionRank edges by “cost” of contraction
• Maintain proposed contractions in a heapMaintain proposed contractions in a heap
• At each iteration, contract minimum cost edgeAt each iteration, contract minimum cost edge
Measuring Cost of Contractions Cost should reflect geometric error introducedCost should reflect geometric error introduced• Error between current & original (vs. last iteration)Error between current & original (vs. last iteration)
• Also want this to be fairly cheap to computeAlso want this to be fairly cheap to compute
• Various contraction-based algorithms differ hereVarious contraction-based algorithms differ here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96][Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96]
Must address two interrelated problemsMust address two interrelated problems• What is the best contraction to perform?What is the best contraction to perform?
• What is the best position v’ for remaining vertex?What is the best position v’ for remaining vertex?
Cost should reflect geometric error introducedCost should reflect geometric error introduced• Error between current & original (vs. last iteration)Error between current & original (vs. last iteration)
• Also want this to be fairly cheap to computeAlso want this to be fairly cheap to compute
• Various contraction-based algorithms differ hereVarious contraction-based algorithms differ here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96][Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96]
Must address two interrelated problemsMust address two interrelated problems• What is the best contraction to perform?What is the best contraction to perform?
• What is the best position v’ for remaining vertex?What is the best position v’ for remaining vertex?
How I Measure ErrorEach vertex has a (conceptual) set of planesEach vertex has a (conceptual) set of planes• Error Error sum of squared distances to planes in set sum of squared distances to planes in set
Initialize with planes of incident facesInitialize with planes of incident faces• Consequently, all initial errors are 0Consequently, all initial errors are 0
When contracting pair, use union of plane setsWhen contracting pair, use union of plane sets• planes(v’) = planes(vplanes(v’) = planes(v11) ) planes(v planes(v22))
Each vertex has a (conceptual) set of planesEach vertex has a (conceptual) set of planes• Error Error sum of squared distances to planes in set sum of squared distances to planes in set
Initialize with planes of incident facesInitialize with planes of incident faces• Consequently, all initial errors are 0Consequently, all initial errors are 0
When contracting pair, use union of plane setsWhen contracting pair, use union of plane sets• planes(v’) = planes(vplanes(v’) = planes(v11) ) planes(v planes(v22))
Error T( ) ( )v n v i ii
d 2Error T( ) ( )v n v i ii
d 2
A Simple Example:Contraction & “Planes” in 2DLines defined by neighboring segmentsLines defined by neighboring segments• Determine position of new vertexDetermine position of new vertex
• Accumulate lines for ever larger areasAccumulate lines for ever larger areas
Lines defined by neighboring segmentsLines defined by neighboring segments• Determine position of new vertexDetermine position of new vertex
• Accumulate lines for ever larger areasAccumulate lines for ever larger areas
OriginalOriginal After 1 StepAfter 1 Step
vv11 vv22 v’v’
How I Measure ErrorWhy base error on planes?Why base error on planes?• Faster, but less accurate, than distance-to-faceFaster, but less accurate, than distance-to-face
• Simple linear system for optimal positionSimple linear system for optimal position
• Efficient implicit representation; no sets Efficient implicit representation; no sets requiredrequired
• Drawback:Drawback: unlike surface, planes are infinite unlike surface, planes are infinite
Related error metricsRelated error metrics• Ronfard & Rossignac — max vs. sumRonfard & Rossignac — max vs. sum
• Lindstrom & Turk — similar form; volume-basedLindstrom & Turk — similar form; volume-based
Why base error on planes?Why base error on planes?• Faster, but less accurate, than distance-to-faceFaster, but less accurate, than distance-to-face
• Simple linear system for optimal positionSimple linear system for optimal position
• Efficient implicit representation; no sets Efficient implicit representation; no sets requiredrequired
• Drawback:Drawback: unlike surface, planes are infinite unlike surface, planes are infinite
Related error metricsRelated error metrics• Ronfard & Rossignac — max vs. sumRonfard & Rossignac — max vs. sum
• Lindstrom & Turk — similar form; volume-basedLindstrom & Turk — similar form; volume-based
The Quadric Error MetricGiven a plane, we can define a Given a plane, we can define a quadricquadric Q QGiven a plane, we can define a Given a plane, we can define a quadricquadric Q Q
measuring squared distance to the plane asmeasuring squared distance to the plane asmeasuring squared distance to the plane asmeasuring squared distance to the plane as
Q x y z
a ab ac
ab b bc
ac bc c
x
y
z
ad bd cd
x
y
z
d( )v
L
NMMM
O
QPPPL
NMMM
O
QPPP
L
NMMM
O
QPPP
2
2
2
22Q x y z
a ab ac
ab b bc
ac bc c
x
y
z
ad bd cd
x
y
z
d( )v
L
NMMM
O
QPPPL
NMMM
O
QPPP
L
NMMM
O
QPPP
2
2
2
22
Q c( )v v Av b v T T2Q c( )v v Av b v T T2
Q c d d ( , , ) ( , , )A b nn nT 2Q c d d ( , , ) ( , , )A b nn nT 2
The Quadric Error Metric Sum of quadrics represents set of planesSum of quadrics represents set of planes
Each vertex has an associated quadricEach vertex has an associated quadric• Error(Error(vvii) = ) = QQii (v (vii))
• Sum quadrics when contracting Sum quadrics when contracting (v(vii, v, vjj) ) v’ v’
• Cost of contraction is Cost of contraction is Q(v’)Q(v’)
Sum of quadrics represents set of planesSum of quadrics represents set of planes
Each vertex has an associated quadricEach vertex has an associated quadric• Error(Error(vvii) = ) = QQii (v (vii))
• Sum quadrics when contracting Sum quadrics when contracting (v(vii, v, vjj) ) v’ v’
• Cost of contraction is Cost of contraction is Q(v’)Q(v’)
( ) ( ) ( )n v v vi ii
ii
ii
d Q QT FHG
IKJ 2( ) ( ) ( )n v v vi i
ii
ii
id Q QT
FHG
IKJ 2
Q Q Q c ci j i j i j i j ( , , )A A b bQ Q Q c ci j i j i j i j ( , , )A A b b
The Quadric Error MetricSum of endpoint quadrics determines v’Sum of endpoint quadrics determines v’• Fixed placement: select Fixed placement: select vv1 1 or or vv22
• Optimal placement: choose Optimal placement: choose v’v’ minimizing minimizing Q(v’)Q(v’)
• Fixed placement is faster but lower qualityFixed placement is faster but lower quality
• But it also gives smaller progressive meshesBut it also gives smaller progressive meshes
• Fallback to fixed placement if Fallback to fixed placement if AA is non- is non-invertibleinvertible
Sum of endpoint quadrics determines v’Sum of endpoint quadrics determines v’• Fixed placement: select Fixed placement: select vv1 1 or or vv22
• Optimal placement: choose Optimal placement: choose v’v’ minimizing minimizing Q(v’)Q(v’)
• Fixed placement is faster but lower qualityFixed placement is faster but lower quality
• But it also gives smaller progressive meshesBut it also gives smaller progressive meshes
• Fallback to fixed placement if Fallback to fixed placement if AA is non- is non-invertibleinvertible
Q( ')v v A b0 1 Q( ')v v A b0 1
Sample Model: Scanned Bunny
69,451 faces69,451 faces 1000 faces1000 faces 100 faces100 faces
Total simplification time: Total simplification time: 7 seconds7 seconds
• 200 MHz PentiumPro; excludes input–output time200 MHz PentiumPro; excludes input–output time
Shape preserved at 1000 faces; gross structure Shape preserved at 1000 faces; gross structure at 100at 100
Total simplification time: Total simplification time: 7 seconds7 seconds
• 200 MHz PentiumPro; excludes input–output time200 MHz PentiumPro; excludes input–output time
Shape preserved at 1000 faces; gross structure Shape preserved at 1000 faces; gross structure at 100at 100
Additional Algorithm DetailsOpen boundaries may be eaten awayOpen boundaries may be eaten away• For each edge with a single incident faceFor each edge with a single incident face
– Find constraint plane through edge perpendicular to Find constraint plane through edge perpendicular to faceface
– Assign large weight & add into endpointsAssign large weight & add into endpoints
Contraction may fold mesh over onto itselfContraction may fold mesh over onto itself• Check normals before & after; reject if any flipCheck normals before & after; reject if any flip
Error metric dependent on initial meshError metric dependent on initial mesh• Weight quadrics by triangle areaWeight quadrics by triangle area
Open boundaries may be eaten awayOpen boundaries may be eaten away• For each edge with a single incident faceFor each edge with a single incident face
– Find constraint plane through edge perpendicular to Find constraint plane through edge perpendicular to faceface
– Assign large weight & add into endpointsAssign large weight & add into endpoints
Contraction may fold mesh over onto itselfContraction may fold mesh over onto itself• Check normals before & after; reject if any flipCheck normals before & after; reject if any flip
Error metric dependent on initial meshError metric dependent on initial mesh• Weight quadrics by triangle areaWeight quadrics by triangle area
Visualizing Quadrics in 3-DQuadric Quadric isosurfacesisosurfaces
• Are ellipsoidsAre ellipsoids(maybe (maybe degenerate)degenerate)
• Centered around Centered around vertices vertices
• Characterize shapeCharacterize shape
• Stretch in least-Stretch in least-curved directionscurved directions
Quadric Quadric isosurfacesisosurfaces
• Are ellipsoidsAre ellipsoids(maybe (maybe degenerate)degenerate)
• Centered around Centered around vertices vertices
• Characterize shapeCharacterize shape
• Stretch in least-Stretch in least-curved directionscurved directions
Quadrics and Surface CurvatureFor quadrics on differentiable manifoldFor quadrics on differentiable manifold• Limit of infinitely subdivided polygonal surfaceLimit of infinitely subdivided polygonal surface
• Integrate quadrics in a small neighborhoodIntegrate quadrics in a small neighborhood
Can prove that in the limitCan prove that in the limit• Eigenvectors of A are principal directionsEigenvectors of A are principal directions
• Eigenvalues of A Eigenvalues of A squared principal curvatures squared principal curvatures
• Algorithm which minimizes quadric error will Algorithm which minimizes quadric error will produce optimal aspect ratios produce optimal aspect ratios [Nadler 86, D’Azevedo 89][Nadler 86, D’Azevedo 89]
For quadrics on differentiable manifoldFor quadrics on differentiable manifold• Limit of infinitely subdivided polygonal surfaceLimit of infinitely subdivided polygonal surface
• Integrate quadrics in a small neighborhoodIntegrate quadrics in a small neighborhood
Can prove that in the limitCan prove that in the limit• Eigenvectors of A are principal directionsEigenvectors of A are principal directions
• Eigenvalues of A Eigenvalues of A squared principal curvatures squared principal curvatures
• Algorithm which minimizes quadric error will Algorithm which minimizes quadric error will produce optimal aspect ratios produce optimal aspect ratios [Nadler 86, D’Azevedo 89][Nadler 86, D’Azevedo 89]
Sample Model: Dental Mold
424,376 faces424,376 faces 60,000 faces60,000 faces
50 sec50 sec
Sample Model: Dental Mold
424,376 faces424,376 faces 8000 faces8000 faces
55 sec55 sec
Sample Model: Dental Mold
424,376 faces424,376 faces 1000 faces1000 faces
56 sec56 sec
Sample Model: Turbine Blade
1,765,388 faces1,765,388 faces 420,000 faces420,000 faces
217 sec217 sec
Sample Model: Turbine Blade
1,765,388 faces1,765,388 faces 80,000 faces80,000 faces
300 sec300 sec
Sample Model: Turbine Blade
1,765,388 faces1,765,388 faces
310 sec310 sec
8000 faces8000 faces
Good Geometric Results,Need to Consider AttributesFundamental algorithm works wellFundamental algorithm works well• Simple to implement & simplification is fastSimple to implement & simplification is fast
• High-quality approximationsHigh-quality approximations
• Quadrics record useful information about shapeQuadrics record useful information about shape
But many models have additional But many models have additional propertiesproperties• Color, texture, normals, etc.Color, texture, normals, etc.
• Need to simplify these as wellNeed to simplify these as well
Fundamental algorithm works wellFundamental algorithm works well• Simple to implement & simplification is fastSimple to implement & simplification is fast
• High-quality approximationsHigh-quality approximations
• Quadrics record useful information about shapeQuadrics record useful information about shape
But many models have additional But many models have additional propertiesproperties• Color, texture, normals, etc.Color, texture, normals, etc.
• Need to simplify these as wellNeed to simplify these as well
Gouraud Shaded Surface:Single RGB Value Per Vertex
Surface geometrySurface geometry Radiosity solutionRadiosity solution
Gouraud Shaded Surface:Single RGB Value Per Vertex
Mesh for solutionMesh for solution Radiosity solutionRadiosity solution
Surface Properties asVertex AttributesEach vertex has a set of propertiesEach vertex has a set of properties• Each property has Each property has oneone unique value per vertex unique value per vertex
• Attributes are linearly interpolated over facesAttributes are linearly interpolated over faces
• Primary example: one RGB color per vertexPrimary example: one RGB color per vertex
Can’t treat geometry & color separatelyCan’t treat geometry & color separately• Position and color are correlatedPosition and color are correlated
• Optimal position may lie off the surfaceOptimal position may lie off the surface
• Must synthesize new color for this positionMust synthesize new color for this position
Each vertex has a set of propertiesEach vertex has a set of properties• Each property has Each property has oneone unique value per vertex unique value per vertex
• Attributes are linearly interpolated over facesAttributes are linearly interpolated over faces
• Primary example: one RGB color per vertexPrimary example: one RGB color per vertex
Can’t treat geometry & color separatelyCan’t treat geometry & color separately• Position and color are correlatedPosition and color are correlated
• Optimal position may lie off the surfaceOptimal position may lie off the surface
• Must synthesize new color for this positionMust synthesize new color for this position
Vertex Attributes BecomeAdded DimensionsTreat each vertex as a 6-vector [x y z r g b]Treat each vertex as a 6-vector [x y z r g b]• Assume this 6-D space is EuclideanAssume this 6-D space is Euclidean
– Of course, color space is only roughly EuclideanOf course, color space is only roughly Euclidean
• Scale Scale xyzxyz space to unit cube for consistency space to unit cube for consistency
Triangle determines a 2-plane in 6-D spaceTriangle determines a 2-plane in 6-D space• Can measure squared distance to this planeCan measure squared distance to this plane
• Distance along all perpendicular directionsDistance along all perpendicular directions
– Generalized Pythagorean TheoremGeneralized Pythagorean Theorem
Treat each vertex as a 6-vector [x y z r g b]Treat each vertex as a 6-vector [x y z r g b]• Assume this 6-D space is EuclideanAssume this 6-D space is Euclidean
– Of course, color space is only roughly EuclideanOf course, color space is only roughly Euclidean
• Scale Scale xyzxyz space to unit cube for consistency space to unit cube for consistency
Triangle determines a 2-plane in 6-D spaceTriangle determines a 2-plane in 6-D space• Can measure squared distance to this planeCan measure squared distance to this plane
• Distance along all perpendicular directionsDistance along all perpendicular directions
– Generalized Pythagorean TheoremGeneralized Pythagorean Theorem
Generalized Quadric Metric
Squared distance to 2-plane has same form:Squared distance to 2-plane has same form:
• A:A: 6x6 matrix 6x6 matrix v,b:v,b: 6-vectors 6-vectors c:c: scalar (for scalar (for RGB)RGB)
• Underlying algorithm remains the sameUnderlying algorithm remains the same
May want to selectively weight channelsMay want to selectively weight channels• Relative importance of space & colorRelative importance of space & color
• Relative importance of red & greenRelative importance of red & green
Squared distance to 2-plane has same form:Squared distance to 2-plane has same form:
• A:A: 6x6 matrix 6x6 matrix v,b:v,b: 6-vectors 6-vectors c:c: scalar (for scalar (for RGB)RGB)
• Underlying algorithm remains the sameUnderlying algorithm remains the same
May want to selectively weight channelsMay want to selectively weight channels• Relative importance of space & colorRelative importance of space & color
• Relative importance of red & greenRelative importance of red & green
Q c( )v v Av b v T T2Q c( )v v Av b v T T2
Generalized Quadric MetricCommon property typesCommon property types
VertexVertexDimensionDimension
• ColorColor [x y z r g b][x y z r g b] 6x6 quadrics6x6 quadrics
• TextureTexture [x y z s t][x y z s t] 5x5 5x5 quadricsquadrics
• NormalNormal [x y z u v w][x y z u v w] 6x6 6x6 quadricsquadrics
• Color+NormalColor+Normal [x y z r g b u v w][x y z r g b u v w] 9x9 9x9 quadricsquadrics
Common property typesCommon property types
VertexVertexDimensionDimension
• ColorColor [x y z r g b][x y z r g b] 6x6 quadrics6x6 quadrics
• TextureTexture [x y z s t][x y z s t] 5x5 5x5 quadricsquadrics
• NormalNormal [x y z u v w][x y z u v w] 6x6 6x6 quadricsquadrics
• Color+NormalColor+Normal [x y z r g b u v w][x y z r g b u v w] 9x9 9x9 quadricsquadrics
Simplifying the Dragon Model(xyzrgb quadrics)
50,761 faces50,761 faces 10,000 faces10,000 faces
20 sec.20 sec.
Simplifying the Dragon Model(xyzrgb quadrics)
50,761 faces50,761 faces 1,500 faces1,500 faces
23 sec.23 sec.
Simplifying the Dragon Model(xyzrgb quadrics)
50,761 faces50,761 faces 1,500 faces1,500 faces
23 sec.23 sec.
A Sample Textured Surface
Simplifying Geometry Only:Same Texture Coordinates
Simplifying with xyzst Quadrics;New Texture Coordinates
Comparison to Related WorkVertex clustering Vertex clustering [Rossignac–Borrel 93; Low–Tan 96][Rossignac–Borrel 93; Low–Tan 96]
• Partition space; merge vertices within cellsPartition space; merge vertices within cells
• More general: doesn’t require connectivityMore general: doesn’t require connectivity
• Very fast, but poor qualityVery fast, but poor quality
Mesh optimization Mesh optimization [Hoppe [Hoppe et alet al 93] 93]
• Energy minimization approachEnergy minimization approach
• Very slow; highest quality resultsVery slow; highest quality results
Vertex clustering Vertex clustering [Rossignac–Borrel 93; Low–Tan 96][Rossignac–Borrel 93; Low–Tan 96]
• Partition space; merge vertices within cellsPartition space; merge vertices within cells
• More general: doesn’t require connectivityMore general: doesn’t require connectivity
• Very fast, but poor qualityVery fast, but poor quality
Mesh optimization Mesh optimization [Hoppe [Hoppe et alet al 93] 93]
• Energy minimization approachEnergy minimization approach
• Very slow; highest quality resultsVery slow; highest quality results
Comparison to Related WorkVertex decimation Vertex decimation [Schroeder [Schroeder et alet al 92, Schroeder 97] 92, Schroeder 97]
• Error based on distance to plane of Error based on distance to plane of neighborhoodneighborhood
• Appears somewhat slower, lower qualityAppears somewhat slower, lower quality
• Requires less memoryRequires less memory
Vertex decimation Vertex decimation [Soucy–Laurendeau 96, Klein [Soucy–Laurendeau 96, Klein et alet al 96] 96]
• More extensive distance-to-surface More extensive distance-to-surface measurementsmeasurements
• Good quality; rather slowGood quality; rather slow
Vertex decimation Vertex decimation [Schroeder [Schroeder et alet al 92, Schroeder 97] 92, Schroeder 97]
• Error based on distance to plane of Error based on distance to plane of neighborhoodneighborhood
• Appears somewhat slower, lower qualityAppears somewhat slower, lower quality
• Requires less memoryRequires less memory
Vertex decimation Vertex decimation [Soucy–Laurendeau 96, Klein [Soucy–Laurendeau 96, Klein et alet al 96] 96]
• More extensive distance-to-surface More extensive distance-to-surface measurementsmeasurements
• Good quality; rather slowGood quality; rather slow
Comparison to Related WorkIterative edge contractionIterative edge contraction• Progressive mesh construction Progressive mesh construction [Hoppe 96][Hoppe 96]
– Very high quality; very slowVery high quality; very slow
• Memory-less simplification Memory-less simplification [Lindstrom–Turk 98][Lindstrom–Turk 98]
– Similar quality; slower; uses less memorySimilar quality; slower; uses less memory
• Full-range approximation Full-range approximation [Ronfard–Rossignac 96][Ronfard–Rossignac 96]
– Somewhat lower quality; slower; more memorySomewhat lower quality; slower; more memory
Iterative edge contractionIterative edge contraction• Progressive mesh construction Progressive mesh construction [Hoppe 96][Hoppe 96]
– Very high quality; very slowVery high quality; very slow
• Memory-less simplification Memory-less simplification [Lindstrom–Turk 98][Lindstrom–Turk 98]
– Similar quality; slower; uses less memorySimilar quality; slower; uses less memory
• Full-range approximation Full-range approximation [Ronfard–Rossignac 96][Ronfard–Rossignac 96]
– Somewhat lower quality; slower; more memorySomewhat lower quality; slower; more memory
Alternative Application:Partition Surface GeometryPartition into disjoint sets of facesPartition into disjoint sets of faces• Disjoint sets of connected facesDisjoint sets of connected faces
• Aggregate, rather than approximate, geometryAggregate, rather than approximate, geometry
““Dual” simplification builds face regionsDual” simplification builds face regions• Dual quadrics:Dual quadrics:
• Edge contraction in dual graphEdge contraction in dual graph
– Each node is a face cluster; contraction merges Each node is a face cluster; contraction merges clustersclusters
– Produces binary tree of hierarchical regionsProduces binary tree of hierarchical regions
Partition into disjoint sets of facesPartition into disjoint sets of faces• Disjoint sets of connected facesDisjoint sets of connected faces
• Aggregate, rather than approximate, geometryAggregate, rather than approximate, geometry
““Dual” simplification builds face regionsDual” simplification builds face regions• Dual quadrics:Dual quadrics:
• Edge contraction in dual graphEdge contraction in dual graph
– Each node is a face cluster; contraction merges Each node is a face cluster; contraction merges clustersclusters
– Produces binary tree of hierarchical regionsProduces binary tree of hierarchical regions
( ) ( )n v n vT T vs. ii i iid d 2 2( ) ( )n v n vT T vs. ii i iid d 2 2
Simplifying Dual GraphPartitions the Surface
11,03611,036
60006000 10001000
200200
Summary:Primary ContributionsQuadric error metricQuadric error metric• Efficient characterization of local surface Efficient characterization of local surface
shapeshape
• Proven connection to surface curvatureProven connection to surface curvature
Hierarchical face clusteringHierarchical face clustering• Application of “dual” simplification algorithmApplication of “dual” simplification algorithm
• Partition, rather than approximate, geometryPartition, rather than approximate, geometry
Quadric-based simplification algorithm ...Quadric-based simplification algorithm ...
Quadric error metricQuadric error metric• Efficient characterization of local surface Efficient characterization of local surface
shapeshape
• Proven connection to surface curvatureProven connection to surface curvature
Hierarchical face clusteringHierarchical face clustering• Application of “dual” simplification algorithmApplication of “dual” simplification algorithm
• Partition, rather than approximate, geometryPartition, rather than approximate, geometry
Quadric-based simplification algorithm ...Quadric-based simplification algorithm ...
Summary:Quadric-Based SimplificationRapidly generate high quality approximationsRapidly generate high quality approximations• Good compromise betweenGood compromise between
highest quality and fastest simplificationhighest quality and fastest simplification
• Can simplify non-manifold surfacesCan simplify non-manifold surfaces
• Manages material properties as well as geometryManages material properties as well as geometry
• Doesn’t have guaranteed error boundsDoesn’t have guaranteed error bounds
Currently in real-world useCurrently in real-world use• Scanned data, isosurfaces, CAD, VR, …Scanned data, isosurfaces, CAD, VR, …
Rapidly generate high quality approximationsRapidly generate high quality approximations• Good compromise betweenGood compromise between
highest quality and fastest simplificationhighest quality and fastest simplification
• Can simplify non-manifold surfacesCan simplify non-manifold surfaces
• Manages material properties as well as geometryManages material properties as well as geometry
• Doesn’t have guaranteed error boundsDoesn’t have guaranteed error bounds
Currently in real-world useCurrently in real-world use• Scanned data, isosurfaces, CAD, VR, …Scanned data, isosurfaces, CAD, VR, …
Future DirectionsExploiting speed of simplificationExploiting speed of simplification• Interactive simplificationInteractive simplification
• Online generation of progressive meshesOnline generation of progressive meshes
Exploiting resulting hierarchical structureExploiting resulting hierarchical structure• Adaptive surface modelsAdaptive surface models
– View-dependent refinement, multiresolution surface View-dependent refinement, multiresolution surface editingediting
• Hierarchical computationsHierarchical computations
– Shape analysis, radiosity, collision detectionShape analysis, radiosity, collision detection
Exploiting speed of simplificationExploiting speed of simplification• Interactive simplificationInteractive simplification
• Online generation of progressive meshesOnline generation of progressive meshes
Exploiting resulting hierarchical structureExploiting resulting hierarchical structure• Adaptive surface modelsAdaptive surface models
– View-dependent refinement, multiresolution surface View-dependent refinement, multiresolution surface editingediting
• Hierarchical computationsHierarchical computations
– Shape analysis, radiosity, collision detectionShape analysis, radiosity, collision detection
Future DirectionsImproving simplificationImproving simplification• De-coupling analysis & synthesis phasesDe-coupling analysis & synthesis phases
• More effective topological simplificationMore effective topological simplification
• Accommodate topological preservationAccommodate topological preservation
• Analysis of generalized quadric error metricAnalysis of generalized quadric error metric
Application to tetrahedralized volumesApplication to tetrahedralized volumes• A different kind of generalized quadricA different kind of generalized quadric
Non-greedy quadric-based simplificationNon-greedy quadric-based simplification
Improving simplificationImproving simplification• De-coupling analysis & synthesis phasesDe-coupling analysis & synthesis phases
• More effective topological simplificationMore effective topological simplification
• Accommodate topological preservationAccommodate topological preservation
• Analysis of generalized quadric error metricAnalysis of generalized quadric error metric
Application to tetrahedralized volumesApplication to tetrahedralized volumes• A different kind of generalized quadricA different kind of generalized quadric
Non-greedy quadric-based simplificationNon-greedy quadric-based simplification
AcknowledgementsFunded in part byFunded in part by• NSF; Schlumberger FoundationNSF; Schlumberger Foundation
Models used in presentationModels used in presentation• Stanford graphics lab — bunnyStanford graphics lab — bunny
• Iris Development — dental moldIris Development — dental mold
• Viewpoint DataLabs — dragonViewpoint DataLabs — dragon
• GE/KitWare — turbine blade, heat exchangerGE/KitWare — turbine blade, heat exchanger
• Andrew Willmott — radiosity solutionAndrew Willmott — radiosity solution
Funded in part byFunded in part by• NSF; Schlumberger FoundationNSF; Schlumberger Foundation
Models used in presentationModels used in presentation• Stanford graphics lab — bunnyStanford graphics lab — bunny
• Iris Development — dental moldIris Development — dental mold
• Viewpoint DataLabs — dragonViewpoint DataLabs — dragon
• GE/KitWare — turbine blade, heat exchangerGE/KitWare — turbine blade, heat exchanger
• Andrew Willmott — radiosity solutionAndrew Willmott — radiosity solution
Available Online:Further Details & Free StuffFree sample Free sample implementation,implementation,
example surface models,example surface models,
related papers.related papers.
Free sample Free sample implementation,implementation,
example surface models,example surface models,
related papers.related papers.
http://www.cs.cmu.edu/~garland/quadrics/http://www.cs.cmu.edu/~garland/quadrics/http://www.cs.cmu.edu/~garland/quadrics/http://www.cs.cmu.edu/~garland/quadrics/