Mesh Decimation Mark Pauly Applications Oversampled 3D scan data - - PowerPoint PPT Presentation

mesh decimation
SMART_READER_LITE
LIVE PREVIEW

Mesh Decimation Mark Pauly Applications Oversampled 3D scan data - - PowerPoint PPT Presentation


slide-1
SLIDE 1

฀฀฀฀ ฀฀฀ ฀฀฀฀ ฀฀฀ ฀฀฀ ฀฀฀฀฀ ฀

  • Mesh Decimation

Mark Pauly

slide-2
SLIDE 2

Mark Pauly - ETH Zurich

Applications

  • Oversampled 3D scan data

280

~150k triangles ~80k triangles

slide-3
SLIDE 3

Mark Pauly - ETH Zurich

Applications

  • Overtessellation: E.g. iso-surface extraction

281

slide-4
SLIDE 4

Mark Pauly - ETH Zurich

Applications

  • Multi-resolution hierarchies for

– efficient geometry processing – level-of-detail (LOD) rendering

282

slide-5
SLIDE 5

Mark Pauly - ETH Zurich 283

Applications

  • Adaptation to hardware capabilities
slide-6
SLIDE 6

Mark Pauly - ETH Zurich

Size-Quality Tradeoff

284

error size

slide-7
SLIDE 7

Mark Pauly - ETH Zurich

Outline

  • Applications
  • Problem Statement
  • Mesh Decimation Methods

– Vertex Clustering – Iterative Decimation – Extensions – Remeshing – Variational Shape Approximation

285

slide-8
SLIDE 8

Mark Pauly - ETH Zurich 286

Problem Statement

  • Given:
  • Find: such that
  • 1. and is minimal, or
  • 2. and is minimal

M = (V, F) M = (V, F) |V| = n < |V| |V| M − M M − M < M M

slide-9
SLIDE 9

Mark Pauly - ETH Zurich 287

Problem Statement

  • Given:
  • Find: such that
  • 1. and is minimal, or
  • 2. and is minimal

M = (V, F) M = (V, F) |V| = n < |V| |V| M − M M − M <

hard! → look for sub-optimal solution

slide-10
SLIDE 10

Mark Pauly - ETH Zurich 288

Problem Statement

  • Given:
  • Find: such that
  • 1. and is minimal, or
  • 2. and is minimal
  • Respect additional fairness criteria

– normal deviation, triangle shape, scalar attributes, etc. M = (V, F) M = (V, F) |V| = n < |V| |V| M − M M − M <

slide-11
SLIDE 11

Mark Pauly - ETH Zurich

Outline

  • Applications
  • Problem Statement
  • Mesh Decimation Methods

– Vertex Clustering – Iterative Decimation – Extensions

289

slide-12
SLIDE 12

Mark Pauly - ETH Zurich 290

Vertex Clustering

  • Cluster Generation
  • Computing a representative
  • Mesh generation
  • Topology changes
slide-13
SLIDE 13

Mark Pauly - ETH Zurich 291

Vertex Clustering

  • Cluster Generation

– Uniform 3D grid – Map vertices to cluster cells

  • Computing a representative
  • Mesh generation
  • Topology changes
slide-14
SLIDE 14

Mark Pauly - ETH Zurich 292

Vertex Clustering

  • Cluster Generation

– Hierarchical approach – Top-down or bottom-up

  • Computing a representative
  • Mesh generation
  • Topology changes
slide-15
SLIDE 15

Mark Pauly - ETH Zurich 293

Vertex Clustering

  • Cluster Generation
  • Computing a representative

– Average/median vertex position – Error quadrics

  • Mesh generation
  • Topology changes
slide-16
SLIDE 16

Mark Pauly - ETH Zurich 294

Computing a Representative

Average vertex position → Low-pass filter

slide-17
SLIDE 17

Mark Pauly - ETH Zurich 295

Computing a Representative

Median vertex position → Sub-sampling

slide-18
SLIDE 18

Mark Pauly - ETH Zurich 296

Computing a Representative

Error quadrics

slide-19
SLIDE 19

Mark Pauly - ETH Zurich

Error Quadrics

  • Squared distance to plane

297

p = (x, y, z, 1)T , q = (a, b, c, d)T dist(q, p)2 = (qT p)2 = pT (qqT )p =: pT Qqp Qq =     a2 ab ac ad ab b2 bc bd ac bc b2 cd ad bd cd d2    

slide-20
SLIDE 20

Mark Pauly - ETH Zurich

  • Sum distances to vertex’ planes
  • Point that minimizes the error

