View Full Version : How can Z-Brush handle so many polys?

Mikkel Jans
10 October 2004, 07:40 AM
Does anyone know why Z-Brush is able to handle so many polys?

Frenchy Pilou
10 October 2004, 10:31 AM
...a good coding ! :cool:

10 October 2004, 10:53 AM
M A G I C !

10 October 2004, 01:34 PM
Does anyone know why Z-Brush is able to handle so many polys?
im gonna take a few guesses.

zbrush actually doesnt render full models during tumbling THAT much faster than other apps. where it excels at is editing large models.
one thing that probably speeds it up is the quick and dirty hacks that zbrush has. this lets zbrush refresh much less information on screen during editing of geometry, and speeds things up a lot. multithreading helps a bunch. then theres the hiding features. it seems to me that it actually deletes geometry from the model when you hide. so you can work faster, because there is a lot less information for zbrush to go through when editing. other applications just hide polygons, but never detach them. so even if you use a magnet transform, the geometry that was hidden will still be affected.
zbrush also doesnt have smoothing of normals. when you get into the millions zbrush doesnt have to update as much.

theres a lot more in there, and these are just guesses from seeing how things work.

10 October 2004, 01:36 PM
A big part of it also is that only one model is live on your canvas at any one time, while with most other traditional 3d applications, all of the models in your scene are "live".

10 October 2004, 03:46 PM
M A G I C ! Not just magic, Elfin magic!

10 October 2004, 05:13 PM
What about when you are tumbling the model in 3d?

A big part of it also is that only one model is live on your canvas at any one time, while with most other traditional 3d applications, all of the models in your scene are "live".

Frenchy Pilou
10 October 2004, 07:58 PM WingedOne said only one object is "living" at the same time in the canvas:)
But... you can as the other progs: Move, Scale, Rotate all objects between them in the same time but just that!
It's the Multimarkers Mode!
In this mode you can't modify indidualy the structure of an object, just make an uniform transformation :)
In this mode they live in the same time :)

In normal Mode of course you can modify the strucutre of one object of 10 millions polygones!
It's for that there are some modes !
Imagine to manage 100 objects of 10 millions polygones each in the same time :rolleyes:
In 5 years maybe :scream:
Zbrush is a tricky prog!

Hope this help in your comprehensive research :)

10 October 2004, 07:25 AM
I've done a little bit of research on how you can get extremely high-poly models going at interactive speeds.. there are a few things that zbrush has going for it in terms of not supporting features that you have in full-fledged animation programs. They also probably have same nice, tight code.

A poly mesh is just a bunch of points connected together into polygons. So, you've got to store the points, and the connectivity. There's not really a whole lot you can do to save on memory for the points and still be fast other than limit the precision. They do have a highly regular topology, because as I understand it, they use subdivision to generate the high-poly meshes you work on. There's a way in OpenGL to tell the graphics card that a certain part of the model hasn't changed, and keep the data right on the card. The subdivision could be used to cleanly note which parts of the model have been changed and which haven't, and keep as much on the graphics card as possible. It's also nice for level of detail display.

As for how much you can keep on the card, lets say they've got 8,388,608 quads, and they're using a float for each XYZ component, which ends up being 3 bytes. We'll further assume that the connectivity is a somewhat wasteful 4 bytes per quad. That ends up being about 58 MB for that huge mesh, which would fit nicely in the memory of many modern graphics cards - with lots of room for keeping it in separate sections, etc.

They also don't have to keep animation information around for each shape - as far as I could tell, they don't have an API or a generalized DAG for data flow. They have a specialized task, and they do it really well. In CS, there's a saying that you can solve any problem by adding layers of abstraction - except for having too many layers of abstraction.. :).

CGTalk Moderation
01 January 2006, 01:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.