ZBrushCentral

Dynamesh Bug(?) in ZBrushCore

I may have found a rather serious bug in ZBrushCore: the Dynamesh resolution limit seems to lower when handling complex meshes, specifically humanoid meshes. Here are the steps to recreate the bug:

1a) First, let’s prove that Dynamesh is working properly on simple meshes, just to prove that ZBrushCore isn’t totally bugged. Open ZBrushCore and open the Dynamesh Sphere 128 default project. Turn on Polyframe (shift + f) so you can see any resolutions changes. Turn Dynamesh to 256. Sculpt on the mesh a bit and retopologize (ctrl drag on the background). Your ZSphere should now have about 4x as many points. Good, it’s working.

1b) But let’s make sure it’s working at the higher resolutions. Turn Dynamesh to 512, sculpt on the mesh, and retopologize. Did you get 4x as many points again? Good. Now turn dynamesh to 1024, sculpt on the mesh, and retopologize one last time. Again, do you now have 4x as many points? Awesome! Dynamesh works just fine on simples meshes.

2a) Now let’s try that on a more complex mesh. Open lightbox, and open the DemoSoldier project. Make sure you’re working on the DemoSoldier subtool, as that’s the subtool that looks humanoid. Now, solo the subtool, 'cause the soldier’s body is the only subtool we’ll be playing with.

2b) Now to Dynamesh. Turn off Dynamesh projection, as that will speed up our test. Then turn on Dynamesh. Should work fine so far. Turn up Dynamesh to 256, sculpt a bit, then retopolgize. Should still work fine, you’ll have about 4x as many polygons as you did before. Nice. You’ll probably have around half a million polygons. (I have a little over 600,000 right now.)

2c) Now for the bug. Turn up Dynamesh to 512, sculpt a bit, then retopologize. The points will move around a bit …but the total number of vertexes won’t significantly change. You’ll still have around half a million polygons. Just to test it a bit more, turn up Dynamesh to 1024, sculpt a bit, then retopologize. You’ll STILL have around half a million polygons. When working with a sphere, we could have any level of detail we wanted. When working with a humanoid, we’re stuck in the half million range.

3a) Let’s make sure the bug has to do with humanoid shapes, rather than some other factor. Mask the soldier’s chest from the rest of the body: no legs, no arms, no head. Then, go to the Subtool menu and “Split Unmasked Points”. Now we just have a chest, really just a block kind of similar to that old Dynamesh Sphere. So, retopologize. If you’re still at a resolution of 1024, you’ll jump from less than 200,000 points to having over 2 million.

So, have a found a bug in ZBrushCore’s Dynamesh? Did I find a feature? (Is Core’s Dynamesh supposed to have a hidden limitation?) What’s going on?

Thanks,

–Saib

In general, Dynamesh is not for adding detail. Its purpose is to rough out the overall shape of the model so you can then remesh (with Dynamesh off) to get an even distribution of geometry. Next, use subdivision to get enough geometry to add more detail.

You’re right about ZBrush’s intended workflow: Dynamesh the rough shape, retopologize, project new topology onto Dynamesh model, work with subdivisions. Except… ZBrushCore doesn’t have any retopology features. Not even ZSphere retopology or any kind of projection. ZBrushCore forces the artist to choose between working with Dynamesh or working with subdivision levels.

Now, I could get more subdivision levels by subdividing the Dynamesh’d model. However, if I discovered that I needed more topology in an area, the only way to get new topology would be to reDynamesh the model, as I can’t just create a new base mesh and project. And with this bug, I’d actually lose most of the details, because the bug is lowering the Dynamesh resolution.

Anyways, all of this irrelevant to my original question. Dynamesh being intended for a certain purpose doesn’t mean that a bug doesn’t matter. Which takes us back to my original question: Have I found a bug in ZBrushCore’s Dynamesh? Or did I find a feature? (Is Core’s Dynamesh supposed to have a hidden limitation?) What’s going on?

Thanks,

–Saib

It’s not a bug, it’s a technical restriction and applies to the full version as well as ZBrushCore. If your model has parts that are long and thin (such as limbs) then you will probably not be able to get as high a polygon count using DynaMesh as you can using a “block” mesh such as a sphere or a cube.

DynaMesh works by placing the model inside a virtual cube which is divided into smaller cubes (the number depending on the resolution). Where the surface of your model interacts with the smaller cubes, the new topology is created. If your model goes outside the main cube then it will be scaled down to fit. This can mean that you can actually lose resolution (and detail).

The point of DynaMesh is to give you even quad topology which is good for sculpting. It is intended to help you in the initial stages of modeling, not provide a solution for a finished model. If, after starting sculpting, you find that you need more resolution in one part of the model then you can:

  1. Go to the lowest subdivision level (if you have divided the model).
  2. Mask everything except the part where you want more resolution.
  3. Press Tool>Geometry>Divide.