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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend