Open ruben-benaco opened 5 months ago
We can investigate, but are you sure surface mesh simplification is the right thing for the mesh you have at hand? How do you obtain this heavily self intersecting mesh, and what do you want to do with it downstream?
We can investigate, but are you sure surface mesh simplification is the right thing for the mesh you have at hand? How do you obtain this heavily self intersecting mesh, and what do you want to do with it downstream?
I put this specific mesh there for easy reproducibility of the issue. We use mesh simplification as part of an automated toolchain. The input meshes vary in size, shape and topology. I was looking for a mesh simplification algorithm that can produce somewhat consistent results when I encountered the issue.
Further examples of the same issue (always lindstrom-turk at low face counts):
Hu @ruben-benaco, in the above mentioned pull request we added a rather add-hoc robustification. In case the placement is outside a slightly enlarged bounding box of the link ( the vertices incident to the vertices on the edge to collapse) we drop it. We have to think about a better solution, but it might help you for now.
And I would be glad to discuss with you about your pipeline. If I had to deal with meshes as the one you shared with us, I first would remove all connected components which are small, Here is a link to such a function.
I have a mesh (link to input.ply on github), with 1'669'389 faces. I use the code below to simplify down to 350'000 faces.
The result is shown in the screenshot below: at least two vertices appeared far away from the mesh. I selected one of the corresponding edges in Blender, showing in white.
The problem only appears
Environment
Face_count_stop_predicate.h
from latest