Consistent Modifier Chains

Consistent Modifier Chains

Some modifiers need to be above the object (e.g. mirror) others below (e.g. subdiv).

Also in some cases it's not clear whether you should do something like:

+ Mirror
+-- Geometry
+-- Subdiv

or
+ Mirror
+-+ Geometry
---+-- Subdiv

It seems to me this should be cleaned up and made consistent.

I.e. geometry -> modifier -> modifier always leads to the same hierarchy.
 
Last edited:
Hi,
I think you are mixing up two completely different object families here. "Creatore" and "Modifier" objects.

-Creator objects (yellow icons):
They create a new mesh out of their child objects. The sweep object for example creates a polygon mesh out of two spline objects. Or the chain object creates a new mesh out of a polygon and a spline object.
A creator objects can therefore have any type of objects as input (child objects) and creates a new polygon mesh out of them.


-Modifier object (blue icons):
Modifier objects are always child objects of a polygon object. For example you have a mesh with three modifiers as sub (child) objects. Then the three modifier object modify the parent mesh like in an assembly line one after another. A modifier object hereby has a mesh as input and a mesh as output.


As you can see there is a big difference between creator and modifier objects in Cheetah3D. Within these two families the objects are consistent.


Bye,
Martin
 
I certainly am confusing the two, and that's my whole point.

"A modifier object hereby has a mesh as input and a mesh as output."

I understand that Cheetah draws this distinction but while it may be important for implementation, it shouldn't matter to the user. I'd suggest that if modifiers contained their operands (rather than being contained by them) it would all be much simpler -- meshes and creators would be the same thing.

Benefits:
* Users don't need to know whether they're using a creator or a modifier
* It's always clear which order creators/modifiers act in (e.g. symmetry -> mesh -> subdiv is ambiguous; subdiv -> symmetry -> mesh is not).
* Some modifiers can be changed to accept multiple operands to simplify scenes (e.g. a single subdiv can act on multiple meshes, reducing the need for duplicate modifiers and allowing models to remain nicely organized)
* Richer functionality can be added to modifiers cleanly (e.g. symmetry might learn to mirror bones and constraints)
* (Possibly) the program's internal architecture can be simplified

Note: even accepting your distinction, in most cases symmetry acts as a modifier and not a creator.
 
Last edited:
OK. So the big difference here is that symmetry (creator) isn't guaranteed to generate a consistent underlying raw polygonobject -- otherwise the same tool could do both things.

But you end up with similar issues for *everything*.

Suppose I wanted to use the "twist" modifier to affect an animation (especially particles, which I know are missing from Cheetah, but may not always be). I will need a creator and a modifier version of twist.

In essence, some functions need raw polygonobjects as inputs (e.g. skeleton) and there's no getting around that -- you can use anything you like while working on a model, but eventually you'll need to convert it to a raw polygonobject. Leaving that issue aside (it can be handled by only allowing certain tags and/or modifiers to be attached to raw polygonobjects), there's really no reason to have both.

It follows that you can't attach a skeleton tag to a symmetry directly (because, for example, the symmetry may gain and lose vertices if its constituents are animated). But it really doesn't matter whether we're talking about a symmetry modifier or creator, unless one has other hidden constraints that the other lacks (e.g. one can only act on non-animated objects).
 
Last edited:
Back
Top