8.1 Decimation Hao Li http://cs599.hao-li.com 1 Administrative - - PowerPoint PPT Presentation

8 1 decimation
SMART_READER_LITE
LIVE PREVIEW

8.1 Decimation Hao Li http://cs599.hao-li.com 1 Administrative - - PowerPoint PPT Presentation

Spring 2014 CSCI 599: Digital Geometry Processing 8.1 Decimation Hao Li http://cs599.hao-li.com 1 Administrative Todays Office Hour from 2:00 to 3:00. Exercise 4 this Thursday Dr. Chongyang Ma will do next lecture 2 Last


slide-1
SLIDE 1

CSCI 599: Digital Geometry Processing

Hao Li

http://cs599.hao-li.com

1

Spring 2014

8.1 Decimation

slide-2
SLIDE 2

Administrative

2

  • Today’s Office Hour from 2:00 to 3:00.
  • Exercise 4 this Thursday
  • Dr. Chongyang Ma will do

next lecture

slide-3
SLIDE 3

Last Time

3

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-4
SLIDE 4

Last Time

4

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-5
SLIDE 5

Last Time

5

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

slide-6
SLIDE 6

Mesh Optimization

6

Smoothing

  • Low geometric noise

Fairing

  • Simplest shape

Decimation

  • Low complexity

Remeshing

  • Triangle Shape
slide-7
SLIDE 7

Mesh Decimation

7

Oversampled 3D scan data

~150k triangles ~80k triangles

slide-8
SLIDE 8

Mesh Decimation

8

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

slide-9
SLIDE 9

Mesh Decimation

9

Multi-resolution hierarchies for

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

Mesh Decimation

10

Adaptation to hardware capabilities

slide-11
SLIDE 11

Mesh Decimation

11

Adaptation to hardware capabilities

slide-12
SLIDE 12

Size-Quality Tradeoff

12

error size

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| M M

slide-14
SLIDE 14

Problem Statement

14

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-15
SLIDE 15

Outline

15

  • Vertex Clustering
  • Iterative Decimation

Mesh Decimation methods

slide-16
SLIDE 16

Vertex Clustering

16

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

Vertex Clustering

17

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

Vertex Clustering

18

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

Vertex Clustering

19

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

Computing a Representative

20

average vertex position → low pass filter

slide-21
SLIDE 21

Computing a Representative

21

median vertex position → sub-sampling

slide-22
SLIDE 22

Computing a Representative

22

error quadrics → feature preservation

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

slide-24
SLIDE 24

Error Quadrics

24

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

slide-26
SLIDE 26

Error Quadrics

26

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-27
SLIDE 27

Comparison

27

average median error quadric

slide-28
SLIDE 28

Vertex Clustering

28

  • 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-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

Vertex Clustering

30

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

Outline

31

  • Vertex Clustering
  • Iterative Decimation

Mesh Decimation methods

slide-32
SLIDE 32

Example

32

slide-33
SLIDE 33

Incremental Decimation

33

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

General Setup

34

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

slide-35
SLIDE 35

Greedy Optimization

35

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-36
SLIDE 36

Global Error Control

36

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-37
SLIDE 37

Incremental Decimation

37

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

Decimation Operators

38

  • 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-39
SLIDE 39

Vertex Removal

39

Select a vertex to be eliminated

slide-40
SLIDE 40

Vertex Removal

40

Select all triangles sharing this vertex

slide-41
SLIDE 41

Vertex Removal

41

Remove the selected triangles, creating a hole

slide-42
SLIDE 42

Vertex Removal

42

Fill the hole with triangles

slide-43
SLIDE 43

Decimation Operators

43

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

Vertex Removal Vertex Insertion

slide-44
SLIDE 44

Decimation Operators

44

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

Vertex Split Edge Collapse

slide-45
SLIDE 45

Decimation Operators

45

  • 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-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

54

slide-55
SLIDE 55

Edge Collapse (Flip!)

55

slide-56
SLIDE 56

Application: Progressive Meshes

56

slide-57
SLIDE 57

Priority Queue Updating

57

slide-58
SLIDE 58

Incremental Decimation

58

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

Local Error Metrics

59

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

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

Global Error Metrics

60

Simplification envelopes [Cohen al. ‘96]

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

Global Error Metrics

61

(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-62
SLIDE 62

Global Error Metrics

62

Scan data: One-sided Hausdorff distance sufficient

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

Global Error Metrics

63

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-64
SLIDE 64

Global Error Metrics

64

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-65
SLIDE 65

Complexity

65

  • 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-66
SLIDE 66

Incremental Decimation

66

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

Fairness Criteria

67

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

Fairness Criteria

68

  • Rate quality after decimation
  • Approximation error
  • Triangle shape

r1 e1 < r2 e2 r1 r2 e2 e1

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
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
slide-73
SLIDE 73

Fairness Criteria

73

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

Fairness Criteria

74

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

Incremental Decimation

75

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

Fairness Criteria

76

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

Vertex Contraction Vertex Separation

slide-77
SLIDE 77

Comparison

77

  • 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-78
SLIDE 78

Literature

78

  • 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-79
SLIDE 79

Next Time

79

Remeshing by Dr. Chongyang Ma

slide-80
SLIDE 80

http://cs599.hao-li.com

Thanks!

80