0

I had asked this question before but on github here , but never got farther into it. Now I have picked it up, and am trying to get this mesh tetrahedralized, but I keep getting errors see below. Ahlthough the statement clearly says "Found a segment and a subface intersect", I don't know how would I go about resolving that ? The question here is more precisely how to find if mesh has an open boundary and how to locate that and fix that in perhaps blender ? I am asking about open boundary since "camel.off" which clearly has an open boundary gives the same error. I even tried using another geometry processing tool but it showed no holes found, and its auto repair didn't work either. Errors when trying to tetrahedralize I get the obj file of Emily 3D scan and remove everything such as eye lashes, eyeballs, inner and outer extra subgeometries. I am using blender to export and using libigl tetgen example to see it if it works. I inspected the mesh, I don't see any holes in the topology, the base hole I fill up using the blender grid fill functionality. See the attached picture. Emily cleanup file in blender for export In libigl I launched it in the viewer before processing with tetgen and it looks fine, I also tried all the blender clean up tool, see libigl emily loaded properly.

Is there a way to do some more preprocessing automatically before trying to create a tetrahedralized mesh that would ensure smooth operation ? Please advice.

Syed Alam Abbas
  • 521
  • 6
  • 21
  • Unfortunately, it is difficult to guess what's wrong with the mesh, because we cannot really reproduce your problem: we have neither your source code, nor your mesh. What I would do in your place would be to open the mesh in Meshlab and look for boundary edges and non-manifold edges. My guess is that there is still some tiny hole, so thin that it cannot be easily seen. Meshlab can mark them for you. – Dominik Mokriš Oct 15 '18 at 20:40
  • @DominikMokriš, neither the source code nor the mesh is mine. Both are freely and publicly available. Mesh is Emily 2.0, code is libigl with tetgen example- tutorial 605. I have tried other tools, will give meshlab a try. – Syed Alam Abbas Oct 15 '18 at 21:23
  • 1
    But you did not run tetgen directly on Emily, did you? From your question it seems that you first removed "everything such as eye lashes, eyeballs, inner and outer extra subgeometries" and also closed the hole. Do you see what I mean by not being able to reproduce your problem? – Dominik Mokriš Oct 16 '18 at 19:17
  • @DominikMokriš, you cannot run tetgen directly on Emily or any arbitrary mesh. You have to make a mesh amenable to be used in tetgen. The operations I described are fairly straight forward and simply blender operations - nothing proprietor or hidden is being done, remove everything except base of Emily mesh, then grid fill the open boundary base. About reproducing the problem, yes it can be done in no time with little to no effort, very basic steps are needed, solving it is another matter. – Syed Alam Abbas Oct 16 '18 at 20:52

1 Answers1

0

Notice that the lips of Emily has self-intersecting faces. This can be viewed in MeshLab as suggested by @Dominik Mokris. However after deleting those faces, it is hard to get it properly filled without additional faces becoming self-intersecting. See one of the main errors from the tetgen was about self-intersection. The only great tool I found is MeshMixer from Autodesk, in it there is tool called makesolid that takes care of closing the holes and self intersecting faces, etc. Great tool, I can now generate tetgen nicely using libigl !

Mesh mixer emily cleanup by using MakeSol As seen inside the libigl

Syed Alam Abbas
  • 521
  • 6
  • 21