Spring 2017 CSCI 621: Digital Geometry Processing 11.1 Remeshing Hao Li http://cs621.hao-li.com 1
Outline • What is remeshing? • Why remeshing? • How to do remeshing? 2
Outline • What is remeshing? • Why remeshing? • How to do remeshing? 3
Definition Given a 3D mesh • Already a manifold mesh Compute another mesh • Satisfy some quality requirements • Approximate well the input mesh 4
Outline • What is remeshing? • Why remeshing? • How to do remeshing? 5
Motivation Unsatisfactory “raw” mesh • By scanning or implicit representations 6
Motivation Unsatisfactory “raw” mesh • By scanning or implicit representations Improve mesh quality for further use 7
Motivation Unsatisfactory “raw” mesh • By scanning or implicit representations Improve mesh quality for further use • Modeling: easy processing • Simulation: numerical robustness • …… Quality requirements • Local structure • Global structure 8
Local structure Element type • Triangles vs. quadrangles all-quad mesh all-triangle mesh quad-dominant mesh 9
Local structure Element type • Triangles vs. quadrangles 10
Local structure Element type • Triangles vs. quadrangles Element shape • Isotropic vs. anisotropic 11
Local structure Element type • Triangles vs. quadrangles Element shape • Isotropic vs. anisotropic Element distribution • Uniform vs. adaptive 12
Local structure Element type • Triangles vs. quadrangles Element shape • Isotropic vs. anisotropic Element distribution • Uniform vs. adaptive Element alignment • Preserve sharp features and curvature lines 13
Global structure Valence of a regular vertex Interior vertex Boundary vertex Triangle mesh 6 4 Quadrangle mesh 4 3 14
Global structure Valence of a regular vertex Interior vertex Boundary vertex Triangle mesh 6 4 Quadrangle mesh 4 3 Different types of mesh structure • Irregular • Semi-regular: multi-resolution analysis / modeling • Highly regular: numerical simulation • Regular: only possible for special models 15
Outline • What is remeshing? • Why remeshing? • How to do remeshing? 16
Outline • What is remeshing? • Why remeshing? • How to do remeshing? - Isotropic remeshing - Anisotropic remeshing 17
Outline • What is remeshing? • Why remeshing? • How to do remeshing? - Isotropic remeshing - Anisotropic remeshing 18
Isotropic remeshing Incremental remeshing • Simple to implement and robust • Not need parameterization • Efficient for high-resolution input Variational remeshing • Energy minimization • Parameterization-based → expensive • Works for coarse input mesh Greedy remeshing 19
Isotropic remeshing Incremental remeshing • Simple to implement and robust • Not need parameterization • Efficient for high-resolution input Variational remeshing • Energy minimization • Parameterization-based → expensive • Works for coarse input mesh Greedy remeshing 20
Local remeshing operators Edge Edge Edge Vertex Collapse Split Flip Shift 21
Incremental remeshing Specify target edge length L L max = 4/3 * L; L min = 4/5 * L; Iterate: 1. Split edges longer than L max 2. Collapse edges shorter than L min 3. Flip edges to get closer to optimal valence 4. Vertex shift by tangential relaxation 5. Project vertices onto reference mesh 22
Edge split L max 1 1 2 L max 2 L max Edge Split � � 1 � � | L max − L | 2 L max − L = � � � � 4 ⇒ L max = 3 L Split edges longer than L max 23
Edge collapse L min L min L min 3 3 2 L min 2 L min Edge Collapse � � 3 � � | L min − L | 2 L min − L = � � � � 4 ⇒ L min = 5 L Collapse edges shorter than L min 24
Edge flip Optimal valence • 6 for interior vertices • 4 for boundary vertices 25
Edge flip Optimal valence • 6 for interior vertices • 4 for boundary vertices Edge Improve valences Flip • Minimize valence excess -1 4 (valence( v i ) − opt valence( v i )) 2 � +1 +1 i =1 -1 26
Vertex shift Local “spring” relaxation • Uniform Laplacian smoothing • Barycenter of one-ring neighborhood 1 Vertex � c i = p j Shift valence( v i ) j ∈ N ( v i ) 27
Vertex shift Local “spring” relaxation • Uniform Laplacian smoothing p i • Barycenter of one-ring neighborhood c i 1 � c i = p j valence( v i ) j ∈ N ( v i ) 28
Vertex shift n i Local “spring” relaxation • Uniform Laplacian smoothing p i • Barycenter of one-ring neighborhood c i tangent 1 � c i = p j valence( v i ) j ∈ N ( v i ) Keep vertex (approx.) on surface project • Restrict movement to tangent plane I − n i n T � ⇥ p i ← p i + λ ( c i − p i ) i 29
Vertex projection Onto original reference mesh • Find closet triangle • Use BSP to accelerate → O (log n ) • Barycentric interpolation to compute position & normal project 30
Incremental remeshing Specify target edge length L Iterate: 1. Split edges longer than L max 2. Collapse edges shorter than L min 3. Flip edges to get closer to optimal valence 4. Vertex shift by tangential relaxation 5. Project vertices onto reference mesh 31
Remeshing result 32
Adaptive remeshing 33
Adaptive remeshing • Compute maximum principle curvature on reference mesh • Determine local target edge length from max- curvature • Adjust edge split / collapse criteria accordingly 34
Feature preservation 35
Feature preservation Define feature edges / vertices • Large dihedral angles • Material boundaries Adjust local operators • Do not touch corner vertices • Do not flip feature edges • Collapse along features • Univariate smoothing • Project to feature curves 36
Isotropic remeshing Incremental remeshing • Simple to implement and robust • Not need parameterization • Efficient for high-resolution input Variational remeshing • Energy minimization • Parameterization-based → expensive • Works for coarse input mesh Greedy remeshing 37
Voronoi Diagram 38
Voronoi Diagram Divide space into a number of cells 39
Voronoi Diagram Divide space into a number of cells Dual graph: Delaunay triangulation 40
Centroidal Voronoi Diagram For each cell The generating point = mass of center non CVD CVD 41
Centroidal Voronoi Diagram Compute CVD by Lloyd relaxation 1. Compute Voronoi diagram of given points p i 2. Move points p i to centroids c i of their Voronoi cells V i 3. Repeat steps 1 and 2 until satisfactory convergence � V i x · ρ ( x ) d x p i ← c i = � V i ρ ( x ) d x 42
Centroidal Voronoi Diagram Compute CVD by Lloyd relaxation 1. Compute Voronoi diagram of given points p i 2. Move points p i to centroids c i of their Voronoi cells V i 3. Repeat steps 1 and 2 until satisfactory convergence � V i x · ρ ( x ) d x p i ← c i = � V i ρ ( x ) d x CVD maximizes compactness • Minimize the energy: ⇥ ρ ( x ) ⇤ x � p i ⇤ 2 d x ⇥ min � V i i 43
Variational remeshing 1. Conformal parameterization of input mesh 2. Compute local density 3. Perform in 2D parameter space A. Randomly sample according to local density B. Compute CVD by Lloyd relaxation 4. Lift 2D Delaunay triangulation to 3D 44
Variational remeshing 45
Adaptive remeshing 46
Feature preservation 47
Outline • What is remeshing? • Why remeshing? • How to do remeshing? - Isotropic remeshing - Anisotropic remeshing 48
Anisotropic remeshing Artist-designed models • Conform to the anisotropy of a surface 49
Anisotropic remeshing [Alliez et al. 2003] Anisotropic Polygonal Remeshing. 50
Anisotropic remeshing [Alliez et al. 2003] Anisotropic Polygonal Remeshing. input principal output sampling meshing mesh direction fields mesh 51
Anisotropy Differential geometry • A local orthogonal frame: min/max curvature directions and normal 52
3D curvature tensor k > 0 k = 0 Isotropic spherical planar k min > 0 k min < 0 k min = 0 Anisotropic k max > 0 k max > 0 2 principal directions k max > 0 elliptic parabolic hyperbolic 53
Principal direction fields min curvature max curvature overlay 54
Flattening to 2D piecewise linear interpolation of 2D tensors 2D tensor field one 3D tensor discrete conformal using barycentric per vertex parameterization coordinates 55
2D direction fields • Regular case minor foliation major foliation principal foliations 56
2D direction fields • Singularities umbilic (spherical point) 2D tensor proportional to identity trisector wedge 57
Umbilics 58
Umbilics trisector wedge 59
Lines of curvature minor net major net overlay 60
Lines of curvature minor net major net 61
Overlay • Overlay curvature lines in anisotropic regions • Add umbilical points in isotropic regions 62
Vertices intersect lines of curvatures 63
Edges straighten lines of curvatures + Delaunay triangulation near umbilics 64
Resolve T-junctions T-junction 65
Recommend
More recommend