Musings on why Zbrush does not have the ability to SELECT POLYS... and how it CAN

below is just a facebook post that i made discussing this topic… i think i hit upon the reason why there is not traditional polygon selection to perform operations as in other traditional modeling apps like maya and 3dsmax and it has to do with why zbrush is so fast in comparison.

i also propose, at the end, a way for zbrush to implement a poly selection scheme that would enable it to keep its speed advantage while not forcing users to constantly hide/mask/makepolygroup as a substitute.

all this is just a (educated??) guess on my part so take it with a grain of salt:

awww, i had a zbrush thought that i would talk to David Ikeda with but haven’t seen him around these parts in a while.

anyway, the zbrush thought was my irritation with the fact that zbrush does not allow you to SELECT POLYGONS?!?! WTF right?!?!

in the new zmodeler tools, there’s a way to tag polygons temporarily as a white polygroup and that works well enough but still the primary ways of dealing with this in other contexts is to:

  1. make new polygroups

  2. hide anything you don’t want to affect

  3. mask off polys you don’t want to affect

  4. any and all combinations of the above… and srsly, there’s a lot of ****ing interplay there.

this has always always always bothered me… one of the things that i DESPISE about zbrush is how it does things in certain ways that may not be conventional or optimal and it leaves the user to ask… WHY!!! WHY WOULD YOU DO THIS??? and what’s worse is that they rarely give you an explanation about anything.

with dave ikeda, i kinda confirmed that the most likely reason for the display artifacts where some polys don’t get updated and end up remaining on screen as ghosts and smears probably has to do with why zbrush is so fast… it focuses its most heavy book keeping tasks for the polygons directly under your BRUSH.

i think this is a manifestation of a computational concept that came up recently in regards to bitcoin mining but pops up periodically every now and then - the notion that if a computer algorithm is allowed to MAKE MISTAKES, that if in non critical parts of the process, it’s allowed to fudge the results or elide of the details, not only can you make speed gains, you can make HUUUUUUUUUUUUUUUUUUUUUUUUUUUGE speed gains.

and so in regards to the artifacty screen redraws in zbrush, it exists in service to raw, ungodly power and speed.

and it occurred to me that the lack of being able to SELECT POLYGONS probably exists for the same reason.

so to my non programmer, laymen’s eyes it seems:

  1. even with the polymodeler toolset where zbrush is being tasked to do “traditional” poly modeling tasks with individual and handfuls of polys, it uses a TEMPORARY POLYGROUP to facilitate selection… this is meaningful.

  2. when you create a polygroup, you partition off a chunk of the model so that zbrush can attend to just that chunk… instead of having to attend to the whole model which can literally be tens of millions of polys.

  3. same thing with hiding and masking - it allows zbrush to eschew and ignore large chunks of the model and only deal with unmasked and unhid portions.

  4. so maybe the way other polymodelers do it, the act of selecting polygons is very computationally heavy - that it forces the computer to keep an index of EVERY polygon to keep track of the few polygons that you want to select and keep selected… and it does it in a way so that you can’t ignore the rest of the mesh.

i feel like i’m in the ballpark but not quite there because it seems like even with unmasked parts of the mesh, you’d still need to keep track of the rest of the mesh in a similar way as selection… OHHHHHH… unless the kinds of operations that i’m thinking of (like extruding) are not available just to unmasked polys! again, the zb workflow is constantly one of making polygroups by means of masking… so then, it’s only for POLYGROUPS and VISIBLE where these operations are available… because zbrush can ignore huge chunks of the model.

i think that’s it… and that’s why certain operations are NOT possible while working on unmasked polys.

i know pixologic probably thinks of this kind of information as their “secret sauce” but i think most of us would arrive at this kind of explanation sooner or later… just wished they would be more explicit about these kinds of things in like an FAQ so that the users aren’t left to wonder why by themselves.

having said all that, i still wish zbrush would implement a poly select system… but using their temp polygroup system from the polymodeler tools.

so internally, it’s treated EXACTLY as it is in zmodeler modeling - just a temporary polygroup.

but just implement that EXTERNALLY to the user as a poly selection system. there’s no necessary reason that that needs to be visible to the user as something else other than a simple poly selection tool.