9.2 Decimation Hao Li http://cs621.hao-li.com 1 Last Time - - PowerPoint PPT Presentation

9 2 decimation
SMART_READER_LITE
LIVE PREVIEW

9.2 Decimation Hao Li http://cs621.hao-li.com 1 Last Time - - PowerPoint PPT Presentation

Spring 2019 CSCI 621: Digital Geometry Processing 9.2 Decimation Hao Li http://cs621.hao-li.com 1 Last Time Parameterization 1 0 I ( u, v ) = isometric 0 1 1 0 conformal I ( u, v ) = s ( u, v ) 0 1 det( I


slide-1
SLIDE 1

CSCI 621: Digital Geometry Processing

Hao Li

http://cs621.hao-li.com

1

Spring 2019

9.2 Decimation

slide-2
SLIDE 2

Last Time

2

Parameterization

  • isometric
  • conformal
  • equiareal

I(u, v) =

  • 1

1 ⇥ I(u, v) = s(u, v) ·

  • 1

1 ⇥ det(I(u, v)) = 1

I = xT

u xu

xT

u xv

xT

u xv

xT

v xv

slide-3
SLIDE 3

Last Time

3

Harmonic Maps

  • minimize Dirichlet energy:
  • Euler-Lagrange PDE

Z

krxk2 = Z

kxuk2 + kxvk2 du dv

∆x(u, v) = 0

Discrete Harmonic Maps Convex Combination Maps

uniform weights

  • riginal

mesh cotan weights mean value

slide-4
SLIDE 4

Last Time

4

fixed vs. open boundaries texture atlases cutting the mesh → disk topology constrained parameterization

slide-5
SLIDE 5

Mesh Optimization

5

Smoothing

  • Low geometric noise

Fairing

  • Simplest shape

Decimation

  • Low complexity

Remeshing

  • Triangle Shape
slide-6
SLIDE 6

Mesh Decimation

6

Oversampled 3D scan data

~150k triangles ~80k triangles

slide-7
SLIDE 7

Mesh Decimation

7

Over tesselation: e.g., Iso-surface extraction

slide-8
SLIDE 8

Mesh Decimation

8

Multi-resolution hierarchies for

  • efficient geometry processing
  • level-of-detail (LOD) rendering
slide-9
SLIDE 9

Mesh Decimation

9

Adaptation to hardware capabilities

slide-10
SLIDE 10

Mesh Decimation

10

Adaptation to hardware capabilities

slide-11
SLIDE 11

Size-Quality Tradeoff

11

error size

slide-12
SLIDE 12

Problem Statement

12

Given , find such that

  • and is minimal, or
  • and is minimal

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

slide-13
SLIDE 13

Problem Statement

13

Given , find such that

  • and is minimal, or
  • and is minimal

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

NP hard

  • Look for sub-optimal solution

Respect additional fairness criteria

  • Normal deviation, triangle shape, colors,…
slide-14
SLIDE 14

Outline

14

  • Vertex Clustering
  • Iterative Decimation

Mesh Decimation methods

slide-15
SLIDE 15

Vertex Clustering

15

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

Vertex Clustering

16

  • Cluster Generation
  • Uniform 3D grid
  • Map vertices to cluster cells
  • Computing a representative
  • Mesh generation
  • Topology changes
slide-17
SLIDE 17

Vertex Clustering

17

  • Cluster Generation
  • Hierarchical approach
  • Top-down or bottom-up
  • Computing a representative
  • Mesh generation
  • Topology changes
slide-18
SLIDE 18

Vertex Clustering

18

  • Cluster Generation
  • Computing a representative
  • Average/median vertex position
  • Error quadrics
  • Mesh generation
  • Topology changes
slide-19
SLIDE 19

Computing a Representative

19

average vertex position → low pass filter

slide-20
SLIDE 20

Computing a Representative

20

median vertex position → sub-sampling

slide-21
SLIDE 21

Computing a Representative

21

error quadrics → feature preservation

slide-22
SLIDE 22

Error Quadrics

22

Squared distance to plane

