320 likes | 345 Views
Simplifying Polygonal Surfaces with Quadric Error Metrics. Michael Garland University of Illinois at Urbana-Champaign November 1999. The Problem of Detail. Graphics systems are awash in model data very detailed CAD databases high-precision surface scans
E N D
Simplifying Polygonal Surfaces with Quadric Error Metrics Michael Garland University of Illinois at Urbana-Champaign November 1999
The Problem of Detail • Graphics systems are awash in model data • very detailed CAD databases • high-precision surface scans • Available resources are always constrained • CPU, space, graphics speed, network bandwidth • We need economical models • want the minimum level of detail (LOD) required • detail requirements are dictated by context
A Non-Economical Model 424,376 triangles 60,000 triangles
Polygonal Surface Models • Model composed of • sets of vertices and triangles • all polygons are pre-triangulated • other attributes (e.g., color) • These are very widely supported • almost only hardware primitive • near-universal in software • Other representations exist • but they don’t solve the problem • many applications want polygons
Automatic Surface Simplification • Produce approximations with fewer triangles • should be as similar as possible to original • want computationally efficient process • Need criteria for assessing similarity of models • for display, visual similarity is the ultimate goal • similarity of shape is often used instead • generally easier to compute • lends itself more to applications other than display
Related Topics • Function approximation • curves & height fields (e.g., terrains) • Geometry compression • simplification is a kind of lossy compression • Surface smoothing • reduces geometric complexity of shape • Mesh generation • for finite element analysis (e.g., solving PDE’s)
My Assumptions About Input • Mesh connectivity is consistent • corners which coincide in space share vertices • Surface need not have manifold topology • edges can border any number of faces • vertices shared by arbitrary collection of faces • consistent normal orientation not required • Application domain does not rely on topology • vs. medical imaging — hole in the lung matters
Key Features of My Surface Simplification Algorithm • An effective algorithm for practical use • simple to implement • fast simplification (10,000 faces in 1 second) • high quality approximations • Implicitly simplifies topology • all decisions are based on geometric criteria • Can manage surface properties • color, texture, etc.
Fundamental Operation:Edge Contraction • A single edge contraction (v1,v2) v’ is performed by • moving v1 and v2 to position v’ • replacing all occurrences of v2 with v1 • removing v2 and all degenerate triangles v’ v2 v1
Overview of Algorithm • Preprocessing phase: model cleanup • enforce vertex sharing • triangulate & remove degenerate faces • Iteratively contract vertex pairs (i.e., edges) • simple greedy technique • rank edges by “cost” of contraction • maintain proposed contractions in a heap • at each iteration, contract minimum cost edge
Measuring Cost of Contractions • Cost should reflect geometric error introduced • error between current & original (vs. last iteration) • also 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] • Must address two interrelated problems • what is the best contraction to perform? • what is the best position v’ for remaining vertex?
How I Measure Error • Each vertex has a (conceptual) set of planes • error sum of squared distances to planes in set • Initialize with planes of incident faces • consequently, all initial errors are 0 • When contracting pair, use union of plane sets • planes(v’) = planes(v1) planes(v2)
A Simple Example:Contraction & “Planes” in 2D • Lines defined by neighboring segments • determine position of new vertex • accumulate lines for ever larger areas v’ v2 v1
How I Measure Error • Why base error on planes? • faster, but less accurate, than distance-to-face • simple linear system for minimum-error position • efficient implicit representation; no sets required • drawback: unlike surface, planes are infinite • Related error metrics • Ronfard & Rossignac — max vs. sum • Lindstrom & Turk — similar form; volume-based
The Quadric Error Metric • Given a plane, we can define a quadric Q • measuring squared distance to the plane as
The Quadric Error Metric • Sum of quadrics represents set of planes • Each vertex has an associated quadric • error(vi) = Qi (vi) • sum quadrics when contracting (vi, vj) v’ • cost of contraction is Q(v’)
The Quadric Error Metric • Sum of endpoint quadrics determines v’ • fixed placement: select v1 or v2 • optimal placement: choose v’ minimizing Q(v’) • fixed placement is faster but lower quality • fallback to fixed placement if A is non-invertible
Sample Model: Scanned Bunny • Total simplification time: 7 seconds • 200 MHz PentiumPro; excludes input–output time • Shape preserved at 1000 faces; gross structure at 100 69,451 faces 1000 faces 100 faces
Visualizing Quadrics in 3-D • Quadric isosurfaces • are always ellipsoids(maybe degenerate) • centered around vertices • characterize shape • stretch in least-curved directions
Quadrics and Surface Curvature • For quadrics on differentiable manifold • limit of infinitely subdivided polygonal surface • integrate quadrics in a small neighborhood • Can prove that in the limit • eigenvectors of A are principal directions • eigenvalues of A squared principal curvatures • algorithm which minimizes quadric error will produce optimal aspect ratios [Heckbert–Garland 99]
Sample Model: Dental Mold 50 sec 424,376 faces 60,000 faces
Sample Model: Dental Mold 55 sec 424,376 faces 8000 faces
Sample Model: Dental Mold 56 sec 424,376 faces 1000 faces
Sample Model: Turbine Blade 217 sec 1,765,388 faces 420,000 faces
Sample Model: Turbine Blade 300 sec 1,765,388 faces 80,000 faces
Sample Model: Turbine Blade 310 sec 1,765,388 faces 8000 faces
Summary:Quadric-Based Simplification • An effective simplification technique • good compromise between highest quality and fastest simplification • uses efficient characterization of local shape • proven connection to surface curvature and optimal triangle shape • Currently in real-world use • scanned data, CAD, VR, medical imaging …
Future Directions • Broader applicability • non-rigid surfaces (i.e., for animation) • extremely large datasets of 109 or more triangles • other model types: tetrahedral meshs, splines, … • alternative multiresolution representations • Higher quality approximations • more effective topological simplification • good performance at extreme levels • better analysis of resulting approximation quality
Acknowledgements • Funded in part by • National Science Foundation • Schlumberger Foundation • Sample models courtesy of • Stanford graphics lab — bunny • Iris Development — dental mold • Viewpoint DataLabs — dragon • GE/KitWare — turbine blade • Andrew Willmott — radiosity solution
Free sample implementation, example surface models, related papers. Further Details Available Online • http://www.uiuc.edu/~garland/