Quadric-Based Polygonal Surface Simplification Michael Garland Carnegie Mellon University December 1998 Michael Garland Carnegie Mellon University December.

Slides:



Advertisements
Similar presentations
Steady-state heat conduction on triangulated planar domain May, 2002
Advertisements

 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Surface Simplification using Quadric Error Metrics Guowei Wu.
Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 7: Quadric Error Metrics Ravi Ramamoorthi
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
5/1/2000Deepak Bandyopadhyay / UNC Chapel Hill 1 Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project.
High-Quality Simplification with Generalized Pair Contractions Pavel Borodin,* Stefan Gumhold, # Michael Guthe,* Reinhard Klein* *University of Bonn, Germany.
New quadric metric for simplifying meshes with appearance attributes Hugues Hoppe Microsoft Research IEEE Visualization 1999 Hugues Hoppe Microsoft Research.
Stefan Gumhold,* Pavel Borodin, # Reinhard Klein # *University of Tuebingen, Germany # University of Bonn, Germany Intersection Free Simplification.
CS CS 175 – Week 4 Mesh Decimation General Framework, Progressive Meshes.
Shape from Contours and Multiple Stereo A Hierarchical, Mesh-Based Approach Hendrik Kück, Wolfgang Heidrich, Christian Vogelgsang.
Mesh Simplification Global and Local Methods:
CENG 789 – Digital Geometry Processing 05- Smoothing and Remeshing
Polygonal Mesh – Data Structure and Smoothing
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
Visibility-Guided Simplification Eugene Zhang and Greg Turk GVU Center, College of Computing Georgia Institute of Technology.
Visualization and graphics research group CIPIC January 30, 2003Multiresolution (ECS 289L) - Winter MAPS – Multiresolution Adaptive Parameterization.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Dynamic View-Dependent Simplification for Polygonal.
Efficient simplification of point-sampled geometry Mark Pauly Markus Gross Leif Kobbelt ETH Zurich RWTH Aachen.
Visualization and graphics research group CIPIC Feb 18, 2003Multiresolution (ECS 289L) - Winter Progressive Meshes (SIGGRAPH ’96) By Hugues Hoppe.
Mesh Simplification Katja Bühler Mathematische Methoden der Computergraphik Slides stolen from: John C. Hart Who has the slides stolen from: Michael Garland.
Visualization 2000 Tutorial Mesh-Based Methods for Multiresolution Representations Instructor: Ken Joy Center for Image Processing and Integrated Computing.
Advanced Computer Graphics (Spring 2006) COMS 4162, Lecture 11: Quadric Error Metrics Ravi Ramamoorthi Some material.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Surface Simplification Using Quadric Error Metrics.
ECS 289L A Survey of Mesh-Based Multiresolution Representations Ken Joy Center for Image Processing and Integrated Computing Computer Science Department.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
Visualization and graphics research group CIPIC February 13, 2003ECS289L – Multiresolution Methods – Winter Illumination Dependent Refinement of.
10/14/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Level of Detail.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Fast and Effective Polygonal Surface Simplification Michael Garland Carnegie Mellon University December 1998 Michael Garland Carnegie Mellon University.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Dynamic Meshing Using Adaptively Sampled Distance Fields
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
SURFACE RECONSTRUCTION FROM POINT CLOUD Bo Gao Master’s Thesis December, 2007 Thesis Committee: Professor Harriet Fell Professor Robert Futrelle College.
10/02/2001CS 638, Fall 2001 Today Level of Detail Overview Decimation Algorithms LOD Switching.
DPL10/16/2015 CS 551/651: Simplification Continued David Luebke
Surface Simplification Using Quadric Error Metrics Garland & Heckbert Siggraph 97.
Levels of Detail COMP 770 3/25/09. Problem Models can be very detailed Look great when close up Last week we explored one way of attacking this problem.
Scalable, High-Quality Mesh Simplification Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign Michael Garland Eric Shaffer University.
Andrew Nealen / Olga Sorkine / Mark Alexa / Daniel Cohen-Or SoHyeon Jeong 2007/03/02.
Simplifying Polygonal Surfaces with Quadric Error Metrics Michael Garland University of Illinois at Urbana-Champaign November 1999 Michael Garland University.
CSE554Fairing and simplificationSlide 1 CSE 554 Lecture 6: Fairing and Simplification Fall 2012.
Simplifying Surfaces with Color and Texture using Quadric Error Metrics Michael Garland Paul S. Heckbert Carnegie Mellon University October 1998 Michael.
Extraction and remeshing of ellipsoidal representations from mesh data Patricio Simari Karan Singh.
Polygonal Simplification Techniques
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
1 Polygonal Techniques 이영건. 2 Introduction This chapter –Discuss a variety of problems that are encountered within polygonal data sets The.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 8 Ravi Ramamoorthi
Geometric Modeling using Polygonal Meshes Lecture 3: Discrete Differential Geometry and its Application to Mesh Processing Office: South B-C Global.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 7 Ravi Ramamoorthi
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert August 1997 Michael Garland Paul S. Heckbert August 1997.
Representation and modelling 3 – landscape specialisations 4.1 Introduction 4.2 Simple height field landscapes 4.3 Procedural modeling of landscapes- fractals.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
Hierarchical Face Clustering on Polygonal Surfaces Michael Garland University of Illinois at Urbana–Champaign Andrew Willmott Paul S. Heckbert Carnegie.
Level of Detail: Generating LODs David Luebke University of Virginia.
Mesh Resampling Wolfgang Knoll, Reinhard Russ, Cornelia Hasil 1 Institute of Computer Graphics and Algorithms Vienna University of Technology.
Rendering Large Models (in real time)
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Advanced Computer Graphics (Spring 2013) Mesh representation, overview of mesh simplification Many slides courtesy Szymon Rusinkiewicz.
A Multiphase Approach to Efficient Surface Simplification Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign Michael Garland Eric.
Advanced Computer Graphics
CS Computer Graphics II
CS475 3D Game Development Level Of Detail Nodes (LOD)
Domain-Modeling Techniques
Jarek Rossignac GVU Center Georgia Institute of Technology
Chap 10. Geometric Level of Detail
Presentation transcript:

