Mesh Decimation. Mark Pauly

Similar documents
Applications. Oversampled 3D scan data. ~150k triangles ~80k triangles

Geometric Modeling. Mesh Decimation. Mesh Decimation. Applications. Copyright 2010 Gotsman, Pauly Page 1. Oversampled 3D scan data

Mesh and Mesh Simplification

Mesh Repairing and Simplification. Gianpaolo Palma

Surface Simplification Using Quadric Error Metrics

Mesh Simplification. Mesh Simplification. Mesh Simplification Goals. Mesh Simplification Motivation. Vertex Clustering. Mesh Simplification Overview

A Developer s Survey of Polygonal Simplification algorithms. CS 563 Advanced Topics in Computer Graphics Fan Wu Mar. 31, 2005

CGAL. Mesh Simplification. (Slides from Tom Funkhouser, Adam Finkelstein)

Overview. Efficient Simplification of Point-sampled Surfaces. Introduction. Introduction. Neighborhood. Local Surface Analysis

Mesh Decimation Using VTK

A Comparison of Mesh Simplification Algorithms

A Short Survey of Mesh Simplification Algorithms

Appearance Preservation

Geometry Processing & Geometric Queries. Computer Graphics CMU /15-662

Processing 3D Surface Data

Geometric Modeling. Bing-Yu Chen National Taiwan University The University of Tokyo

Isotopic Approximation within a Tolerance Volume

3-Dimensional Object Modeling with Mesh Simplification Based Resolution Adjustment

CSE 554 Lecture 6: Fairing and Simplification

Geometric Modeling and Processing

As a consequence of the operation, there are new incidences between edges and triangles that did not exist in K; see Figure II.9.

Fast Stellar Mesh Simplification

Multiresolution structures for interactive visualization of very large 3D datasets

Simplification. Stolen from various places

Adjacency Data Structures

Mesh Simplification Method Using Principal Curvatures and Directions

Processing 3D Surface Data

Digital Geometry Processing. Computer Graphics CMU /15-662

Point-based Simplification Algorithm

Tutorial 3 Comparing Biological Shapes Patrice Koehl and Joel Hass

Overview. Spectral Processing of Point- Sampled Geometry. Introduction. Introduction. Fourier Transform. Fourier Transform

Illumination and Geometry Techniques. Karljohan Lundin Palmerius

Processing 3D Surface Data

Out-of-Core Simplification with Guaranteed Error Tolerance

Deformation Sensitive Decimation

Progressive Mesh. Reddy Sambavaram Insomniac Games

Handles. The justification: For a 0 genus triangle mesh we can write the formula as follows:

Voronoi Diagram. Xiao-Ming Fu

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

and Recent Extensions Progressive Meshes Progressive Meshes Multiresolution Surface Modeling Multiresolution Surface Modeling Hugues Hoppe

Finding Shortest Path on Land Surface

Motivation. Freeform Shape Representations for Efficient Geometry Processing. Operations on Geometric Objects. Functional Representations

Simplification and Streaming of GIS Terrain for Web Client

Occluder Simplification using Planar Sections

All the Polygons You Can Eat. Doug Rogers Developer Relations

Simplification of Meshes into Curved PN Triangles

Curvature-Adaptive Remeshing with Feature Preservation of Manifold Triangle Meshes with Boundary

Simple Silhouettes for Complex Surfaces

Final Project, Digital Geometry Processing

Large Mesh Deformation Using the Volumetric Graph Laplacian

Level Set Extraction from Gridded 2D and 3D Data

Curves & Surfaces. Last Time? Progressive Meshes. Selective Refinement. Adjacency Data Structures. Mesh Simplification. Mesh Simplification

A General Framework for Mesh Decimation

Alex Li 11/20/2009. Chris Wojtan, Nils Thurey, Markus Gross, Greg Turk

Geometric Features for Non-photorealistiic Rendering

3/1/2010. Acceleration Techniques V1.2. Goals. Overview. Based on slides from Celine Loscos (v1.0)

Out of Core continuous LoD-Hierarchies for Large Triangle Meshes

Topological Data Analysis - I. Afra Zomorodian Department of Computer Science Dartmouth College

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

Interpolating and Approximating Implicit Surfaces from Polygon Soup

To Do. Resources. Algorithm Outline. Simplifications. Advanced Computer Graphics (Spring 2013) Surface Simplification: Goals (Garland)

A Study on View-Dependent Representation of 3-D Mesh Models Using Hierarchical Partitioning

Variational Shape Approximation

K-structure, Separating Chain, Gap Tree, and Layered DAG

Surface Simplification Using Quadric Error Metrics

coding of various parts showing different features, the possibility of rotation or of hiding covering parts of the object's surface to gain an insight

Anti-aliased and accelerated ray tracing. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Saab. Kyle McDonald. Polygon Meshes

Intersection Acceleration

Rafael Jose Falcon Lins. Submitted in partial fulfillment of the requirements for the degree of Master of Computer Science

CSC Computer Graphics

Iso-surface cell search. Iso-surface Cells. Efficient Searching. Efficient search methods. Efficient iso-surface cell search. Problem statement:

Cross-Parameterization and Compatible Remeshing of 3D Models

Scalar Algorithms: Contouring

Grafica 3D per i beni culturali: MeshLab features. Lezione 7: 22 Marzo 2013

EECS 487: Interactive Computer Graphics

Manipulating the Boundary Mesh

: Mesh Processing. Chapter 8

Fast marching methods

Parameterization with Manifolds

CS 283: Assignment 1 Geometric Modeling and Mesh Simplification

Shape Modeling and Geometry Processing

Semiautomatic Simplification

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Fast and accurate Hausdorff distance calculation between meshes

Meshes: Catmull-Clark Subdivision and Simplification

Tutorial 9 - Fast Marching Methods

Multiresolution model generation of. texture-geometry for the real-time rendering 1

Parallel Physically Based Path-tracing and Shading Part 3 of 2. CIS565 Fall 2012 University of Pennsylvania by Yining Karl Li

Multi-level Partition of Unity Implicits

Lecture notes: Object modeling

Multiresolution Meshes. COS 526 Tom Funkhouser, Fall 2016 Slides by Guskov, Praun, Sweldens, etc.

Moving Least Squares Multiresolution Surface Approximation

ITK Mesh Simplification using Error Quadrics and Directed Edges

Parallel Computation of Spherical Parameterizations for Mesh Analysis. Th. Athanasiadis and I. Fudos University of Ioannina, Greece

5.2 Surface Registration

A General Simplification Algorithm

improving raytracing speed

Convex Hulls (3D) O Rourke, Chapter 4

CS133 Computational Geometry

Transcription:

Mesh Decimation Mark Pauly

Applications Oversampled 3D scan data ~150k triangles ~80k triangles Mark Pauly - ETH Zurich 280

Applications Overtessellation: E.g. iso-surface extraction Mark Pauly - ETH Zurich 281

Applications Multi-resolution hierarchies for efficient geometry processing level-of-detail (LOD) rendering Mark Pauly - ETH Zurich 282

Applications Adaptation to hardware capabilities Mark Pauly - ETH Zurich 283

Size-Quality Tradeoff error size Mark Pauly - ETH Zurich 284

Outline Applications Problem Statement Mesh Decimation Methods Vertex Clustering Iterative Decimation Extensions Remeshing Variational Shape Approximation Mark Pauly - ETH Zurich 285

Problem Statement Given: M = (V, F) Find: M = (V, F ) such that 1. V = n < V and M M is minimal, or 2. M M < ɛ and V is minimal M M Mark Pauly - ETH Zurich 286

Problem Statement Given: M = (V, F) Find: M = (V, F ) such that 1. V = n < V and M M is minimal, or 2. M M < ɛ and V is minimal hard! look for sub-optimal solution Mark Pauly - ETH Zurich 287

Problem Statement Given: M = (V, F) Find: M = (V, F ) such that 1. V = n < V and M M is minimal, or 2. M M < ɛ and V is minimal Respect additional fairness criteria normal deviation, triangle shape, scalar attributes, etc. Mark Pauly - ETH Zurich 288

Outline Applications Problem Statement Mesh Decimation Methods Vertex Clustering Iterative Decimation Extensions Mark Pauly - ETH Zurich 289

Vertex Clustering Cluster Generation Computing a representative Mesh generation Topology changes Mark Pauly - ETH Zurich 290

Vertex Clustering Cluster Generation Uniform 3D grid Map vertices to cluster cells Computing a representative Mesh generation Topology changes Mark Pauly - ETH Zurich 291

Vertex Clustering Cluster Generation Hierarchical approach Top-down or bottom-up Computing a representative Mesh generation Topology changes Mark Pauly - ETH Zurich 292

Vertex Clustering Cluster Generation Computing a representative Average/median vertex position Error quadrics Mesh generation Topology changes Mark Pauly - ETH Zurich 293

