Hi
Is there a way to stop animated rigs or cached data from calculating when they are hidden? In 3dsmax its always work that way even in isolated objects or hidden layers.
Stop maya from calculating hidden character skin and animation
This is a bug. Check that all of your meshes have valid materials assigned, including base Orig meshes. Invalid or missing shadingEngine assignments can cause unneeded evaluations. lambert1 is fine for meshes that aren’t displayed.
If you’re using dynamics, make sure all of the nCloth, etc. nodes are hidden too, or disable the nucleus or nCloth, etc. nodes directly. If any part of a nucleus system is visible, it’ll calculate everything.
Unwanted calculations are very annoying bugs, since they make maintaining performance in more complex scenes very painful. If you can isolate any specific issues, be sure to report them. http://download.autodesk.com/us/support/report_a_bug.html?SelProduct=Maya
In 2016 visibility doesn’t have much of an effect during playback any longer, and that’s by design. Set nodes you don’t want to evaluate to be frozen instead.
No, visibility usually has the normal effect: meshes that are hidden don’t have their deformers, etc. evaluated. Moving joints doesn’t calculate skin deformations for hidden meshes, expensive wraps stop happening, etc. It would be a devastating, universal performance regression otherwise. The EM is there to determine plug dependencies in advance so they can be parallelized, not to just evaluate everything and expect the user to turn hundreds of Frozen flags on and off themselves if they want reasonable performance. That would be crazy.
The only case I’ve seen that I can recall off-hand where hidden deformers were being evaluated was where something was wrong with the shadingEngine attachment, which is usually fixable by reassigning materials and making sure intermediate meshes have some material assigned.
(Aside, I haven’t found any real documentation on the frozen flag. It doesn’t make sense that it would just stop the node from being evaluated–we already have HasNoEffect for that. It seems to be pretty broken: after setting a lattice to frozen, the mesh is still affected by the lattice, but in a strange and very broken way. This and this say frozen is for dealing with “problematic” nodes, eg. dealing with bugs caused by the EM, though, not that it’s a replacement for Maya figuring out what needs to be evaluated.)
Hi guys thanks for answers.
I tested that with 3 different cases in Maya 2016 sp3: A multi character file , a Realflow alembic cache and a Speedtree mc2 cache tree. All of them hugely slowdown the maya playback and playblast even with their layer being hidden [with/without texture].
Not have tested this but I don’t remember having those issues in previous versions of Maya.
Sorry, can’t help with caching stuff, it’s mostly deformers and dynamics I’ve looked at. You can try disabling parallel evaluation (set “Evaluation Mode” under animation settings to DG). In theory this should give the pre-2016 behavior. Even if it doesn’t help the performance issue, it’s good to include serial and DG mode tests in bug reports, since they seem to treat performance regressions in DG mode as higher priority than in parallel mode (a new feature).
Can you be more specific about what a “multi character file” is? Two simple characters with smooth binds? Complex rigs with corrective blend shapes and soft mod deformers? Cached nCloth? There’s a wide variety of things that might include…
You can also use the profiler to check more precisely what’s being evaluated. It doesn’t tell you why something’s being evaluated–it won’t tell you that a missing shading network connection is triggering it–but most of the time it’ll at least tell you which node is being evaluated.
Visibility at this stage is not used the same way by the new EM - see this . It is suggested that it is coming, but isn’t in place yet. So ‘frozen’ is what you should use. Or presumably change your EM to DG mode.
I’m sure it behaves differently, but it’s just not the case that visibility doesn’t prevent things from updating. It does. It’s simple to test: create a couple high-poly spheres, wrap one to the other, and move the sphere around to see the framerate. Hide the wrapped sphere, move it again, and everything is fast. Check the profiler, and see that the deformed sphere and its wrap deformer aren’t being evaluated. The same works for skin clusters and every other deformer I use.
I’m sure there are cases where it doesn’t work (and maybe caching is one of them, which could be causing the OP’s problem), but it works fine for deformers.
The wrap deformer isn’t GPU enabled and will tend to collapse the evaluation packing, so it’s not a good metric in general for the novel modes; on top of that it’s a mesh co-dependency and easily triggers EM clustering.
As for visibility having an effect or not it certainly doesn’t the way it did for DG mode. In DG mode an entire branch of the graph would be pruned if it univocally and solely reached a hidden item (say a locator), in EM that will still evaluate and you can both measure it and see it in the profiler.
Meshes are a slightly more complex deal as they are end-of-chain (assuming no meshes co-dependencies), but it certainly isn’t as straight forward as it was.
At the end of the day if it’s EM mode visibility IS something that you need to test and profile and it having or not an effect is simply not something you can take for granted in black and white.
(Maya hard crashes my PC, and then I have to retype my response since this ancient forum software doesn’t save drafts. grumble)
“Visibility doesn’t have much of an effect on GPU-enabled deformers” might be true, but that’s a small set compared to “doesn’t have much of an effect”, which makes it sound like visibility doesn’t do anything at all. FYI, I also tested a skin cluster in playback, and it’s also not evaluated when the mesh is hidden.
Anyway, I’m not saying visibility works identically, and the OP should definitely try switching ro DG mode, and seeing if the frozen flag (or HasNoEffect–I still don’t know how frozen differs from that) is any help.
I know this thread has been dead for a while but I’ve been having trouble with this for a few days now and wanted to post a small easy fix:
My scene is mostly concerned with GPU acceleration of skinClusters and Clusters, and I found that swapping between the visibility of a high res skinned mesh and a low res sliced and parented proxy seemed to have very little effect ( if any at all ) on playback rate of the character rig during animation… at least in Parallel + GPU evaluation mode… and I could see all those deformer nodes dropping down big chunks in the Profiler even with their meshes hidden. In DG mode of course, there was significant improvement between the two.
this totally confused me so I dug deeper…
so… for some reason, it seems that parallel evaluation by default ignores any of your object visibility settings during playback… unless you implicitly tell the evaluation manager not to do so!
follow this menu tree:
Windows > General Editors > Evaluation Toolkit > (04) Custom Evaluators tab > invisibility ( set this to TRUE )
My scene now runs exactly as expected in parallel eval mode. As I toggle between display of the hi res skinned geo and the non skinned parented stand-ins the scene frame rate increases a huge amount.
hope that helps.
seems like the EM is a beast with not much online info right now…
This thread is two years old and the invisibility evaluator didn’t exist back then, but it’s enabled by default in Maya 2018.