ZBrushCentral

Can Someone Explain How This Boolean Geometry That Looks bad, Is Actually a Good Mesh

So I have been experimenting with the new 4R8 Boolean features and upon looking at some results of the Boolean joints
I saw some mesh geometry that I thought would be “bad”. See pics of a section of model ( I always thought this was bad geometry that resulted in naked edges?)

But then I brought this into another app Rhino, to take a closer look at it ( I thought maybe there were some " sliver" triangles I wasn’t seeing) and use the mesh checker in Rhino.

I didn’t find any “slivers” and oddly enough Rhino said this was a good mesh and after joining and welding there were no naked edges in the mesh?

Can some one tell me some more about this, is my understanding of what constitutes a “bad” wrong, or is type of connection valid for Boolean joints.

Thanks

GEOMETRY PIECE.jpg
GOMETRY PIECE 2.JPG

Attachments

GOMETRY PIECE 2.JPG

Ngons cannot exist in Zbrush at any time, so if a boolean operation would result in a polygon with > 4 verts, zbrush inserts geometry to force the polygons into quads and tris. Some of those resulting polygons may be very small and not immediately apparent.

This certainly results in geometry that is not suitable for sculpting, but whether it is “bad” depends on what you want to do with it. It would, for instance, be perfectly suitable for 3d print. But if you want to do further sculpting or smoothing on it, you’ll have to remesh the object into a more uniform quad flow, for instance with dynamesh or Zremesher.

Thanks Scott,

I did not see any really small non apparent polygons when I zoomed in on the wire frame mesh in the pic on the bottom In my first post.

zb.png

Also a related question:

Should you need to remesh, or dynamesh, your subtools before doing boolean operations on them?

So far I found this is the only want to avoid defects in the mesh, especially when booleaning two subtools that were themselves the result of previous booleans?

Attachments

zb.png

Zbrush booleans don’t produce meshes with “defects”, though the geometry may not be suitable for some purposes. If you look close enough at the geometry (turning on dynamic subdivision can help you see the geometry when smoothed, which may reveal things not readily apparent otherwise), you’ll see that every polygon is either a tri or a quad–even though some may be too small to see easily. Ngons cannot exist in Zbrush ever, so if there appears to be a polygon with more than 4 verts, you need to look closer.

For instance, the edges that appear darker in your original illustration? I guarantee there are actually very slender polygons there that you probably cant see unless the mesh were smoothed.

The boolean algorithm doesn’t always make the same choices a human might make when deciding how to join vertices, but that is common to boolean operations in many programs. It’s similar to decimated geometry in this sense, but Zbrush only divides the geometry at the joining polygons, leaving the rest of the object untouched.

If you want your boolean result to be smoothed, make sure it is smoothed prior to generating the Boolean mesh either by subdividing the subject meshes sufficiently, or switching on Dynamic subdivision and enabling DSDiv. This creates a smoothed object and limits the “bad” geometry to a very small area at the intersection of the shapes.

This geometry, like decimated geometry, is fine for printing, but you cannot sculpt cleanly over it. If you need to further work on the boolean mesh, you would first need to remesh it using any of the various methods for doing so.

There is no automated topology generation feature in Zbrush or any other program, that produces geometry as clean and efficient as something modeled from scratch by a human. Booleans lend themselves best to a mid to high poly workflow where you’ll be remeshing frequently, and aren’t overly concerned with geometry at the vertex level.

Thanks Scott!

I totally get what you are saying about boolean operations and resulting geometry compared to Remeshed geometry.

Specifically what I was doing tonight was trying out the live boolean feature , booleanig some meshes:
For eample one was about 2mil. polys and I was adding another one to it that was a small part of 200,000.

I wasnt concerned about being abel to sculpt over the joint, I just wanted a good mesh for 3D printing.

So after I did the boolean in ZB. I exported the resulting mesh to Rhino 3D, where I normally join meshes together via boolean operations.
and I used the mesh checker in Rhino and it found some naked edges and non-manifold edges.
(see Pic below of the Rhino mesh check showing a nonmanifold mesh area in violet)

So I was wondering what was the cause of this? I checked both the meshes before the boolean and the were both good, and I had no
coplaner issues.? (one of the meshes was itself a resulr of a previous boolean operation) I am trying to figure out whats going on and how to best boolean in Zbrush.

I think what I found was when I took thoes two subtools and remeshed them or dynameshed them, before I did the boolean in ZB then there were no errors like below. So wondering if I can some how avoid that step?

naked edge.jpg

Attachments

naked edge.jpg

Next time, switch on dynamic subdivision on your freshly booleaned object in zbrush. It will reveal anything like an unwelded point in the form of a hole in the mesh, and reveal any polygons too slender to detect with the naked eye. There are mesh errors that can crop up, and zbrush has its own fix for these (tool> Geometry > mesh integrity > check/fix mesh).

I’m skeptical that the boolean process is generating unwelded geometry–much more likely that it’s just generating awkward geometry and points are becoming unwelded as part of the import/export process between programs, which is not unheard of–but my experience with Live Booleans is as new as anyone else’s right now, so who knows.

There are however settings in Preferences> Boolean that determine the threshold for dealing with things like co planer faces and slivers, if you think that might be applicable to your situation.

I tried to adjust the boolean preferences for slivers. It eliminated some of the non manifold type of geometry situations.

But I don’t know why but the ZB. boolean algorithm is giving me results like this at areas where there are 90 degree joints.

In this tiny part of the booleaned mesh, the line in the pic below is actually a mesh face.
FACE 2.jpg

“Next time, switch on dynamic subdivision on your freshly booleaned object in zbrush”

I tried that and here is what it shows in the problem area
DYNAMIC SUB DIV PIC.jpg

I guess those dots represent sort of a floating vertices at the end of a sliver?

Just wondering why I an not getting a good result on a seemingly straight foward boolean in ZB that works fine in Rhino 3D?

But I can say that ZB obviously has no problem working with this type of boolean result , because I can use remesher no problem and then its all cleaned up. I just would prefer not to have to remesh everything before sending to 3d print.

Thanks

Attachments

FACE 2.jpg

I found that Autodesks - NetFab app. (free) fixed all these mesh issues with its repair tool.
Rhino repair tool was unable to do anything.