mesh decimation
play

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


  1. ���������฀���฀���������฀����฀������� ��������������฀���฀����������฀��������� �������฀���������฀���฀�����฀������� ��������฀��฀�������฀������� ��������฀���฀���������������฀�������� �������฀��฀�����������฀���฀�����������฀������ �����฀���� ��� ���������� ���������� ���������������� Mesh Decimation Mark Pauly

  2. Applications • Oversampled 3D scan data ~150k triangles ~80k triangles Mark Pauly - ETH Zurich 280

  3. Applications • Overtessellation: E.g. iso-surface extraction Mark Pauly - ETH Zurich 281

  4. Applications • Multi-resolution hierarchies for – efficient geometry processing – level-of-detail (LOD) rendering Mark Pauly - ETH Zurich 282

  5. Applications • Adaptation to hardware capabilities Mark Pauly - ETH Zurich 283

  6. Size-Quality Tradeoff error size Mark Pauly - ETH Zurich 284

  7. Outline • Applications • Problem Statement • Mesh Decimation Methods – Vertex Clustering – Iterative Decimation – Extensions – Remeshing – Variational Shape Approximation Mark Pauly - ETH Zurich 285

  8. Problem Statement • Given: M = ( V , F ) M � = ( V � , F � ) • Find: such that |V � | = n < |V| �M − M � � 1. and is minimal, or |V � | �M − M � � < � 2. and is minimal M � M Mark Pauly - ETH Zurich 286

  9. Problem Statement • Given: M = ( V , F ) M � = ( V � , F � ) • Find: such that |V � | = n < |V| �M − M � � 1. and is minimal, or |V � | �M − M � � < � 2. and is minimal hard! → look for sub-optimal solution Mark Pauly - ETH Zurich 287

  10. Problem Statement • Given: M = ( V , F ) M � = ( V � , F � ) • Find: such that |V � | = n < |V| �M − M � � 1. and is minimal, or |V � | �M − M � � < � 2. and is minimal • Respect additional fairness criteria – normal deviation, triangle shape, scalar attributes, etc. Mark Pauly - ETH Zurich 288

  11. Outline • Applications • Problem Statement • Mesh Decimation Methods – Vertex Clustering – Iterative Decimation – Extensions Mark Pauly - ETH Zurich 289

  12. Vertex Clustering • Cluster Generation • Computing a representative • Mesh generation • Topology changes Mark Pauly - ETH Zurich 290

  13. Vertex Clustering • Cluster Generation – Uniform 3D grid – Map vertices to cluster cells • Computing a representative • Mesh generation • Topology changes Mark Pauly - ETH Zurich 291

  14. Vertex Clustering • Cluster Generation – Hierarchical approach – Top-down or bottom-up • Computing a representative • Mesh generation • Topology changes Mark Pauly - ETH Zurich 292

  15. Vertex Clustering • Cluster Generation • Computing a representative – Average/median vertex position – Error quadrics • Mesh generation • Topology changes Mark Pauly - ETH Zurich 293

  16. Computing a Representative Average vertex position → Low-pass filter Mark Pauly - ETH Zurich 294

  17. Computing a Representative Median vertex position → Sub-sampling Mark Pauly - ETH Zurich 295

  18. Computing a Representative Error quadrics Mark Pauly - ETH Zurich 296

  19. 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 ( qq T ) p =: p T Q q p  a 2  ab ac ad b 2 ab bc bd   Q q =   b 2 ac bc cd   d 2 ad bd cd Mark Pauly - ETH Zurich 297

  20. Error Quadrics • Sum 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 Mark Pauly - ETH Zurich 298

  21. Comparison average median error quadric Mark Pauly - ETH Zurich 299

  22. Vertex Clustering • Cluster Generation • Computing a representative • Mesh generation – Clusters p ⇔ {p 0 ,...,p n }, q ⇔ {q 0 ,...,q m } – Connect (p,q) if there was an edge (p i ,q j ) • Topology changes Mark Pauly - ETH Zurich 300

  23. Vertex Clustering • Cluster Generation • Computing a representative • Mesh generation • Topology changes – If different sheets pass through one cell – Not manifold Mark Pauly - ETH Zurich 301

  24. Outline • Applications • Problem Statement • Mesh Decimation Methods – Vertex Clustering – Iterative Decimation – Extensions Mark Pauly - ETH Zurich 302

  25. Incremental Decimation • General Setup • Decimation operators • Error metrics • Fairness criteria • Topology changes Mark Pauly - ETH Zurich 303

  26. General Setup Repeat: pick mesh region apply decimation operator Until no further reduction possible Mark Pauly - ETH Zurich 304

  27. 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 Mark Pauly - ETH Zurich 305

  28. 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 Mark Pauly - ETH Zurich 306

  29. Incremental Decimation • General Setup • Decimation operators • Error metrics • Fairness criteria • Topology changes Mark Pauly - ETH Zurich 307

  30. 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 Mark Pauly - ETH Zurich 308

  31. Vertex Removal Select a vertex to be eliminated Mark Pauly - ETH Zurich 309

  32. Vertex Removal Select all triangles sharing this vertex Mark Pauly - ETH Zurich 310

  33. Vertex Removal Remove the selected triangles, creating the hole Mark Pauly - ETH Zurich 311

  34. Vertex Removal Fill the hole with triangles Mark Pauly - ETH Zurich 312

  35. Decimation Operators Vertex Removal Vertex Insertion • Remove vertex • Re-triangulate hole – Combinatorial DOFs – Sub-sampling Mark Pauly - ETH Zurich 313

  36. Decimation Operators Edge Collapse Vertex Split • Merge two adjacent triangles • Define new vertex position – Continuous DOF – Filtering Mark Pauly - ETH Zurich 314

  37. Decimation Operators Half-Edge Collapse Restricted Vertex Split • Collapse edge into one end point – Special vertex removal – Special edge collapse • No DOFs – One operator per half-edge – Sub-sampling! Mark Pauly - ETH Zurich 315

  38. Edge Collapse Mark Pauly - ETH Zurich 316

  39. Edge Collapse Mark Pauly - ETH Zurich 317

  40. Edge Collapse Mark Pauly - ETH Zurich 318

  41. Edge Collapse Mark Pauly - ETH Zurich 319

  42. Edge Collapse Mark Pauly - ETH Zurich 320

  43. Edge Collapse Mark Pauly - ETH Zurich 321

  44. Edge Collapse Mark Pauly - ETH Zurich 322

  45. Edge Collapse Mark Pauly - ETH Zurich 323

  46. Edge Collapse Mark Pauly - ETH Zurich 324

  47. Edge Collapse Mark Pauly - ETH Zurich 325

  48. Priority Queue Updating Mark Pauly - ETH Zurich 326

  49. Incremental Decimation • General Setup • Decimation operators • Error metrics • Fairness criteria • Topology changes Mark Pauly - ETH Zurich 327

  50. Local Error Metrics • Local distance to mesh [Schroeder et al. 92] – Compute average plane – No comparison to original geometry Mark Pauly - ETH Zurich 328

  51. Global Error Metrics • Simplification envelopes [Cohen et al. 96] – Compute (non-intersecting) offset surfaces – Simplification guarantees to stay within bounds Mark Pauly - ETH Zurich 329

  52. Global Error Metrics • (Two-sided) Hausdorff distance: Maximum distance between two shapes – In general d(A,B) ≠ d(B,A) – Computationally involved A d(A,B) B d(B,A) Mark Pauly - ETH Zurich 330

  53. Global Error Metrics • Scan data: One-sided Hausdorff distance sufficient – From original vertices to current surface Mark Pauly - ETH Zurich 331

  54. 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 v 3 p 1 p 2 solve v 3T Q 3 v 3 = min p iT Q i p i = 0, i={1,2} < ε ? → ok Mark Pauly - ETH Zurich 332

Recommend


More recommend