Computing a Representative Average vertex position Low-pass filter Mark Pauly - ETH Zurich 294

Computing a Representative Median vertex position Sub-sampling Mark Pauly - ETH Zurich 295

Computing a Representative Error quadrics Mark Pauly - ETH Zurich 296

Error Quadrics Squared distance to plane p = (x, y, z, 1) T, q = (a, b, c, d) T dist(q, p) 2 = (q T p) 2 = p T (qq T )p =: p T Q q p Q q = a 2 ab ac ad ab b 2 bc bd ac bc b 2 cd ad bd cd d 2 Mark Pauly - ETH Zurich 297

Error Quadrics Sum distances to vertex planes dist(q i, p) 2 = i p T Q qi p = p T ( i Q qi ) p =: p T Q p p i Point that minimizes the error q 11 q 12 q 13 q 14 q 21 q 22 q 23 q 24 q 31 q 32 q 33 q 34 0 0 0 1 p = 0 0 0 1 Mark Pauly - ETH Zurich 298

Comparison average median error quadric Mark Pauly - ETH Zurich 299

Vertex Clustering Cluster Generation Computing a representative Mesh generation Clusters p {p 0,...,p n }, q {q 0,...,q m } Connect (p,q) if there was an edge (p i,q j ) Topology changes Mark Pauly - ETH Zurich 300

Vertex Clustering Cluster Generation Computing a representative Mesh generation Topology changes If different sheets pass through one cell Not manifold Mark Pauly - ETH Zurich 301

Outline Applications Problem Statement Mesh Decimation Methods Vertex Clustering Iterative Decimation Extensions Mark Pauly - ETH Zurich 302

Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes Mark Pauly - ETH Zurich 303

General Setup Repeat: pick mesh region apply decimation operator Until no further reduction possible Mark Pauly - ETH Zurich 304

Greedy Optimization For each region evaluate quality after decimation enqeue(quality, region) Repeat: pick best mesh region apply decimation operator update queue Until no further reduction possible Mark Pauly - ETH Zurich 305

Global Error Control For each region evaluate quality after decimation enqeue(quality, region) Repeat: pick best mesh region if error < ε apply decimation operator update queue Until no further reduction possible Mark Pauly - ETH Zurich 306

Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes Mark Pauly - ETH Zurich 307

Decimation Operators What is a "region"? What are the DOF for re-triangulation? Classification Topology-changing vs. topology-preserving Subsampling vs. filtering Inverse operation progressive meshes Mark Pauly - ETH Zurich 308

Vertex Removal Select a vertex to be eliminated Mark Pauly - ETH Zurich 309

Vertex Removal Select all triangles sharing this vertex Mark Pauly - ETH Zurich 310

Vertex Removal Remove the selected triangles, creating the hole Mark Pauly - ETH Zurich 311

Vertex Removal Fill the hole with triangles Mark Pauly - ETH Zurich 312

Decimation Operators Vertex Removal Vertex Insertion Remove vertex Re-triangulate hole Combinatorial DOFs Sub-sampling Mark Pauly - ETH Zurich 313

Decimation Operators Edge Collapse Vertex Split Merge two adjacent triangles Define new vertex position Continuous DOF Filtering Mark Pauly - ETH Zurich 314

Decimation Operators Half-Edge Collapse Restricted Vertex Split Collapse edge into one end point Special vertex removal Special edge collapse No DOFs One operator per half-edge Sub-sampling! Mark Pauly - ETH Zurich 315

Edge Collapse Mark Pauly - ETH Zurich 316

Edge Collapse Mark Pauly - ETH Zurich 317

Edge Collapse Mark Pauly - ETH Zurich 318

Edge Collapse Mark Pauly - ETH Zurich 319

Edge Collapse Mark Pauly - ETH Zurich 320

Edge Collapse Mark Pauly - ETH Zurich 321

Edge Collapse Mark Pauly - ETH Zurich 322

Edge Collapse Mark Pauly - ETH Zurich 323

Edge Collapse Mark Pauly - ETH Zurich 324

Edge Collapse Mark Pauly - ETH Zurich 325

Priority Queue Updating Mark Pauly - ETH Zurich 326

Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes Mark Pauly - ETH Zurich 327

Local Error Metrics Local distance to mesh [Schroeder et al. 92] Compute average plane No comparison to original geometry Mark Pauly - ETH Zurich 328

Global Error Metrics Simplification envelopes [Cohen et al. 96] Compute (non-intersecting) offset surfaces Simplification guarantees to stay within bounds Mark Pauly - ETH Zurich 329

Global Error Metrics (Two-sided) Hausdorff distance: Maximum distance between two shapes In general d(a,b) d(b,a) Computationally involved A d(a,b) B d(b,a) Mark Pauly - ETH Zurich 330

Global Error Metrics Scan data: One-sided Hausdorff distance sufficient From original vertices to current surface Mark Pauly - ETH Zurich 331

Global Error Metrics Error quadrics [Garland, Heckbert 97] Squared distance to planes at vertex No bound on true error Q 1 Q 2 Q 3 = Q 1 +Q 2 v 3 p 1 p 2 p i TQ i p i = 0, i={1,2} solve v 3 TQ 3 v 3 = min < ε? ok Mark Pauly - ETH Zurich 332

Complexity N = number of vertices Priority queue for half-edges 6 N * log ( 6 N ) Error control Local O(1) global O(N) Local O(N) global O(N 2 ) Mark Pauly - ETH Zurich 333

Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes Mark Pauly - ETH Zurich 334

Fairness Criteria Rate quality of decimation operation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 335

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences r 1 e 1 < r 2 e 2 r 1 e 1... e 2 r 2 Mark Pauly - ETH Zurich 336

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 337

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 338

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 339

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 340

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... Mark Pauly - ETH Zurich 341

Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valance balance Color differences... Mark Pauly - ETH Zurich 342

Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes Mark Pauly - ETH Zurich 343

Topology Changes? Merge vertices across non-edges Changes mesh topology Need spatial neighborhood information Generates non-manifold meshes Vertex Contraction Vertex Separation Mark Pauly - ETH Zurich 344

Topology Changes? Merge vertices across non-edges Changes mesh topology Need spatial neighborhood information Generates non-manifold meshes manifold non-manifold Mark Pauly - ETH Zurich 345

Comparison Vertex clustering fast, but difficult to control simplified mesh topology changes, non-manifold meshes global error bound, but often not close to optimum Iterative decimation with quadric error metrics good trade-off between mesh quality and speed explicit control over mesh topology restricting normal deviation improves mesh quality Mark Pauly - ETH Zurich 346

Outline Applications Problem Statement Mesh Decimation Methods Vertex Clustering Iterative Decimation Extensions Mark Pauly - ETH Zurich 347

Out-of-core Decimation Handle very large data sets that do not fit into main memory Key: Avoid random access to mesh data structure during simplification Examples Garland, Shaffer: A Multiphase Approach to Efficient Surface Simplification, IEEE Visualization 2002 Wu, Kobbelt: A Stream Algorithm for the Decimation of Massive Meshes, Graphics Interface 2003 Mark Pauly - ETH Zurich 348

Multiphase Simplification 1. Phase: Out-of-core clustering - compute accumulated error quadrics and vertex representative for each cell of uniform voxel grid 2. Phase: In-core iterative simplification - compute fundamental quadrics - iteratively contract edge of smallest cost Mark Pauly - ETH Zurich 349

Multiphase Simplification 1. Phase: Out-of-core clustering - compute accumulated error quadrics and vertex representative for each cell of uniform voxel grid 2. Phase: In-core iterative simplification - compute fundamental quadrics - use accumulated quadrics from clustering phase - iteratively contract edge of smallest cost achieves a coupling between the two phases Mark Pauly - ETH Zurich 350

Multiphase Simplification Original (8 million triangles) Uniform clustering (1157 triangles) Multiphase (1000 triangles) Garland, Shaffer: A Multiphase Approach to Efficient Surface Simplification, IEEE Visualization 2002 Mark Pauly - ETH Zurich 351

Multiphase Simplification Garland, Shaffer: A Multiphase Approach to Efficient Surface Simplification, IEEE Visualization 2002 Mark Pauly - ETH Zurich 352

Out-of-core Decimation Streaming approach based on edge collapse operations using QEM Pre-sorted input stream allows fixed-sized active working set independent of input and output model complexity Wu, Kobbelt: A Stream Algorithm for the Decimation of Massive Meshes, Graphics Interface 2003 Mark Pauly - ETH Zurich 353

Out-of-core Decimation Randomized multiple choice optimization avoids global heap data structure Special treatment for boundaries required Wu, Kobbelt: A Stream Algorithm for the Decimation of Massive Meshes, Graphics Interface 2003 Mark Pauly - ETH Zurich 354