Download presentation
Presentation is loading. Please wait.
Published byAmanda Harvey Modified over 9 years ago
1
Automatic mesh-healing technique for model repair and finite element model generation
Based on paper by C.S. Chong, A. Senthil Kumar, H.P. Lee Presented by Nurit Moscovici
2
Good Polygonal Models What is a good model? Used for?
Equilateral triangles Valence close to 6 Equal edge lengths Feature preservation Used for? 3D printing Finite Element Analysis … The article doesn’t explicitly state what it considers a “good” model – I pieced this together using general definitions + outputs of the algorithm Why are good models important? Less computational problems (slivers, for example may cause numerical issues), better computation time\space Link: DGP lecture 9
3
Problems in Polygonal Models
Holes Gaps T-Joints May happen because of translation/truncation errors when translating between formats, or modeling errors Slivers Overlaps
4
This Paper Black-box algorithm: automatic* model repair and mesh generation Work on a triangle-meshed version of the model Original geometric model is not repaired Fix mesh so it is watertight Reconstruct mesh to get good quality Remember to mention that they assume most gaps/tjoints/overlaps occur because of numerical error. Holes/missing surfaces because of occlusion/translational error. previous work handled only repairing of the geometric model, later doing mesh generation, and handle specific problems (gaps, or slivers) * Except for non-simple holes. Or intersecting faces – they don’t seem to talk about that.
5
This Paper
6
Previous Work Directly healing geometry User-controlled tools
Edge merging [Steinbrenner et al.2001] Stitching using geometric hashing [Barequet 1997] Spatial partitioning [Murali et al. 1997] User-controlled tools [Petersen et al. 2001] [Morvan et al. 1996] Focus on specific elements Zipping small gaps [Sheng and Meier 1995] Healing slivers [Chew 1997] Healing slivers using Delaunay [Edelsbrunner 2000] There’s also Leon et al. and Noel et al. (add references from the paper) who did similar things to this paper, but the author claims that this solution is more automated and more consistent. There is no testing\comparison done to back this statement.
7
Important terms Elements Nodes Edges Triangle Mesh Inner Node
Inner Edge Free Node These terms come from finite element analysis. In some forms of FEA, the first step in the analysis is to create a mesh depicting the model being analyzed. This mesh is made of polygons, often triangles, which make up the finite elements to run analysis on. The terms in the slide are used in finite element meshing. * In FEA, volumetric models using polyhedrons are also called meshes. This paper depicts surface models. Free Edge/ Boundary Edge Element
8
General description of algorithm
Initial imperfect model Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model
9
Creating the Initial Mesh
Initial imperfect model Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model
10
Creating the Initial Mesh
Create mesh by triangulating given model Paving algorithm Create mesh nodes along model boundaries Element edge length defined by user Create triangular elements that conform to mesh nodes *This is literally all they have to say about the algorithm. They don’t say which paving/triangulation algorithm they use, how they make it work given various models, etc. They also don’t say anything about the traits of the resulting mesh, but from the work you can infer that they make an interconnected data structure – faces know their edges, who know their faces and nodes, and so on.
11
Search for Free Edges Mesh healing Initial imperfect model
Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model * This stage is easy – each face knows it’s edges, each edge knows it’s faces. A simple sweep over the model’s edges will give you the free edges (for each edge check how many bordering faces it has).
12
Healing Small Gaps and Overlaps
Initial imperfect model Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model
13
Small Gaps and Overlaps
In this paper gaps are defined as an accidental space between two surfaces that should be connected Usually occur because of numerical and translational errors Gaps Overlaps Usually between adjacent surfaces whose common edges don’t match because of numerical error that occurs during vertex computation / translation between CAD formats.
14
Small Gaps and Overlaps Detection
General idea: check proximity between two candidate surface edges Traditionally detected by checking proximity between two element edges Can be difficult if edges are different sizes In this article: check proximity between nodes Usually between adjacent surfaces whose common edges don’t match because of numerical error
15
Nodal Merging Algorithm
Node Pair: a pair of free nodes within a user specified tolerance distance Node-pair exists in model? Continue to T-Joint healing no yes Determine location of merged node Usually between adjacent surfaces whose common edges don’t match because of numerical error Collapse both nodes to determined location
16
Determine New Node Location
Calculate line intersection between tangential planes at the two nodes. Distance between nodes and line larger than tolerance distance: Location is at midpoint Else: Project both points onto this line Location is at midpoint on line * This is a way of preserving model correctness – if possible use tangential interpolation to find a more likely placement for the new node
17
Healing T-Joints Mesh healing Initial imperfect model
Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model At this point no free node pairs within tolerance distance. There may still be small gaps where distance is small but node alignment is bad.
18
T-Joints An area in the mesh where the node of one or more elements intersects the edge of another. Modeling error or large truncation error during translation In this article: also an area where a free node is within a small distance from a free edge Usually between adjacent surfaces whose common edges don’t match because of numerical error, and node alignment is bad. Can be non-zero size, but must be within tolerance distance T-Joints
19
T-Joint detection Still checking proximity between two candidate surface edges Find free edge with a free node within tolerance distance. Edge-node pair
20
T-Joint Stitching Algorithm
Node-pair exists in model? Return to nodal merging algorithm Yes No Edge-pair exists in model? Go to hole-healing algorithm No Yes T-Joint found: Nodal Insertion and element splitting
21
Stitching Project free node onto free edge in edge-node pair
Create new node at this location Split element belonging to free edge at new node location Merge free node with new node Watertight except for remaining holes (no close distance overlaps/gaps)
22
Stitching example
23
Healing Holes Mesh healing Initial imperfect model
Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model
24
Types of Holes Simple hole: a single loop of free edges
Can be any shape Ring hole: a hole consisting of at least two peripheral loops Holes with “islands” They ignore the possibility of large gaps in the paper. Explain why this is a problem in a couple of slides
25
Hole Filling Algorithm
For every closed loop of free edges (simple hole), fill hole with triangle elements: Calculate the minimum angle between two adjacent free edges in loop 3 options: 75 and 135 are user input. Will later discuss why the author chose these numbers.
26
Option 1: Form triangle using these two free elements.
27
Option 2: Create two equilateral triangles using free edges
Calculate normal of new triangles to decide on plane * Defined in article as maybe half an edge length
28
Option 2: Find average location between two new nodes
Merge to a single node at this location. Check if any node is within tolerance distance of the new node and merge if found. * Tolerance defined in article as maybe half an edge length
29
Option 3: Create two equilateral triangles using free edges.
Calculate normal of new triangles to decide on plane No nodal merging * Defined in article as maybe half an edge length
30
Ring holes Interactively identify ring holes
Connect islands to the main loop with a bridge line Bridge line converted to triangle elements during meshing Leaving us with only simple holes If this isn’t done the islands will eventually be discarded Consistent model, worse fidelity. This can’t be done automatically They provide a function for identifying points on the islands and on the hole boundary
31
A word about values Why 75 and 135?
Good meshes are as close as possible to equilateral triangles (60 degrees) The author decided 75 degrees is tolerable Why? They don’t say If angle is between 75 and 135 degrees you can split into triangles with an angle between 37.5 and 75 If angle is too small it will be handled in next stage
32
Reconstructing Surface Elements
Initial imperfect model Create initial triangular mesh Search for free edges Identify and heal small gaps and overlaps Identify and heal t-joints Identify and heal large gaps/holes Surface reconstruction Mesh healing Healed mesh model
33
Slivers Often generated during t-joint and hole healing
Long and slender Ratio of surface area/perimeter is small Bad for numerical solution. Slivers
34
Reconstruction options
Nodal Merging Edge Flipping
35
Feature Edges Feature Edge: edge that is likely part of shape definition and should be kept. Identified by Smoothness Angle: angle along the edge of a skewed triangle Smoothness Angle Automatic mesh repair thesis Agnes Larsson Link: DGP lecture 9
36
Shape Factor Value indicating skewedness of a triangle
Way to determine if triangle should be fixed Based on equilateral factor Where are the angles of a given triangle Equilateral factor: Shape factor:
37
Reconstruction algorithm
User input: shortest edge length Element with edge shorter than the tolerance will be fixed User input: tolerance factor Element with shape factor lower than the tolerance will be fixed In the paper, 0.7 Smoothness angle: default 135o If angle < 135o consider as feature edge If angle > 135o consider as planar
38
Reconstruction algorithm
When to invoke nodal merging: Low shape factor and edge shorter than edge length One of the edges is a feature edge No feature edge If the edge length is low then the nodes are fairly close together, and can be merged.
39
Reconstruction algorithm
When to invoke edge flipping: Low shape factor and no short edges Take smoothness angle into account Edge A is not a feature edge Edge A is a feature edge If the edge length isn’t low the nodes shouldn’t be merged in order not to change the mesh too much.
40
Results Handles many different input formats
Divergence from original model bounded by mesh element size
41
Results
42
Future Work Find non-heuristic tolerance values
Should be connected to size of edges Do more during remeshing to ensure optimal mesh Find a way to deal with open loops, missing surfaces, complex holes, etc. Not mentioned: large overlaps, intersections, bad normals
43
Later Work Repairing and meshing imperfect shapes with Delaunay refinement [Busaryev, Dey, Levine 2009] Handles small errors Output: good quality Delaunay mesh Weighted Delaunay triangulation Merge gaps using original boundary data, instead of merging nodes from new mesh Sealing Faceted Surfaces to Achieve Watertight CAD Models[Smith, Tautges, Wilson 2010] Use original CAD face data to fill holes more accurately Can heal non-manifold models
44
Later Work: Surveys Polygon Mesh Repairing: An Application Perspective [Attene et al., 2013] Surface based reconstructions are suitable when there are few errors, and are generally not very robust. Volumetric solutions are more robust. No common strategy for handling self intersections. Existing solutions are tailored to specific problems. No automatic way of dealing with ring holes. Fixing Geometric Errors on Polygonal Models: A Survey [Ju, 2009] Surface based reconstructions better for preserving small details of the model Less robust, and can be very time consuming when large holes/gaps must be filled.
45
Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.