GD99 Talk.ppt - Michael Garland

Document Sample
GD99 Talk.ppt - Michael Garland Powered By Docstoc
					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
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




                           v2                            v’

           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

                    Error( v )   (n i Tv  di )2
                                     i
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



                                  v2        v’
                     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
                  Q  ( A , b , c)  (n nT, dn , d 2 )
 measuring squared distance to the plane as
                   Q ( v )  v TAv  2bTv  c

                  L
                  a
                  M
                      2
                           ab ac x OO
                                   LP
                                   P  2 ad                      LO
                                                                 x
Q(v )  x y      zM
                  ab       b2      M
                                 bcP
                                   My
                                      P                  bd   cd M d
                                                                 yP
                                                                 M P
                                                                        2

                  M
                  N
                  ac       bc    c PP
                                   M
                                   N
                                   QQ
                                   2
                                    z                            zP
                                                                 M
                                                                 N Q
The Quadric Error Metric
Sum of quadrics represents set of planes

              (n i   T
                         v  di )   2                F Q I(v )
                                          Q (v )  G J
                                                      K
              i                           i
                                              i
                                                     H
                                                     i
                                                         i

Each vertex has an associated quadric
 • error(vi) = Qi (vi)
 • sum quadrics when contracting (vi, vj)  v’
 • cost of contraction is Q(v’)

          Q  Qi  Q j  ( A i  A j , b i  b j , ci  cj )
The Quadric Error Metric
Sum of endpoint quadrics determines v’
 • fixed placement: select v1 or v2
 • optimal placement: choose v’ minimizing Q(v’)

              Q( v ' )  0  v    A 1b
 • 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
Demo
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
 Further Details Available Online
Free sample implementation,
   example surface models,
       related papers.




                         http://www.uiuc.edu/~garland/

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:1
posted:12/8/2012
language:English
pages:32