Download presentation
Presentation is loading. Please wait.
Published byClinton Porter Modified over 9 years ago
1
Fast and Effective Polygonal Surface Simplification Michael Garland Carnegie Mellon University December 1998 Michael Garland Carnegie Mellon University December 1998
2
Overview Polygonal models are often too complex Can be highly over-sampled (e.g., scanned data)Can be highly over-sampled (e.g., scanned data) Manage complexity given limited resourcesManage complexity given limited resources –rendering speed, network bandwidth, disk space Automatically 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 complex Can be highly over-sampled (e.g., scanned data)Can be highly over-sampled (e.g., scanned data) Manage complexity given limited resourcesManage complexity given limited resources –rendering speed, network bandwidth, disk space Automatically 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
3
Features of My Surface Simplification Algorithm An 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 topology All decisions are based on geometric criteriaAll decisions are based on geometric criteria Can manage surface properties Color, texture, etc.Color, texture, etc. An 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 topology All decisions are based on geometric criteriaAll decisions are based on geometric criteria Can manage surface properties Color, texture, etc.Color, texture, etc.
4
Triangulated Surface Models Set of vertices Position in spacePosition in space Attributes (e.g., color)Attributes (e.g., color) Set of triangles All polygons are triangulatedAll polygons are triangulated Piecewise-planar surface
5
Assumptions About Input Model Mesh connectivity is complete Corners which coincide in space share verticesCorners which coincide in space share vertices Surface 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 topology vs. medical imaging — hole in the lung mattersvs. medical imaging — hole in the lung matters Mesh connectivity is complete Corners which coincide in space share verticesCorners which coincide in space share vertices Surface 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 topology vs. medical imaging — hole in the lung mattersvs. medical imaging — hole in the lung matters
6
Motivation: Highly Over-sampled Models 424,376 faces 60,000 faces
7
Motivation: Adaptive Models for Rendering Single model not always suitable Too large for hardware capacityToo large for hardware capacity Excessively detailed for screen sizeExcessively detailed for screen size Use 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
8
Surface Simplification: Create suitable approximations 0.5 sec total
9
contract v1v1v1v1 v2v2v2v2 v’ Fundamental Operation: Edge Contraction Contract vertex pair (v 1,v 2 ) v’ Move v 1 and v 2 to position v’Move v 1 and v 2 to position v’ Replace all occurrences of v 2 with v 1Replace all occurrences of v 2 with v 1 Remove v 2 and degenerate trianglesRemove v 2 and degenerate triangles Contract vertex pair (v 1,v 2 ) v’ Move v 1 and v 2 to position v’Move v 1 and v 2 to position v’ Replace all occurrences of v 2 with v 1Replace all occurrences of v 2 with v 1 Remove v 2 and degenerate trianglesRemove v 2 and degenerate triangles
10
Properties of Edge Contraction Local, fine-grained modification Low computational costLow computational cost Removes 2 faces + 1 vertex (on a closed manifold)Removes 2 faces + 1 vertex (on a closed manifold) Continuous 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 properties Handy for progressive mesh transmission [Hoppe 96]Handy for progressive mesh transmission [Hoppe 96] Local, fine-grained modification Low computational costLow computational cost Removes 2 faces + 1 vertex (on a closed manifold)Removes 2 faces + 1 vertex (on a closed manifold) Continuous 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 properties Handy for progressive mesh transmission [Hoppe 96]Handy for progressive mesh transmission [Hoppe 96]
11
Overview of Algorithm Preprocessing phase: model cleanup Enforce vertex sharingEnforce vertex sharing Triangulate & remove degenerate facesTriangulate & remove degenerate faces 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 cleanup Enforce vertex sharingEnforce vertex sharing Triangulate & remove degenerate facesTriangulate & remove degenerate faces 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
12
Measuring Cost of Contractions Cost 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 here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96]Various contraction-based algorithms differ here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96] Must 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 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 here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96]Various contraction-based algorithms differ here [Guéziec 95; Hoppe 96; Lindstrom-Turk 98; Ronfard-Rossignac 96] Must 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?
13
How I Measure Error Each vertex has an associated set of planes Error sum of squared distances to planes in setError sum of squared distances to planes in set Similar to [Ronfard–Rossignac 96] (sum vs. max)Similar to [Ronfard–Rossignac 96] (sum vs. max) Note: sets are purely conceptualNote: sets are purely conceptual Initialize with planes of incident faces Consequently, all initial errors are 0Consequently, all initial errors are 0 When contracting pair, use union of plane sets planes(v’) = planes(v 1 ) planes(v 2 )planes(v’) = planes(v 1 ) planes(v 2 ) Each vertex has an associated set of planes Error sum of squared distances to planes in setError sum of squared distances to planes in set Similar to [Ronfard–Rossignac 96] (sum vs. max)Similar to [Ronfard–Rossignac 96] (sum vs. max) Note: sets are purely conceptualNote: sets are purely conceptual Initialize with planes of incident faces Consequently, all initial errors are 0Consequently, all initial errors are 0 When contracting pair, use union of plane sets planes(v’) = planes(v 1 ) planes(v 2 )planes(v’) = planes(v 1 ) planes(v 2 )
14
A Simple Example: Contraction & “Planes” in 2D Lines 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 segments Determine position of new vertexDetermine position of new vertex Accumulate lines for ever larger areasAccumulate lines for ever larger areas Original After 1 Step v1v1v1v1 v2v2v2v2
15
How I Measure Error Distance-to-face would be more accurate But planes have some significant advantages Locally, distance to plane equals distance to faceLocally, distance to plane equals distance to face Can move freely with 0 error in planar regionsCan move freely with 0 error in planar regions Simple linear system for optimal positionSimple linear system for optimal position Can even represent them implicitly; no more setsCan even represent them implicitly; no more sets –Much more efficient & compact Drawback: unlike surface, planes are infinite Distance-to-face would be more accurate But planes have some significant advantages Locally, distance to plane equals distance to faceLocally, distance to plane equals distance to face Can move freely with 0 error in planar regionsCan move freely with 0 error in planar regions Simple linear system for optimal positionSimple linear system for optimal position Can even represent them implicitly; no more setsCan even represent them implicitly; no more sets –Much more efficient & compact Drawback: unlike surface, planes are infinite
16
The Quadric Error Metric Given a plane, we can define a quadric Q measuring squared distance to the plane as
17
The Quadric Error Metric Each vertex has an associated quadric Measures error at vertexMeasures error at vertex Sum quadrics when contracting pairSum quadrics when contracting pair Sum of endpoint quadrics determines v’ Fixed placement: select v 1 or v 2Fixed placement: select v 1 or v 2 Optimal placement: choose v’ minimizing Q(v’)Optimal placement: choose v’ minimizing Q(v’) Each vertex has an associated quadric Measures error at vertexMeasures error at vertex Sum quadrics when contracting pairSum quadrics when contracting pair Sum of endpoint quadrics determines v’ Fixed placement: select v 1 or v 2Fixed placement: select v 1 or v 2 Optimal placement: choose v’ minimizing Q(v’)Optimal placement: choose v’ minimizing Q(v’)
18
Sample Model: Scanned Bunny 69,451 faces 1000 faces 100 faces Total simplification time: 7 seconds 200 MHz PentiumPro; excludes input–output time200 MHz PentiumPro; excludes input–output time Shape preserved at 1000 faces; gross structure at 100 Total simplification time: 7 seconds 200 MHz PentiumPro; excludes input–output time200 MHz PentiumPro; excludes input–output time Shape preserved at 1000 faces; gross structure at 100
19
Additional Algorithm Details Open 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 face –Assign large weight & add into endpoints Contraction 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 mesh Weight quadrics by triangle areaWeight quadrics by triangle area Open 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 face –Assign large weight & add into endpoints Contraction 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 mesh Weight quadrics by triangle areaWeight quadrics by triangle area
20
Visualizing Quadrics in 3-D Quadric isosurfaces Are ellipsoids (maybe degenerate)Are ellipsoids (maybe degenerate) Characterize shapeCharacterize shape Stretch in least- curved directionsStretch in least- curved directions Eigenvalues propor- tional to principal curvaturesEigenvalues propor- tional to principal curvatures
21
Sample Model: Dental Mold 424,376 faces 60,000 faces 50 sec
22
Sample Model: Dental Mold 424,376 faces 8000 faces 55 sec
23
Sample Model: Dental Mold 424,376 faces 1000 faces 56 sec
24
Sample Model: Turbine Blade 1,765,388 faces 420,000 faces 217 sec
25
Sample Model: Turbine Blade 1,765,388 faces 80,000 faces 300 sec
26
Sample Model: Turbine Blade 1,765,388 faces 310 sec 8000 faces
27
Good Geometric Results, Need to Consider Attributes Fundamental 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 properties Color, texture, normals, etc.Color, texture, normals, etc. Need to simplify these as wellNeed to simplify these as well Fundamental 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 properties Color, texture, normals, etc.Color, texture, normals, etc. Need to simplify these as wellNeed to simplify these as well
28
Gouraud Shaded Surface: Single RGB Value Per Vertex Surface geometry Radiosity solution
29
Gouraud Shaded Surface: Single RGB Value Per Vertex Mesh for solution Radiosity solution
30
Surface Properties as Vertex Attributes Each vertex has a set of properties Each property has one unique value per vertexEach property has one 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 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 properties Each property has one unique value per vertexEach property has one 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 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
31
Vertex Attributes Become Added Dimensions 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 Euclidean Scale xyz space to unit cube for consistencyScale xyz space to unit cube for consistency Triangle 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 Theorem 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 Euclidean Scale xyz space to unit cube for consistencyScale xyz space to unit cube for consistency Triangle 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 Theorem
32
Generalized Quadric Metric Squared distance to 2-plane has same form: A: 6x6 matrix v,b: 6-vectors c: scalar (for RGB)A: 6x6 matrix v,b: 6-vectors c: scalar (for RGB) Underlying algorithm remains the sameUnderlying algorithm remains the same May 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: A: 6x6 matrix v,b: 6-vectors c: scalar (for RGB)A: 6x6 matrix v,b: 6-vectors c: scalar (for RGB) Underlying algorithm remains the sameUnderlying algorithm remains the same May want to selectively weight channels Relative importance of space & colorRelative importance of space & color Relative importance of red & greenRelative importance of red & green
33
Generalized Quadric Metric Common property types VertexDimension VertexDimension Color[x y z r g b]6x6 quadricsColor[x y z r g b]6x6 quadrics Texture[x y z s t]5x5 quadricsTexture[x y z s t]5x5 quadrics Normal[x y z u v w]6x6 quadricsNormal[x y z u v w]6x6 quadrics Color+Normal[x y z r g b u v w]9x9 quadricsColor+Normal[x y z r g b u v w]9x9 quadrics Common property types VertexDimension VertexDimension Color[x y z r g b]6x6 quadricsColor[x y z r g b]6x6 quadrics Texture[x y z s t]5x5 quadricsTexture[x y z s t]5x5 quadrics Normal[x y z u v w]6x6 quadricsNormal[x y z u v w]6x6 quadrics Color+Normal[x y z r g b u v w]9x9 quadricsColor+Normal[x y z r g b u v w]9x9 quadrics
34
Simplifying the Dragon Model 50,761 faces 10,000 faces 20 sec.
35
Simplifying the Dragon Model 50,761 faces 1,500 faces 23 sec.
36
Simplifying the Dragon Model 50,761 faces 1,500 faces 23 sec.
37
A Sample Textured Surface
38
Simplifying Geometry Only: Same Texture Coordinates
39
Simplifying with xyzst Quadrics; New Texture Coordinates
40
Comparison to Related Work Vertex clustering [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 [Hoppe et al 93] Energy minimization approachEnergy minimization approach Very slow; highest quality resultsVery slow; highest quality results Vertex clustering [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 [Hoppe et al 93] Energy minimization approachEnergy minimization approach Very slow; highest quality resultsVery slow; highest quality results
41
Comparison to Related Work Vertex decimation [Schroeder et al 92, Schroeder 97] Error based on distance to plane of neighborhoodError based on distance to plane of neighborhood Appears somewhat slower, lower qualityAppears somewhat slower, lower quality Requires less memoryRequires less memory Vertex decimation [Soucy–Laurendeau 96, Klein et al 96] More extensive distance-to-surface measurementsMore extensive distance-to-surface measurements Good quality; rather slowGood quality; rather slow Vertex decimation [Schroeder et al 92, Schroeder 97] Error based on distance to plane of neighborhoodError based on distance to plane of neighborhood Appears somewhat slower, lower qualityAppears somewhat slower, lower quality Requires less memoryRequires less memory Vertex decimation [Soucy–Laurendeau 96, Klein et al 96] More extensive distance-to-surface measurementsMore extensive distance-to-surface measurements Good quality; rather slowGood quality; rather slow
42
Comparison to Related Work Iterative edge contraction Progressive mesh construction [Hoppe 96]Progressive mesh construction [Hoppe 96] –Very high quality; very slow Memory-less simplification [Lindstrom–Turk 98]Memory-less simplification [Lindstrom–Turk 98] –Similar quality; slower; uses less memory Full-range approximation [Ronfard–Rossignac 96]Full-range approximation [Ronfard–Rossignac 96] –Lower quality; slower; more memory Iterative edge contraction Progressive mesh construction [Hoppe 96]Progressive mesh construction [Hoppe 96] –Very high quality; very slow Memory-less simplification [Lindstrom–Turk 98]Memory-less simplification [Lindstrom–Turk 98] –Similar quality; slower; uses less memory Full-range approximation [Ronfard–Rossignac 96]Full-range approximation [Ronfard–Rossignac 96] –Lower quality; slower; more memory
43
Future Directions Exploiting speed of simplification Interactive simplificationInteractive simplification Online generation of progressive meshesOnline generation of progressive meshes Exploiting resulting hierarchical structure Adaptive surface modelsAdaptive surface models –View-dependent refinement, multiresolution surface editing Hierarchical computationsHierarchical computations –Shape analysis, radiosity, collision detection Exploiting speed of simplification Interactive simplificationInteractive simplification Online generation of progressive meshesOnline generation of progressive meshes Exploiting resulting hierarchical structure Adaptive surface modelsAdaptive surface models –View-dependent refinement, multiresolution surface editing Hierarchical computationsHierarchical computations –Shape analysis, radiosity, collision detection
44
Summary Rapidly generate high quality approximations Good compromise between highest quality and fastest simplificationGood compromise between highest 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 use Scanned data, isosurfaces, CAD models, …Scanned data, isosurfaces, CAD models, … Rapidly generate high quality approximations Good compromise between highest quality and fastest simplificationGood compromise between highest 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 use Scanned data, isosurfaces, CAD models, …Scanned data, isosurfaces, CAD models, …
45
Available Online: Further Details & Free Stuff Free sample 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/
46
What We Want from Approximations Geometric fidelity Economical meshes Mesh density varies with curvatureMesh density varies with curvature Triangle aspect ratio adapts to curvatureTriangle aspect ratio adapts to curvature Topological consistency Do not introduce self-intersectionsDo not introduce self-intersections Geometric fidelity Economical meshes Mesh density varies with curvatureMesh density varies with curvature Triangle aspect ratio adapts to curvatureTriangle aspect ratio adapts to curvature Topological consistency Do not introduce self-intersectionsDo not introduce self-intersections
47
Rewriting Squared Distance to Plane
48
Measuring Error with Quadrics Define a quadric Q Evaluates square distance to plane No need to track sets; just use sum of quadrics Sum is much cheaper than set unionSum is much cheaper than set union Define a quadric Q Evaluates square distance to plane No need to track sets; just use sum of quadrics Sum is much cheaper than set unionSum is much cheaper than set union
49
Sample Model with Boundary: Crater Lake Terrain Data 119,114 faces 1,000 faces — 23 sec.
50
Triangulated Surface Models
51
Visualizing Quadrics in 3-D
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.