Error Quadrics

298

  • i

dist(qi, p)2 =

  • i

pT Qqip = pT

  • i

Qqi

  • p =: pT Qpp

    q11 q12 q13 q14 q21 q22 q23 q24 q31 q32 q33 q34 1     p∗ =     1    

slide-21
SLIDE 21

Mark Pauly - ETH Zurich

error quadric average median

Comparison

299

slide-22
SLIDE 22

Mark Pauly - ETH Zurich 300

Vertex Clustering

  • Cluster Generation
  • Computing a representative
  • Mesh generation

– Clusters p⇔{p0,...,pn}, q⇔{q0,...,qm} – Connect (p,q) if there was an edge (pi,qj)

  • Topology changes
slide-23
SLIDE 23

Mark Pauly - ETH Zurich 301

Vertex Clustering

  • Cluster Generation
  • Computing a representative
  • Mesh generation
  • Topology changes

– If different sheets pass through one cell – Not manifold

slide-24
SLIDE 24

Mark Pauly - ETH Zurich

Outline

  • Applications
  • Problem Statement
  • Mesh Decimation Methods

– Vertex Clustering – Iterative Decimation – Extensions

302

slide-25
SLIDE 25

Mark Pauly - ETH Zurich

Incremental Decimation

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes

303

slide-26
SLIDE 26

Mark Pauly - ETH Zurich 304

General Setup

Repeat: pick mesh region apply decimation operator Until no further reduction possible

slide-27
SLIDE 27

Mark Pauly - ETH Zurich 305

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

slide-28
SLIDE 28

Mark Pauly - ETH Zurich 306

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

slide-29
SLIDE 29

Mark Pauly - ETH Zurich

Incremental Decimation

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes

307

slide-30
SLIDE 30

Mark Pauly - ETH Zurich 308

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

slide-31
SLIDE 31

Mark Pauly - ETH Zurich 309

Vertex Removal

Select a vertex to be eliminated

slide-32
SLIDE 32

Mark Pauly - ETH Zurich 310

Vertex Removal

Select all triangles sharing this vertex

slide-33
SLIDE 33

Mark Pauly - ETH Zurich 311

Vertex Removal

Remove the selected triangles, creating the hole

slide-34
SLIDE 34

Mark Pauly - ETH Zurich 312

Vertex Removal

Fill the hole with triangles

slide-35
SLIDE 35

Mark Pauly - ETH Zurich 313

Decimation Operators

  • Remove vertex
  • Re-triangulate hole

– Combinatorial DOFs – Sub-sampling

Vertex Removal Vertex Insertion

slide-36
SLIDE 36

Mark Pauly - ETH Zurich 314

Decimation Operators

  • Merge two adjacent triangles
  • Define new vertex position

– Continuous DOF – Filtering

Vertex Split Edge Collapse

slide-37
SLIDE 37

Mark Pauly - ETH Zurich 315

Decimation Operators

  • Collapse edge into one end point

– Special vertex removal – Special edge collapse

  • No DOFs

– One operator per half-edge – Sub-sampling!

Restricted Vertex Split Half-Edge Collapse

slide-38
SLIDE 38

Mark Pauly - ETH Zurich 316

Edge Collapse

slide-39
SLIDE 39

Mark Pauly - ETH Zurich 317

Edge Collapse

slide-40
SLIDE 40

Mark Pauly - ETH Zurich 318

Edge Collapse

slide-41
SLIDE 41

Mark Pauly - ETH Zurich 319

Edge Collapse

slide-42
SLIDE 42

Mark Pauly - ETH Zurich 320

Edge Collapse

slide-43
SLIDE 43

Mark Pauly - ETH Zurich 321

Edge Collapse

slide-44
SLIDE 44

Mark Pauly - ETH Zurich 322

Edge Collapse

slide-45
SLIDE 45

Mark Pauly - ETH Zurich 323

Edge Collapse

slide-46
SLIDE 46

Mark Pauly - ETH Zurich 324

Edge Collapse

slide-47
SLIDE 47

Mark Pauly - ETH Zurich 325

Edge Collapse

slide-48
SLIDE 48

Mark Pauly - ETH Zurich

Priority Queue Updating

326

slide-49
SLIDE 49

Mark Pauly - ETH Zurich

Incremental Decimation

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes

327

slide-50
SLIDE 50

Mark Pauly - ETH Zurich

  • Local distance to mesh [Schroeder et al. 92]

– Compute average plane – No comparison to original geometry

328

Local Error Metrics

slide-51
SLIDE 51

Mark Pauly - ETH Zurich

  • Simplification envelopes [Cohen et al. 96]

– Compute (non-intersecting) offset surfaces – Simplification guarantees to stay within bounds

329

Global Error Metrics

slide-52
SLIDE 52

Mark Pauly - ETH Zurich

  • (Two-sided) Hausdorff distance: Maximum

distance between two shapes

– In general d(A,B) ≠ d(B,A) – Computationally involved

330

Global Error Metrics

A B d(A,B) d(B,A)

slide-53
SLIDE 53

Mark Pauly - ETH Zurich 331

Global Error Metrics

  • Scan data: One-sided Hausdorff distance

sufficient

– From original vertices to current surface

slide-54
SLIDE 54

Mark Pauly - ETH Zurich 332

Global Error Metrics

  • Error quadrics [Garland, Heckbert 97]

– Squared distance to planes at vertex – No bound on true error

p1 p2 solve v3TQ3v3 = min Q3 = Q1+Q2 Q2 Q1

piTQipi = 0, i={1,2}

< ε ? → ok v3

slide-55
SLIDE 55

Mark Pauly - ETH Zurich 333

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(N2)

slide-56
SLIDE 56

Mark Pauly - ETH Zurich

Incremental Decimation

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes

334

slide-57
SLIDE 57

Mark Pauly - ETH Zurich

  • Rate quality of decimation operation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

335

Fairness Criteria

slide-58
SLIDE 58

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

336

Fairness Criteria

r1 e1 r2

r1 e1 < r2 e2

e2

slide-59
SLIDE 59

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

337

Fairness Criteria

slide-60
SLIDE 60

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

338

Fairness Criteria

slide-61
SLIDE 61

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

339

Fairness Criteria

slide-62
SLIDE 62

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

340

Fairness Criteria

slide-63
SLIDE 63

Mark Pauly - ETH Zurich

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valence balance – Color differences – ...

341

Fairness Criteria

slide-64
SLIDE 64

Mark Pauly - ETH Zurich 342

Fairness Criteria

  • Rate quality after decimation

– Approximation error – Triangle shape – Dihedral angles – Valance balance – Color differences – ...

slide-65
SLIDE 65

Mark Pauly - ETH Zurich

Incremental Decimation

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes

343

slide-66
SLIDE 66

Mark Pauly - ETH Zurich

  • Merge vertices across non-edges

– Changes mesh topology – Need spatial neighborhood information – Generates non-manifold meshes

344

Topology Changes ?

Vertex Contraction Vertex Separation

slide-67
SLIDE 67

Mark Pauly - ETH Zurich

  • Merge vertices across non-edges

– Changes mesh topology – Need spatial neighborhood information – Generates non-manifold meshes

345

Topology Changes ?

manifold non-manifold

slide-68
SLIDE 68

Mark Pauly - ETH Zurich

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

346

slide-69
SLIDE 69

Mark Pauly - ETH Zurich

Outline

  • Applications
  • Problem Statement
  • Mesh Decimation Methods

– Vertex Clustering – Iterative Decimation – Extensions

347

slide-70
SLIDE 70

Mark Pauly - ETH Zurich

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

  • f Massive Meshes, Graphics Interface 2003

348

slide-71
SLIDE 71

Mark Pauly - ETH Zurich

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

349

slide-72
SLIDE 72

Mark Pauly - ETH Zurich

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

350

→ achieves a coupling between the two phases

slide-73
SLIDE 73

Mark Pauly - ETH Zurich

Multiphase Simplification

351

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

slide-74
SLIDE 74

Mark Pauly - ETH Zurich

Multiphase Simplification

352

Garland, Shaffer: A Multiphase Approach to Efficient Surface Simplification, IEEE Visualization 2002

slide-75
SLIDE 75

Mark Pauly - ETH Zurich

Out-of-core Decimation

  • Streaming approach based on edge collapse
  • perations using QEM
  • Pre-sorted input stream allows fixed-sized active

working set independent of input and output model complexity

353

Wu, Kobbelt: A Stream Algorithm for the Decimation of Massive Meshes, Graphics Interface 2003

slide-76
SLIDE 76

Mark Pauly - ETH Zurich

Out-of-core Decimation

  • Randomized multiple choice optimization avoids

global heap data structure

  • Special treatment for boundaries required

354

Wu, Kobbelt: A Stream Algorithm for the Decimation of Massive Meshes, Graphics Interface 2003