p = (x, y, z, 1)T , q = (a, b, c, d)T dist(q, p)2 = (qT p)2 = pT qqT ⇥ p =: pT Qqp

slide-23
SLIDE 23

Error Quadrics

23

Squared distance to plane

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 c2 cd ad bd cd d2    

slide-24
SLIDE 24

Error Quadrics

24

Sum of distances to vertex planes

i

dist(qi, p)2 = ⇤

i

pT Qqip = pT ⇤

i

Qqi ⇥ p =: pT Qpp

slide-25
SLIDE 25

Error Quadrics

25

Sum of distances to vertex planes

i

dist(qi, p)2 = ⇤

i

pT Qqip = pT ⇤

i

Qqi ⇥ p =: pT Qpp

Point that minimizes the error

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

slide-26
SLIDE 26

Comparison

26

average median error quadric

slide-27
SLIDE 27

Vertex Clustering

27

  • Cluster Generation
  • Computing a representative
  • Mesh generation
  • Clusters
  • Connect if there was an edge
  • Topology changes

p ⇔ {p0, . . . , pn}, q ⇔ {q0, . . . , qn} (p, q) (pi, qj)

slide-28
SLIDE 28

Vertex Clustering

28

  • Cluster Generation
  • Computing a representative
  • Mesh generation
  • Topology changes
  • If different sheets pass through on cell
  • Can be non-manifold
slide-29
SLIDE 29

Vertex Clustering

29

  • Cluster Generation
  • Computing a representative
  • Mesh generation
  • Topology changes
  • If different sheets pass through on cell
  • Can be non-manifold
slide-30
SLIDE 30

Outline

30

  • Vertex Clustering
  • Iterative Decimation

Mesh Decimation methods

slide-31
SLIDE 31

Example

31

slide-32
SLIDE 32

Incremental Decimation

32

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes
slide-33
SLIDE 33

General Setup

33

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

slide-34
SLIDE 34

Greedy Optimization

34

For each region evaluate quality after decimation enqueue(quality, region) Repeat: pick best mesh region apply decimation operator update queue Until no further reduction possible

slide-35
SLIDE 35

Global Error Control

35

For each region evaluate quality after decimation enqueue(quality, region) Repeat: pick best mesh region if error < ε apply decimation operator update queue Until no further reduction possible

slide-36
SLIDE 36

Incremental Decimation

36

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes
slide-37
SLIDE 37

Decimation Operators

37

  • What is a “region”?
  • What are the DOFs for re-triangulation?
  • Classification
  • topology-changing vs. topology-preserving
  • subsampling vs. filtering
  • inverse operation → progressive meshes
slide-38
SLIDE 38

Vertex Removal

38

Select a vertex to be eliminated

slide-39
SLIDE 39

Vertex Removal

39

Select all triangles sharing this vertex

slide-40
SLIDE 40

Vertex Removal

40

Remove the selected triangles, creating a hole

slide-41
SLIDE 41

Vertex Removal

41

Fill the hole with triangles

slide-42
SLIDE 42

Decimation Operators

42

  • Remove vertex
  • Re-triangulate hole
  • Combinatorial DOFs
  • Sub-sampling

Vertex Removal Vertex Insertion

slide-43
SLIDE 43

Decimation Operators

43

  • Merge two adjacent triangles
  • Define new vertex position
  • Continuous DOF
  • Filtering

Vertex Split Edge Collapse

slide-44
SLIDE 44

Decimation Operators

44

  • Collapse edge into one end point
  • Special vertex removal
  • Special edge collapse
  • No DOFs
  • One operator per half-edge
  • Sub-sampling
  • H. Hoppe: Progressive Meshes

Restricted Vertex Split Halfedge Collapse

slide-45
SLIDE 45

Edge Collapse

45

slide-46
SLIDE 46

Edge Collapse

46

slide-47
SLIDE 47

Edge Collapse

47

slide-48
SLIDE 48

Edge Collapse

48

slide-49
SLIDE 49

Edge Collapse

49

slide-50
SLIDE 50

Edge Collapse

50

slide-51
SLIDE 51

Edge Collapse

51

slide-52
SLIDE 52

Edge Collapse

52

slide-53
SLIDE 53

Edge Collapse

53

slide-54
SLIDE 54

Edge Collapse (Flip!)

54

slide-55
SLIDE 55

Application: Progressive Meshes

55

slide-56
SLIDE 56

Priority Queue Updating

56

slide-57
SLIDE 57

Incremental Decimation

57

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes
slide-58
SLIDE 58

Local Error Metrics

58

Local distance to mesh [Schröder et al. ‘92]

  • Compute average plane
  • No comparison to original geometry
slide-59
SLIDE 59

Global Error Metrics

59

Simplification envelopes [Cohen al. ‘96]

  • Compute (non-intersecting) offset surfaces
  • Simplification guarantees to stay within bounds
slide-60
SLIDE 60

Global Error Metrics

60

(Two-sided) Hausdorff distance: Maximum distance between two shapes

  • In general
  • Computationally involved

d(A, B) := max

a∈A min b∈B ⇥a b⇥

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

d(A, B) 6= d(B, A)

slide-61
SLIDE 61

Global Error Metrics

61

Scan data: One-sided Hausdorff distance sufficient

  • From original vertices to current surface
slide-62
SLIDE 62

Global Error Metrics

62

Error quadrics [Garland, Heckbert 97]

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

p1 p2 solve p3T Q3p3 = min Q3 = Q1+Q2 Q2 Q1

piT Qi pi = 0, i={1,2}

< ε ? → ok p3

slide-63
SLIDE 63

Global Error Metrics

63

Initialization:

  • Assign each vertex the quadric built from all its incident

triangles’ planes

Decimation:

  • After collapsing edge , simply add the

corresponding quadrics:

Memory consumption

  • Quasi-global error metric with 10 floats per vertex

(p1, p2) → p3 Q3 = Q1 + Q2

slide-64
SLIDE 64

Complexity

64

  • number of vertices
  • Priority Queue for half edges
  • Error control
  • Local global
  • Local global

N = 6N log(6N) O(1) ⇒ O(N) ⇒ O(N) O(N 2)

slide-65
SLIDE 65

Incremental Decimation

65

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes
slide-66
SLIDE 66

Fairness Criteria

66

  • Rate quality after decimation
  • Approximation error
slide-67
SLIDE 67

Fairness Criteria

67

  • Rate quality after decimation
  • Approximation error
  • Triangle shape

r1 e1 < r2 e2 r1 r2 e2 e1

slide-68
SLIDE 68

Fairness Criteria

68

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
slide-69
SLIDE 69

Fairness Criteria

69

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
slide-70
SLIDE 70

Fairness Criteria

70

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
  • Dihedral angles
slide-71
SLIDE 71

Fairness Criteria

71

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
  • Dihedral angles
slide-72
SLIDE 72

Fairness Criteria

72

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
  • Dihedral angles
  • Valence balance
slide-73
SLIDE 73

Fairness Criteria

73

  • Rate quality after decimation
  • Approximation error
  • Triangle shape
  • Dihedral angles
  • Valence balance
  • Color differences
slide-74
SLIDE 74

Incremental Decimation

74

  • General Setup
  • Decimation operators
  • Error metrics
  • Fairness criteria
  • Topology changes
slide-75
SLIDE 75

Fairness Criteria

75

  • Merge vertices across non-edges
  • Changes mesh topology
  • Need spatial neighborhood information
  • Generates non-manifold meshes

Vertex Contraction Vertex Separation

slide-76
SLIDE 76

Comparison

76

  • 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
slide-77
SLIDE 77

Literature

77

  • Quadric-based simplification
  • http://graphics.cs.uiuc.edu/~garland/software/qslim.html
  • http://www.openmesh.org
  • Garland, Heckbert: Surface simplification using quadric error

metrics, SIGGRAPH 1997.

  • Kobbelt et al., A general framework for mesh decimation, Graphics

Interface 1998.

slide-78
SLIDE 78

Next Time

78

Remeshing

slide-79
SLIDE 79

http://cs621.hao-li.com

Thanks!

79