Spring 2015 CSCI 599: Digital Geometry Processing 9.1 Remeshing Hao Li http://cs599.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 all quad-dominant mesh 9
Local structure Element type � • Triangles vs. quadrangles Element shape � • Isotropic vs. anisotropic 10
Local structure Element type � • Triangles vs. quadrangles Element shape � • Isotropic vs. anisotropic Element distribution � • Uniform vs. adaptive 11
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 12
Global structure Valence of a regular vertex Interior vertex Boundary vertex Triangle mesh 6 4 Quadrangle mesh 4 3 13
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 14
Outline • What is remeshing? • Why remeshing? • How to do remeshing? 15
Outline • What is remeshing? • Why remeshing? • How to do remeshing? � - Isotropic remeshing - Anisotropic remeshing 16
Outline • What is remeshing? • Why remeshing? • How to do remeshing? - Isotropic remeshing � - Anisotropic remeshing 17
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 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
Local remeshing operators Edge Edge Edge Vertex Collapse Split Flip Shift 20
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 21
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 22
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 23
Edge flip Optimal valence � • 6 for interior vertices • 4 for boundary vertices 24
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 25
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 ) 26
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 ) 27
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 28
Vertex projection Onto original reference mesh � • Find closet triangle • Use BSP to accelerate → O (log n ) • Barycentric interpolation to compute position & normal project 29
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 30
Remeshing result 31
Adaptive remeshing 32
Adaptive remeshing • Compute maximum principle curvature on reference mesh • Determine local target edge length from max- curvature • Adjust edge split / collapse criteria accordingly 33
Feature preservation 34
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 35
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 36
Voronoi Diagram 37
Voronoi Diagram Divide space into a number of cells 38
Voronoi Diagram Divide space into a number of cells � Dual graph: Delaunay triangulation 39
Centroidal Voronoi Diagram For each cell � The generating point = mass of center non CVD CVD 40
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 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 CVD maximizes compactness � • Minimize the energy: ⇥ ρ ( x ) ⇤ x � p i ⇤ 2 d x ⇥ min � V i i 42
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 43
Variational remeshing 44
Adaptive remeshing 45
Feature preservation 46
Outline • What is remeshing? • Why remeshing? • How to do remeshing? - Isotropic remeshing - Anisotropic remeshing 47
Anisotropic remeshing Artist-designed models � • Conform to the anisotropy of a surface 48
Anisotropic remeshing [Alliez et al. 2003] Anisotropic Polygonal Remeshing. 49
Anisotropic remeshing [Alliez et al. 2003] Anisotropic Polygonal Remeshing. input principal output sampling meshing mesh direction fields mesh 50
Anisotropy Differential geometry � • A local orthogonal frame: min/max curvature directions and normal 51
3D curvature tensor k > 0 k = 0 Isotropic spherical planar k k k Anisotropic k k � 2 principal directions k elliptic parabolic hyperbolic 52
Principal direction fields min curvature max curvature overlay 53
Flattening to 2D piecewise linear interpolation of 2D tensors 2D tensor one 3D tensor discrete conformal using barycentric per vertex parameterization coordinates 54
2D direction fields • Regular case minor foliation major foliation principal foliations 55
2D direction fields • Singularities umbilic (spherical point) 2D tensor proportional to identity trisector wedge 56
Umbilics 57
Umbilics trisector wedge 58
Lines of curvature minor net major net overlay 59
Lines of curvature minor net major net 60
Overlay • Overlay curvature lines in anisotropic regions • Add umbilical points in isotropic regions 61
Vertices intersect lines of curvatures 62
Edges straighten lines of curvatures + Delaunay triangulation near umbilics 63
Resolve T-junctions T-junction 64
Recommend
More recommend