-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CGAL Surface_mesh_simplification produces self-intersecting elements after decimation #6
Comments
Any updates here? |
@harmening, if your surface mesh is a single closed surface, you can just call for a general purpose repairing tool, this is extremely hard and I don't anticipate this ticket can be closed easily. |
also checkout our brain2mesh paper and code https://github.com/fangq/brain2mesh it is based on iso2mesh, and we specifically handle multi-layered meshes with close distances (CSF/gray-matter/white-matter surfaces) and used a combination of boolean, repairing, and remeshing to create usable meshes. |
@fangq, no, it's not a single closed surface - it's a combination of 4 nested closed surfaces (scalp, skull, csf, cortex), meshcheckrepair wasn't helping. |
Ok, requiring a minimum distance between the nested surface meshes helped for me to prevent self-intersections during CGAL-remeshing. It's not a perfect solution, but might be sufficient until a remeshing-tool is found (which e.g. can promise self-intersection-free outputs). |
@harmening, I am not sure what you meant by "CGAL-remeshing". in our brain2mesh script, we did the intersecting surface handling mostly by using only when the decouple option calls meshfix. |
Sorry @fangq, with "CGAL-remeshing" I meant the CGAL surface mesh decimation called before tetrahedralization. |
try this sequence:
you can not by bass it sounds like what you are doing is exactly what brain2mesh is meant to do - why not using it directly? |
Oh yes, good idea! But since |
So, @fangq, I propose to close this here for now. I think we found the very improbable boarder of this whole nested_surf2mesh pipeline. This case is so unlikely because my input data do not stem from MRI segmentations but a warping algorithm. I learned to constrain my algorithm to ensure a minimum distance between the nested surface meshes, which is anyway physiologically plausible. Then the whole tetrahedralization works fine and I am satisfied. |
@harmening, the above discussion has deviated from the purpose of this ticket, so I agree that we should not use this thread to continue the discussion. For any additional questions related to meshing multi-shell surfaces, I suggest you start a new ticket in either iso2mesh or brain2mesh repo. However, I will leave this ticket open because the described issue still has not been resolved. |
The mesh simplification algorithm used in CGAL does not ensure the output mesh is self-intersection free. An alternative or update to Surface_mesh_simplification that ensures self-intersection-free would be very useful.
The text was updated successfully, but these errors were encountered: