Applications Oversampled 3D scan data ~150k triangles ~80k triangles 2 Copyright 2010 Gotsman, Pauly Page 1
Applications Overtessellation: E.g. iso-surface extraction 3 Applications Multi-resolution hierarchies for efficient geometry processing level-of-detail (LOD) rendering 4 Copyright 2010 Gotsman, Pauly Page 2
Applications Adaptation to hardware capabilities 5 Size-Quality Tradeoff error size 6 Copyright 2010 Gotsman, Pauly Page 3
Problem Statement Given: Find: such that 1. and is minimal, or 2. and is minimal Respect additional fairness criteria normal deviation, triangle shape, scalar attributes, etc. 7 Methods Vertex clustering Incremental decimation Resampling Mesh approximation 8 Copyright 2010 Gotsman, Pauly Page 4
Vertex Clustering Cluster Generation Computing a representative Mesh generation Topology changes 9 Vertex Clustering Cluster Generation Uniform 3D grid Map vertices to cluster cells Computing a representative Mesh generation Topology changes 10 Copyright 2010 Gotsman, Pauly Page 5
Vertex Clustering Cluster Generation Hierarchical approach Top-down or bottom-up Computing a representative Mesh generation Topology changes 11 Vertex Clustering Cluster Generation Computing a representative Average/median vertex position Error quadrics Mesh generation Topology changes 12 Copyright 2010 Gotsman, Pauly Page 6
Computing a Representative Average vertex position 13 Computing a Representative Median vertex position 14 Copyright 2010 Gotsman, Pauly Page 7
Computing a Representative Error quadrics 15 Error Quadrics Patch is expected to be piecewise flat Minimize distance to neighboring triangles planes 16 Copyright 2010 Gotsman, Pauly Page 8
Error Quadrics Squared distance of point p to plane q: Q q 2 a ab ac ad E ca cb c cd f 2 da db dc d f 2 ba b bc bd 3 3 = = 2 T g 17 Error Quadrics Sum distances to planes q i of vertex neighboring triangles: An expression of the energy using E,f,g: p T E f 3 3 T f p g 18 Copyright 2010 Gotsman, Pauly Page 9
Error Quadrics Point p* that minimizes the error satisfies (simple linear least squares): 3 3 (,,,1) T T E f p= x y z, min p p T f g Ep= f Achieved by taking derivatives for all (x,y,z). E might not be full rank (why?) Use pseudo-inverse 19 Comparison average median error quadric 20 Copyright 2010 Gotsman, Pauly Page 10
Vertex Clustering Cluster Generation Computing a representative Mesh generation Clusters p {p 0,...,p n }, q {q 0,...,q m } Topology changes 21 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 22 Copyright 2010 Gotsman, Pauly Page 11
Vertex Clustering Cluster Generation Computing a representative Mesh generation Topology changes If different sheets pass through one cell Can be non-manifold 23 Outline Applications Problem Statement Methods Vertex Clustering Incremental Decimation Extensions 24 Copyright 2010 Gotsman, Pauly Page 12
Incremental Decimation 25 Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes 26 Copyright 2010 Gotsman, Pauly Page 13
General Setup Repeat: pick mesh region apply decimation operator Until no further reduction possible 27 Greedy Optimization For each region evaluate quality after decimation enqeue(quality, region) Repeat: get best mesh region from queue apply decimation operator update queue Until no further reduction possible 28 Copyright 2010 Gotsman, Pauly Page 14
Global Error Control For each region evaluate quality after decimation enqeue(quality, region) Repeat: get best mesh region from queue if error < ε apply decimation operator update queue Until no further reduction possible 29 Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes 30 Copyright 2010 Gotsman, Pauly Page 15
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 31 Vertex Removal Select a vertex to be eliminated 32 Copyright 2010 Gotsman, Pauly Page 16
Vertex Removal Select all triangles sharing this vertex 33 Vertex Removal Remove the selected triangles, creating the hole 34 Copyright 2010 Gotsman, Pauly Page 17
Vertex Removal Fill the hole with new triangles 35 Decimation Operators Vertex Removal Vertex Insertion Remove vertex Re-triangulate hole Combinatorial degrees of freedom 36 Copyright 2010 Gotsman, Pauly Page 18
Decimation Operators Edge Collapse Vertex Split Merge two adjacent vertices Define new vertex position Continuous degrees of freedom Filter along the way 37 Decimation Operators Half-Edge Collapse Restricted Vertex Split Collapse edge into one end point Special case of vertex removal Special case of edge collapse No degrees of freedom Separates global optimization from local optimization 38 Copyright 2010 Gotsman, Pauly Page 19
Half-Edge Collapse 39 Half-Edge Collapse 40 Copyright 2010 Gotsman, Pauly Page 20
Half-Edge Collapse 41 Half-Edge Collapse 42 Copyright 2010 Gotsman, Pauly Page 21
Half-Edge Collapse 43 Half-Edge Collapse 44 Copyright 2010 Gotsman, Pauly Page 22
Half-Edge Collapse 45 Half-Edge Collapse 46 Copyright 2010 Gotsman, Pauly Page 23
Half-Edge Collapse 47 Half-Edge Collapse flip! 48 Copyright 2010 Gotsman, Pauly Page 24
Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes 49 Local Error Metrics Local distance to mesh Compute average plane No comparison to original geometry 50 Copyright 2010 Gotsman, Pauly Page 25
Global Error Metrics Error quadrics Squared distance to planes at vertex No bound on true error Q 1 p it Q i p i = 0, i={1,2} p 1 p 2 Q 2 solve v 3T Q 3 v 3 = min < ε? ok Q 3 = Q 1 +Q 2 v 3 51 Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes 52 Copyright 2010 Gotsman, Pauly Page 26
Fairness Criteria Rate quality of decimation operation Approximation error Triangle shape Dihedral angles Valence balance... 53 Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance... r 1 r 2 54 Copyright 2010 Gotsman, Pauly Page 27
Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance... 55 Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... 56 Copyright 2010 Gotsman, Pauly Page 28
Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... 57 Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... 58 Copyright 2010 Gotsman, Pauly Page 29
Fairness Criteria Rate quality after decimation Approximation error Triangle shape Dihedral angles Valence balance Color differences... 59 Incremental Decimation General Setup Decimation operators Error metrics Fairness criteria Topology changes 60 Copyright 2010 Gotsman, Pauly Page 30
Topology Changes? Merge vertices across non-edges Changes mesh topology Need spatial neighborhood information Generates non-manifold meshes Vertex Contraction Vertex Separation 61 Topology Changes? Merge vertices across non-edges Changes mesh topology Need spatial neighborhood information Generates non-manifold meshes manifold non-manifold 62 Copyright 2010 Gotsman, Pauly Page 31
Comparison Vertex clustering fast, but difficult to control simplified mesh topology changes, non-manifold meshes global error bound, but often not close to optimum Incremental decimation with quadric error metrics good trade-off between mesh quality and speed explicit control over mesh topology restricting normal deviation improves mesh quality 63 The Exercise Do Edge-collapse with error quadrics Tasks: Compute Quadric error for each pair of vertices sharing an edge Test that an halfedge collapse is valid (triangles remain valid), no intersections) Choose next candidate according to sum of error quadrics Collapse and repeat until target mesh size achieved 64 Copyright 2010 Gotsman, Pauly Page 32