Quantcast
Channel: mel wiki
Viewing all articles
Browse latest Browse all 610

Evaluation Graph: Node types to avoid

$
0
0
When running the evaluation graph in parallel mode, there are certain node types that will stop it in its tracks, and push it back into serial mode. These nodes include:

Expressions

Avoid them, they are horrible for the EG. Try to re-write as nodal networks. They are flagged as "untrusted".
However, if all the outputs of an expression are directly related to the inputs, they can be set to "globally serial".
For example, this is bad, since it's using getAttr : Never use getAttr in an expression this way, if you want it to work in the EG. Plus I'm not sure if sin is ok either...
float $val = `getAttr foo.tx` * sin(6);
spam.ty = $val;
However, this would work:
spam.ty = foo.tx*6;
Since the output is directly related to the input, with no external calls.

Python Scripted Plugins

Since Python Scripted Plugins use Python, and Python is inherently single-threaded, any node it hits will throw the EG back into serial mode. Re-write as c++ plugin. If they are used, they're evaluated as "globally serial".

Cycle Clusters

While a 'cycle cluster' isn't a node, it's either a node, or collection of nodes that has a cycle. This is different from things that cause 'cycleCheck' warnings: A simple constraint can cause a cycle cluster. Sometimes they're unavoidable, but if you can, they should be, since they'll force the EG back to a serial mode during their eval.


Viewing all articles
Browse latest Browse all 610

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>