View Full Version : performances - maya
masterbubu 12-01-2009, 11:25 AM Hi all,
I was wondering what would be faster?
1.point constraint an object1 to object2.
2.direct connection between object1.translate and object2.translate.
3.parent object1 to object2
And is there a way to make one object be an instance of anther ? meaning they
both share the same transformation node?
Also can anyone put a short explanation about "Node's Evaluation Order".
tnx,
|
|
BoostAbuse
12-06-2009, 07:52 PM
Hi all,
I was wondering what would be faster?
1.point constraint an object1 to object2.
2.direct connection between object1.translate and object2.translate.
3.parent object1 to object2
And is there a way to make one object be an instance of anther ? meaning they
both share the same transformation node?
Also can anyone put a short explanation about "Node's Evaluation Order".
tnx,
Hardly any performance difference at all between the two, you'd be splitting atoms trying to find a significant performance difference between any of those methods. With that said they each serve the same purpose but obviously it depends on the workflow and flexibility you need as well.
Edit -> Duplicate Special -> Options and switch it from Copy to Instance. This instances the transform but shares the same shape. If you're looking to have shapes that share the same transform then you'll need to look at the `parent -s -r` workflow. Check out the parent command in the docs for more info.
Node evaluation order just means how Maya evaluates the data in the graph so you can define the order in which the inputs and outputs of an object get evaluated as the graph gets walked. In the example of deformers typically how you order the deformers i.e. blendshapes and skinCluster or non linears will affect how the result is calculated and what the final output would be.
masterbubu
12-07-2009, 01:58 PM
tnx
i have heard that constaints slows down the rigs
what do you think about that?
BoostAbuse
12-07-2009, 02:24 PM
tnx
i have heard that constaints slows down the rigs
what do you think about that?
Hogwash I say. Constraints are quite fast and rarely ever the bottleneck of performance in a rig.
theflash
12-08-2009, 03:32 PM
I think people say constraints are slow based on the scene with hundreds and hundreds of them or more may be. But I doubt that even with few 100s it will create bottleneck in performance.
Leffler
12-08-2009, 04:03 PM
I would disagree. My experience is that the rigs with the most contrains are the slowest and vice versa. Also my own rigs slow down when I just donīt care about constrains and constrain "everything".
With that being said, I havenīt done any tests in performance about it so I donīt have any "proof" about it, itīs just my experience. I would still recommed to take it easy with the constrains and parent as much as possible, but thatīs just what I think ...
// Otto
theflash
12-08-2009, 05:27 PM
I think it's generally the geometry data that slows down maya. If you use the proxy geo and have many constraints it should be ok. That being said, you should always try to be wise in using nodes to get into a good working habit. So that when you have a scene with many rigs it helps with the speed issue. But if you are doing a quick project on a short film scale I won't bother too much with the speed issues and I would focus on gettings things done.
Leffler
12-08-2009, 07:14 PM
I agree with that my friend, I would say that highpoly meshes + expressions is the 2 biggest speed-issues. After that, constrains ;)
masterbubu
12-08-2009, 08:47 PM
interesting, does maya keeps dirty bit for ik solver, driven keys, aim constraint ?
its make no sense that maya evaluate them every frame.
theflash
12-08-2009, 10:22 PM
If maya does not update objects on every frame (whichever is set to dirty) how can animation be created?
So what maya is doing makes sense.
tonytouch
12-09-2009, 06:59 AM
if you use "many" constraints , rigs slow down a little bit ... but i must say , i always used large numbers of constraints , and my animators always said , my rigs are very fast .
- i would say , parenting is the fastest way , and whereever possible the best choice .
- direct connections are 2nd fast , as there is no calculation like in a constraint
- pointconstraint is the fastest constraint , orient and parentConstraints are slower .
constraints are ( unfortunately ) not yet multithreaded in maya , so only one CPU_core will calculate the transform_matrix of your ovbject - hopefully this will change , in the future releases of maya.
expressions are ( in most cases ) really slowing down everything , so focusing on node-based-setups is my suggestion - in order to create fast performance-rigs , some kind of expressions are quite fast ... and some are extremely slowing down the performance .
I agree with Simon. My order of choice would be:
1. parenting
2. direct connections
3. utility nodes
4. driven keys
5. constraints
6. expressions
Usually, I would try to use direct connections or parenting instead of constraints, specially for situations with two targets, like ik-fk switch. I would use a blend node instead, which requires for switching objects to be in the same/similar local space. It is more stable then constraints (my animators working with a rig with constrained switches have experienced flipping problems).
And I would love to know if somebody actually did a performance test for those different ways of connecting objects...
BasHe
12-09-2009, 02:20 PM
My knowledge of how things work exactly are a bit limited, but from what I know, it would make that much of a difference between direct parenting and ANY constraint. How maya works, in direct parenting is as follows:
for any object, the transform-matrix of that object is concatenated via dot products with all the parents until it reaches the world-coordinate system. Then the concatenated transform matrix is applied to the object (or vertex point in the case of joints)
I really dont see how constraints should work that much slower. Instead of concatenating the matrices of the parents, you`d be doing the same thing, but then to a matrix you are appointing to it via a constraint. Perhaps that there would be a little extra calculation if you have maintain offset on or are blending between various influences.
Direct connections are the fastest, I guess, because you dont need extra dot multiplications. You are reading the values from another node directly.
Bas
masterbubu
12-09-2009, 02:41 PM
I agree with BasHe.
I think that direct linking is the fastest method, cause we only calculate
the transformations once for all connected nodes.
CGTalk Moderation
12-09-2009, 02:41 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.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.