8 1 decimation
play

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


  1. Spring 2014 CSCI 599: Digital Geometry Processing 8.1 Decimation Hao Li http://cs599.hao-li.com � 1

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

  3. Last Time Parameterization � � ⇥ 1 0 I ( u, v ) = • isometric 0 1 � ⇥ 1 0 • conformal I ( u, v ) = s ( u, v ) · 0 1 det( I ( u, v )) = 1 • equiareal � x T x T ⇥ u x u u x v I = x T x T u x v v x v � 3

  4. Last Time Harmonic Maps � Z Z kr x k 2 = k x u k 2 + k x v k 2 d u d v • minimize Dirichlet energy: Ω Ω • Euler-Lagrange PDE ∆ x ( u, v ) = 0 Discrete Harmonic Maps Convex Combination Maps original � uniform � cotan � mean � mesh weights weights value � 4

  5. Last Time fixed vs. open boundaries texture atlases cutting the mesh → disk topology constrained parameterization � 5

  6. Mesh Optimization Smoothing � • Low geometric noise Fairing � • Simplest shape Decimation � • Low complexity Remeshing � • Triangle Shape � 6

  7. Mesh Decimation Oversampled 3D scan data ~150k triangles ~80k triangles � 7

  8. Mesh Decimation Over tesselation: e.g., Iso-surface extraction � 8

  9. Mesh Decimation Multi-resolution hierarchies for � • efficient geometry processing • level-of-detail (LOD) rendering � 9

  10. Mesh Decimation Adaptation to hardware capabilities � 10

  11. Mesh Decimation Adaptation to hardware capabilities � 11

  12. Size-Quality Tradeoff error size � 12

  13. Problem Statement M � = ( V � , F � ) M = ( V , F ) Given , find such that � |V � | = n < |V| ⇤ M � M � ⇤ • and is minimal, or |V � | ⇤ M � M � ⇤ < � • and is minimal M � M � 13

  14. Problem Statement M � = ( V � , F � ) M = ( V , F ) Given , find such that � |V � | = n < |V| ⇤ M � M � ⇤ • and is minimal, or |V � | ⇤ M � M � ⇤ < � • and is minimal NP hard � • Look for sub-optimal solution Respect additional fairness criteria � • Normal deviation, triangle shape, colors,… � 14

  15. Outline Mesh Decimation methods • Vertex Clustering � • Iterative Decimation � 15

  16. Vertex Clustering • Cluster Generation • Computing a representative • Mesh generation • Topology changes � 16

  17. Vertex Clustering • Cluster Generation � • Uniform 3D grid • Map vertices to cluster cells � • Computing a representative • Mesh generation • Topology changes � 17

  18. Vertex Clustering • Cluster Generation � • Hierarchical approach • Top-down or bottom-up � • Computing a representative • Mesh generation • Topology changes � 18

  19. Vertex Clustering • Cluster Generation • Computing a representative � • Average/median vertex position • Error quadrics � • Mesh generation • Topology changes � 19

  20. Computing a Representative average vertex position → low pass filter � 20

  21. Computing a Representative median vertex position → sub-sampling � 21

  22. Computing a Representative error quadrics → feature preservation � 22

  23. 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 � p =: p T Q q p qq T ⇥ � 23

  24. 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 � p =: p T Q q p qq T ⇥  a 2  ab ac ad b 2 ab bc bd   Q q =   c 2 ac bc cd   d 2 ad bd cd � 24

  25. Error Quadrics Sum of distances to vertex planes �⇤ ⇥ dist( q i , p ) 2 = p T Q q i p = p T p =: p T Q p p ⇤ ⇤ Q q i i i i � 25

  26. Error Quadrics Sum of distances to vertex planes �⇤ ⇥ dist( q i , p ) 2 = p T Q q i p = p T p =: p T Q p p ⇤ ⇤ Q q i i i i Point that minimizes the error     0 q 11 q 12 q 13 q 14 0  p ∗ = q 21 q 22 q 23 q 24         0 q 31 q 32 q 33 q 34    0 0 0 1 1 � 26

  27. Comparison average error quadric median � 27

  28. Vertex Clustering • Cluster Generation • Computing a representative � • Mesh generation � • Clusters p ⇔ { p 0 , . . . , p n } , q ⇔ { q 0 , . . . , q n } • Connect if there was an edge � ( p i , q j ) ( p , q ) • Topology changes � 28

  29. Vertex Clustering • Cluster Generation • Computing a representative � • Mesh generation � • Topology changes � • If different sheets pass through on cell • Can be non-manifold � 29

  30. Vertex Clustering • Cluster Generation • Computing a representative � • Mesh generation � • Topology changes � • If different sheets pass through on cell • Can be non-manifold � 30

  31. Outline Mesh Decimation methods • Vertex Clustering • Iterative Decimation � 31

  32. Example � 32

  33. Incremental Decimation • General Setup � • Decimation operators � • Error metrics � • Fairness criteria • Topology changes � 33

  34. General Setup Repeat: pick mesh region apply decimation operator Until no further reduction possible � 34

  35. Greedy Optimization 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 � 35

  36. Global Error Control 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 � 36

  37. Incremental Decimation • General Setup • Decimation operators � • Error metrics � • Fairness criteria • Topology changes � 37

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

  39. Vertex Removal Select a vertex to be eliminated � 39

  40. Vertex Removal Select all triangles sharing this vertex � 40

  41. Vertex Removal Remove the selected triangles, creating a hole � 41

  42. Vertex Removal Fill the hole with triangles � 42

  43. Decimation Operators • Remove vertex • Re-triangulate hole • Combinatorial DOFs • Sub-sampling Vertex Removal Vertex Insertion � 43

  44. Decimation Operators • Merge two adjacent triangles • Define new vertex position • Continuous DOF • Filtering Edge Collapse Vertex Split � 44

  45. Decimation Operators • 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 Halfedge Collapse Restricted Vertex Split � 45

  46. Edge Collapse � 46

  47. Edge Collapse � 47

  48. Edge Collapse � 48

  49. Edge Collapse � 49

  50. Edge Collapse � 50

  51. Edge Collapse � 51

  52. Edge Collapse � 52

  53. Edge Collapse � 53

  54. Edge Collapse � 54

  55. Edge Collapse (Flip!) � 55

  56. Application: Progressive Meshes � 56

  57. Priority Queue Updating � 57

  58. Incremental Decimation • General Setup • Decimation operators • Error metrics � • Fairness criteria • Topology changes � 58

  59. Local Error Metrics Local distance to mesh [Schröder et al. ‘92] � • Compute average plane • No comparison to original geometry � 59

  60. Global Error Metrics Simplification envelopes [Cohen al. ‘96] � • Compute (non-intersecting) offset surfaces • Simplification guarantees to stay within bounds � 60

  61. Global Error Metrics (Two-sided) Hausdorff distance: Maximum distance between two shapes � � d ( A, B ) := max a ∈ A min b ∈ B ⇥ a � b ⇥ � d ( A, B ) 6 = d ( B, A ) • In general • Computationally involved A d(A,B) B d(B,A) � 61

  62. Global Error Metrics Scan data: One-sided Hausdorff distance sufficient � • From original vertices to current surface � 62

  63. Global Error Metrics Error quadrics [Garland, Heckbert 97] � • Squared distance to planes at vertex • No bound on true error Q 3 = Q 1 + Q 2 Q 1 Q 2 p 3 p 1 p 2 solve p 3T Q 3 p 3 = min p i T Q i p i = 0 , < ε ? → ok i ={1,2} � 63

  64. Global Error Metrics Initialization: � • Assign each vertex the quadric built from all its incident triangles’ planes Decimation: � ( p 1 , p 2 ) → p 3 • After collapsing edge , simply add the Q 3 = Q 1 + Q 2 corresponding quadrics: Memory consumption � • Quasi-global error metric with 10 floats per vertex � 64

  65. Complexity • number of vertices N = • Priority Queue for half edges 6 N log(6 N ) • • Error control • Local global O (1) ⇒ O ( N ) O ( N 2 ) • Local global O ( N ) ⇒ � 65

  66. Incremental Decimation • General Setup • Decimation operators • Error metrics • Fairness criteria � • Topology changes � 66

Recommend


More recommend