ZBrushCentral

Making A Geometry-Constructive Brush?

Hi All,

I’ve been thinking a lot recently about how great it would be to have a switch toggling a constructive sculpting mode, in which any deformations that push vertices outside a certain tolerance of their original positions would automatically tesselate new geometry to maintain good topology, as a bonus allowing good base meshes to be created in Z-Brush without the twisting problems of Z-Spheres.

I’ve never made Z-Scripts before, but my brief look at the command reference makes me think that kind of low-level access to Z-Brush’s functionality isn’t possible at the scripting level. Am I wrong? Does anyone know how I might start working on such a project?

for your twisting problems, try “zsphere Tweaks” Plugin.
For me it is komplete new feeling for zsphere.
But your Idea is great, too :wink:

It’s not actually possible to subdivide part of your model and maintain ‘good’ topology. The reason is that triangles need to be added at the border between the lower res area and the higher res area to support the extra subdivision. Not only do these make a mess of the overall topology but you would lose your lower subdivision levels in the process.

Even ignoring the topology problems, it’s not possible to achieve the sort of thing you describe using zscripting. You’re not the first to suggest this kind of feature and I did produce a zscript solution a long time ago but it is far from instant. The thread is here if you want to try it (it works ok with 3.1):

http://www.zbrushcentral.com/zbc/showthread.php?t=28045

@JackMcRip: Thanks for the tip! I’ll try it out, as any quick fix to Z-Spheres would be helpful

@marcus_civis: By “good topology” I mainly meant vertex density, although I see no reason why you couldn’t also have a scheme which maintains quads and properly affects all subdivision levels, as well. Extrusion is a good example - if you extrude a face on the base mesh, little extra work needs to be done to calculate the effect on subdivisions. As long as you maintain discipline on how the mesh is affected, it can work. I just think the standard input-based interface for such operations is clunky in programs like 3DS, and there should be a way to do it with a brush.

However, it isn’t surprising that you can’t do that with scripting, so maybe I’ll just have to get into Blender development :wink: