ZBrushCentral

Forcing complex booleans

I’m trying to do a very complex boolean operation, basically subtracting a dirty dynamesh from another dirty dynamesh (screenshot attached). As expected, Zbrush doesn’t like this at all - way too many degenerated edges etc… gives me an error every time.

I’ve tried decimating, fixing the mesh integrity, doing it via Dynamesh Sub… to no avail.

Is there any chance you guys know of a method that might brute force this? The results would be amazing and very difficult (and time-consuming) to replicate by hand.

Hi @khomatech

Autodesk Meshmixer works with triangle meshes and can autorepair meshes so if you can get a decent decimation then try that.

MeshLab is a powerful collection of mesh tools. It has many tools and filters to assess and modify meshes, quad or tri so you could try that. I haven’t used it for mesh repair myself so you’d have to google for help on using it for that purpose.

Thinking aloud here … you could also break it into smaller parts and try to repair each individually. Use the Slice brush to give you clean edges and unique polygroups. Split the groups into their own subtool and then run Decimation Master with Freeze Borders. Try repairing then. Hopefully the borders are clean and stay untouched. Repeat for each subtool, merge and then weld points. The frozen border will guarantee that they join together without any visible weld. Useful in it’s own right for dealing with very large models.

Good Luck

Hello @khomatech

Can you be more specific here? What error exactly are you seeing? Are you talking about Mesh Integrity errors (Geometry> Mesh Integrity> Check Mesh)?

If this is the case you may be able to fix the geometry with the Fix Mesh option, but if you have a problematic section of geometry in your mesh–possibly as the result of a previous faulty Dynamesh operation–then the mesh may continue to destabilize until you identify that portion of geometry and either clean it up or remove it from the model.


Re: Degenerated edges.

What do you mean here? Are you referring to hard edges softening, or high res detail not being captured?

In this case the model you are working with is too finely detailed for Dynamesh. As explained in the Dynamesh documentation, Dynamesh works best on meshes up to about a medium level of detail. What you are trying to do here with Dynamesh looks ambitious, and much of that detail will not be able to be captured without subdividing the mesh and projecting the detail from the previous version. I would wager that some of the finest detail on that mesh will not survive a Dynamesh process no matter what you do.


If, however, you are referring to edges that are actually starting to break apart and disintegrate as a result of the Dynamesh process, then this is probably an issue with the watertightness of your mesh. Dynamesh needs a closed, watertight volume with a degree of thickness to work. Mesh sections that are overly thin or 2d will begin to break apart–the dreaded Dynamesh “Swiss Cheese”. If your mesh is not watertight, it’s possible ZBrush is reading an open section of mesh as a 2d surface, which would cause it to start to disintegrate.

If this has happened already as a part of a previous Dynamesh process, then the mesh is already highly suspect. Once a mesh starts to fragment in this way, that ugly geometry is going to be increasingly problematic for many operations. Any fragmenting geometry with tiny orphaned sections of non-contiguous mesh floating around it should be repaired. You may have to cut the sections away entirely and close any holes before a “Fix Mesh” operation will take. If you have sections of mesh like this in your file, they are likely to be the cause of the errors you’re experiencing.

Good luck! :slightly_smiling_face:

Brute Force, LOL.
Looks interesting. Keep trying.