Quadric-Based Polygonal Surface Simplification Michael Garland Carnegie Mellon University December 1998 Michael Garland Carnegie Mellon University December 1998

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

Polygonal 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 Primary focus on rendering Appearance is paramountAppearance is paramount

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

Motivation: Highly Over-sampled Models 424,376 faces 60,000 faces

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 Progressive network transmissionProgressive network transmission

Surface Simplification: Create suitable approximations

Desirable Qualities for Good Approximations Geometric 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 meshes Mesh density & aspect ratios adapt to curvatureMesh density & aspect ratios adapt to curvature Topological 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 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 meshes Mesh density & aspect ratios adapt to curvatureMesh density & aspect ratios adapt to curvature Topological 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 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.

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

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]

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

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?

How I Measure Error Each vertex has a (conceptual) set of planes Error  sum of squared distances to planes in setError  sum of squared distances to planes in set 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 a (conceptual) set of planes Error  sum of squared distances to planes in setError  sum of squared distances to planes in set 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 )

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 v2v2v2v2v’

How I Measure Error 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 requiredEfficient implicit representation; no sets required Drawback: unlike surface, planes are infiniteDrawback: unlike surface, planes are infinite Related 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? 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 requiredEfficient implicit representation; no sets required Drawback: unlike surface, planes are infiniteDrawback: unlike surface, planes are infinite Related 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 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(v i ) = Q i (v i )Error(v i ) = Q i (v i ) Sum quadrics when contracting (v i, v j )  v’Sum quadrics when contracting (v i, v j )  v’ Cost of contraction is Q(v’)Cost of contraction is Q(v’) Sum of quadrics represents set of planes Each vertex has an associated quadric Error(v i ) = Q i (v i )Error(v i ) = Q i (v i ) Sum quadrics when contracting (v i, v j )  v’Sum quadrics when contracting (v i, v j )  v’ Cost of contraction is Q(v’)Cost of contraction is Q(v’)

The Quadric Error Metric 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’) 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 A is non-invertibleFallback to fixed placement if A is non-invertible 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’) 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 A is non-invertibleFallback to fixed placement if A is non-invertible

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

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

Visualizing Quadrics in 3-D Quadric isosurfaces Are ellipsoids (maybe degenerate)Are ellipsoids (maybe degenerate) Centered around verticesCentered around vertices Characterize shapeCharacterize shape Stretch in least- curved directionsStretch in least- curved directions

Quadrics and Surface Curvature For 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 limit Eigenvectors of A are principal directionsEigenvectors of A are principal directions Eigenvalues of A  squared principal curvaturesEigenvalues of A  squared principal curvatures Algorithm which minimizes quadric error will produce optimal aspect ratios [Nadler 86, D’Azevedo 89]Algorithm which minimizes quadric error will produce optimal aspect ratios [Nadler 86, D’Azevedo 89] For 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 limit Eigenvectors of A are principal directionsEigenvectors of A are principal directions Eigenvalues of A  squared principal curvaturesEigenvalues of A  squared principal curvatures Algorithm which minimizes quadric error will produce optimal aspect ratios [Nadler 86, D’Azevedo 89]Algorithm which minimizes quadric error will produce optimal aspect ratios [Nadler 86, D’Azevedo 89]

Sample Model: Dental Mold 424,376 faces 60,000 faces 50 sec

Sample Model: Dental Mold 424,376 faces 8000 faces 55 sec

Sample Model: Dental Mold 424,376 faces 1000 faces 56 sec

Sample Model: Turbine Blade 1,765,388 faces 420,000 faces 217 sec

Sample Model: Turbine Blade 1,765,388 faces 80,000 faces 300 sec

Sample Model: Turbine Blade 1,765,388 faces 310 sec 8000 faces

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

Gouraud Shaded Surface: Single RGB Value Per Vertex Surface geometry Radiosity solution

Gouraud Shaded Surface: Single RGB Value Per Vertex Mesh for solution Radiosity solution

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

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

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

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

Simplifying the Dragon Model (xyzrgb quadrics) 50,761 faces 10,000 faces 20 sec.

Simplifying the Dragon Model (xyzrgb quadrics) 50,761 faces 1,500 faces 23 sec.

Simplifying the Dragon Model (xyzrgb quadrics) 50,761 faces 1,500 faces 23 sec.

A Sample Textured Surface

Simplifying Geometry Only: Same Texture Coordinates

Simplifying with xyzst Quadrics; New Texture Coordinates

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

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

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] –Somewhat 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] –Somewhat lower quality; slower; more memory

Alternative Application: Partition Surface Geometry Partition 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 regions Dual quadrics:Dual quadrics: Edge contraction in dual graphEdge contraction in dual graph –Each node is a face cluster; contraction merges clusters –Produces binary tree of hierarchical regions Partition 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 regions Dual quadrics:Dual quadrics: Edge contraction in dual graphEdge contraction in dual graph –Each node is a face cluster; contraction merges clusters –Produces binary tree of hierarchical regions

Simplifying Dual Graph Partitions the Surface11,

Summary: Primary Contributions Quadric error metric Efficient characterization of local surface shapeEfficient characterization of local surface shape Proven connection to surface curvatureProven connection to surface curvature Hierarchical 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 error metric Efficient characterization of local surface shapeEfficient characterization of local surface shape Proven connection to surface curvatureProven connection to surface curvature Hierarchical face clustering Application of “dual” simplification algorithmApplication of “dual” simplification algorithm Partition, rather than approximate, geometryPartition, rather than approximate, geometry Quadric-based simplification algorithm...

Summary: Quadric-Based Simplification 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, VR, …Scanned data, isosurfaces, CAD, VR, … 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, VR, …Scanned data, isosurfaces, CAD, VR, …

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

Future Directions Improving 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 volumes A different kind of generalized quadricA different kind of generalized quadric Non-greedy quadric-based simplification Improving 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 volumes A different kind of generalized quadricA different kind of generalized quadric Non-greedy quadric-based simplification

Acknowledgements Funded in part by NSF; Schlumberger FoundationNSF; Schlumberger Foundation Models 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 by NSF; Schlumberger FoundationNSF; Schlumberger Foundation Models 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 Stuff Free sample implementation, example surface models, example surface models, related papers. related papers.