|10 October 2004||#4|
Gone travelling :Dportfolio
Join Date: Mar 2002
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||#5|
Michael L. Fisher
Data Entry Clerk
Join Date: Apr 2002
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".
Artemis is pouncing on your ninjas.
|10 October 2004||#7|
Matte Painter/Modeler/Texture Artist/Illustrator
Santa Clarita, USA
Join Date: Apr 2003
Sounds like a good explanation...
What about when you are tumbling the model in 3d?
"A nickel ain't worth a dime anymore."-Yogi Berra
|10 October 2004||#8|
Join Date: Jan 2003
...as 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
In 5 years maybe
Zbrush is a tricky prog!
Hope this help in your comprehensive research
Is beautiful that please without concept!
Last edited by Frenchy Pilou : 10 October 2004 at 09:04 AM.
|10 October 2004||#9|
Join Date: Sep 2004
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.. .
|Thread Closed share thread|