Download presentation
Presentation is loading. Please wait.
Published byArchibald Baldric Day Modified over 9 years ago
1
Scalable, High-Quality Mesh Simplification Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign Michael Garland Eric Shaffer University of Illinois at Urbana–Champaign
2
Typical Simplification Problem 1,765,388 faces 420,000 faces 80,000 faces
3
One Common Solution Greedy iterative contraction edges (or vertex pairs) are most common, faces also usededges (or vertex pairs) are most common, faces also used Starting with the original model, iteratively rank all edges with some cost metricrank all edges with some cost metric contract minimum cost edgecontract minimum cost edge update edge costsupdate edge costs Greedy iterative contraction edges (or vertex pairs) are most common, faces also usededges (or vertex pairs) are most common, faces also used Starting with the original model, iteratively rank all edges with some cost metricrank all edges with some cost metric contract minimum cost edgecontract minimum cost edge update edge costsupdate edge costs
4
Quadric Error Metric Given a plane, we can define a quadric Q measuring squared distance of point to plane
5
Quadric Error Metric Sum of quadrics represents set of planes Each voxel has an associated quadric sum of quadrics for faces with corner in voxelsum of quadrics for faces with corner in voxel find representative point v * minimizing Q(v * )find representative point v * minimizing Q(v * ) Sum of quadrics represents set of planes Each voxel has an associated quadric sum of quadrics for faces with corner in voxelsum of quadrics for faces with corner in voxel find representative point v * minimizing Q(v * )find representative point v * minimizing Q(v * )
6
Fails on Large Models Massive meshes becoming more common DOE ASCI ProgramDOE ASCI Program –isosurface data, ~500M triangles Stanford Digital Michelangelo ProjectStanford Digital Michelangelo Project –range scan data, up to 1B triangles Traditional simplification methods fail!Traditional simplification methods fail! Massive meshes becoming more common DOE ASCI ProgramDOE ASCI Program –isosurface data, ~500M triangles Stanford Digital Michelangelo ProjectStanford Digital Michelangelo Project –range scan data, up to 1B triangles Traditional simplification methods fail!Traditional simplification methods fail! 8.2 million triangles @ 2 mm resolution
7
Why Traditional Methods Fail Have input sensitive memory requirements load entire model + auxiliary structures into RAMload entire model + auxiliary structures into RAM Iteratively contract edge of “least cost” large data structures with poor memory localitylarge data structures with poor memory locality takes many iterations to produce a resulttakes many iterations to produce a result An example from Lindstrom & Turk method: 160 bytes/vertex — removes 1 vertex/iteration160 bytes/vertex — removes 1 vertex/iteration 400M input triangles = 30GB + 1 week400M input triangles = 30GB + 1 week Have input sensitive memory requirements load entire model + auxiliary structures into RAMload entire model + auxiliary structures into RAM Iteratively contract edge of “least cost” large data structures with poor memory localitylarge data structures with poor memory locality takes many iterations to produce a resulttakes many iterations to produce a result An example from Lindstrom & Turk method: 160 bytes/vertex — removes 1 vertex/iteration160 bytes/vertex — removes 1 vertex/iteration 400M input triangles = 30GB + 1 week400M input triangles = 30GB + 1 week
8
Out of Core Simplification Single pass spatial clustering partition space into cellspartition space into cells merge all vertices within each cellmerge all vertices within each cell Two common partition types uniform grid [Lindstrom 00]uniform grid [Lindstrom 00] BSP tree [Shaffer & Garland 01]BSP tree [Shaffer & Garland 01] Single pass spatial clustering partition space into cellspartition space into cells merge all vertices within each cellmerge all vertices within each cell Two common partition types uniform grid [Lindstrom 00]uniform grid [Lindstrom 00] BSP tree [Shaffer & Garland 01]BSP tree [Shaffer & Garland 01]
9
But Gives Low Quality Output Original Uniform grid (1100 faces) BSP tree (1000 faces)
10
Want Truly General Method Able to process meshes of arbitrary size output-sensitive memory usageoutput-sensitive memory usage scan through input a minimal number of timesscan through input a minimal number of times like out-of-core clustering methodslike out-of-core clustering methods Produce high quality approximations even at low output resolutionseven at low output resolutions like iterative contraction algorithmslike iterative contraction algorithms Able to process meshes of arbitrary size output-sensitive memory usageoutput-sensitive memory usage scan through input a minimal number of timesscan through input a minimal number of times like out-of-core clustering methodslike out-of-core clustering methods Produce high quality approximations even at low output resolutionseven at low output resolutions like iterative contraction algorithmslike iterative contraction algorithms
11
Multiphase Method: Do Both! Phase I: Uniform clustering perform out-of-core clustering (uniform grid)perform out-of-core clustering (uniform grid) produce intermediate vertices + facesproduce intermediate vertices + faces and 1 quadric per vertexand 1 quadric per vertex Phase II: Iterative edge contraction beginning with quadrics from Phase Ibeginning with quadrics from Phase I iteratively contract edge of least cost as beforeiteratively contract edge of least cost as before Phases are coupled together by quadrics Phase I: Uniform clustering perform out-of-core clustering (uniform grid)perform out-of-core clustering (uniform grid) produce intermediate vertices + facesproduce intermediate vertices + faces and 1 quadric per vertexand 1 quadric per vertex Phase II: Iterative edge contraction beginning with quadrics from Phase Ibeginning with quadrics from Phase I iteratively contract edge of least cost as beforeiteratively contract edge of least cost as before Phases are coupled together by quadrics
12
Scalable Algorithm Producing Quality Results Original 8 million faces Uniform grid (46 seconds) Multiphase (65 seconds)
13
Not Just Two Passes Original Multiphase Separate passes QSlim
14
Quality Similar to QSlim OriginalQSlimMultiphase
15
Time/Error Tradeoff
16
What Are Allowable Phases? Must accept as input: vertices + faces + per vertex quadricsvertices + faces + per vertex quadrics Must produce as output: vertices + faces + per vertex quadricsvertices + faces + per vertex quadrics input vertices map to output verticesinput vertices map to output vertices –adjacent input vertices either map to the same output vertex or adjacent output vertices output quadrics are sum of input quadrics for input vertices that map to given output vertexoutput quadrics are sum of input quadrics for input vertices that map to given output vertex Must accept as input: vertices + faces + per vertex quadricsvertices + faces + per vertex quadrics Must produce as output: vertices + faces + per vertex quadricsvertices + faces + per vertex quadrics input vertices map to output verticesinput vertices map to output vertices –adjacent input vertices either map to the same output vertex or adjacent output vertices output quadrics are sum of input quadrics for input vertices that map to given output vertexoutput quadrics are sum of input quadrics for input vertices that map to given output vertex
17
Deconstructing Simplification View simplification as 2-step clustering compute partition of vertex setcompute partition of vertex set unify vertices within each subsetunify vertices within each subset –compute representative position for each subset This encompasses 2 common methods spatial vertex clustering (e.g., uniform grid)spatial vertex clustering (e.g., uniform grid) iterative edge (or vertex pair) contractioniterative edge (or vertex pair) contraction View simplification as 2-step clustering compute partition of vertex setcompute partition of vertex set unify vertices within each subsetunify vertices within each subset –compute representative position for each subset This encompasses 2 common methods spatial vertex clustering (e.g., uniform grid)spatial vertex clustering (e.g., uniform grid) iterative edge (or vertex pair) contractioniterative edge (or vertex pair) contraction
18
Clustering via Contraction Iterative contraction builds up vertex sets vertices of original are singleton setsvertices of original are singleton sets contraction merges two setscontraction merges two sets
19
Where Does This Lead Us? Any partitioning algorithm is applicable including the usual onesincluding the usual ones others like MeTIS, k-means clustering, …others like MeTIS, k-means clustering, … key distinction: spatial vs. graph partitioningkey distinction: spatial vs. graph partitioning Formal separation of two distinct policies how to select a vertex partitionhow to select a vertex partition how to select a representative vertexhow to select a representative vertex Any partitioning algorithm is applicable including the usual onesincluding the usual ones others like MeTIS, k-means clustering, …others like MeTIS, k-means clustering, … key distinction: spatial vs. graph partitioningkey distinction: spatial vs. graph partitioning Formal separation of two distinct policies how to select a vertex partitionhow to select a vertex partition how to select a representative vertexhow to select a representative vertex
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.