My goal is to simulate a particle system in an animation, convert the particles to a mesh, then apply Boolean modifiers to the result mesh. This usually works. However, the mesh generation occasionally results in non-manifold elements which cause the Boolean modifiers to fail. The question is if there is a way to ensure that meshes generated from meta-elements will be a manifold and not contain non-manifold vertices. An idea solution solves the problems by
- explaining how to generate the mesh without non-manifold elements;
- explaining how to remove the non-manifold elements using a feature in blender; or
- explaining how to use scripts to remove the non-manifold elements.
Manual editing of the mesh is not an option since thousands of meshes will be generated.
Details
Using Blender 2.76, the particle system consists of several thousand particles. The particles are converted to a mesh by a script which runs on each render event. The script creates a metaball for each particle, then converts the metaballs to a mesh. This works fine. However, the resulting mesh occasionally contains non-manifold vertices. The non-manifold vertices can cause Boolean modifiers to fail.
Is there a way to either generate the mesh or modify the mesh to ensure that the all vertices are on the manifold. Manual editing is not an option since thousands of these meshes will be automatically generated in an animation.
Example:
This image shows the particle system during an animation:
This image shows a rendering of the meshed particle system:
This image shows the meshed generated from the particle system with non-manifold vertices identified. From the top of the image, 2-vertices are identified as non-manifold.
To see the issue with the mesh, this a zoomed version to the problem area is highlighted.
An example of a successful Boolean modifier applied to the mesh:
Update based on comments.
From testing with cubesurfer 0.95cubesurf 0.95 and Blender 2.76, the meshes generated are not always manifold.
Example:
For the same problem, here is the resulting cubesurfer surface.
This is the resulting mesh.
When selecting for non-manifold vertices, these are the non-manifold vertices and surrounding geometry.
Zooming in, these are the non-manifold vertices up close
.pdb
, and then send the pdb to PyMOL (a program that creates manifold surfaces by passing a solvent radius (ball radius) and surface quality (triangle density) . then import the resulting surface. PyMOL is pretty fast. github.com/MonZop/BioBlender/blob/master/… $\endgroup$