Hello Maya users, my name is Matt and this is the Maya Learning Channel.
So, not too long ago I did my first top 10 list, and it turned out to be pretty popular.
That got me thinking: what else makes for a good Top 10 list?
Then I realized, there’s one topic that affects every single Maya user out there: speed.
So today, I bring you my top 10 ways to make Maya go faster.
Now, there are a lot of complex API calls and back-end tweaking you can do
to squeeze every bit of speed out of your software.
That’s NOT what I’m going to focus on today.
Instead, I’m going to aim for the “quick wins” –
simple things you can try in the UI that can reap huge benefits.
So without further ado, let’s get started.
If you find your Viewport slow, one of the quickest and easiest ways to get a 10% bump
(sometimes even more) is to switch off some of the display settings up here
in the Panel Toolbar.
The ones with the most impact will depend on your specific hardware and scene setup,
but the most common culprits are Shadows, Screen Space Ambient Occlusion,
Motion Blur, and Anti-Aliasing.
To demonstrate, let me just go up to the Display menu and turn on Framerate.
Now if I play the scene you can see I'm getting about 8-9 frames per second...
...or about 11-12 if I just move the camera around.
However, watch what happens if I turn off anti-aliasing...
I get all the way up to almost 30!
Sure my image might be a little bit jaggier,
but depending on what I’m doing that’s probably an acceptable compromise.
And if I lose the ambient occlusion and shadows, I can get it up to almost 60fps!
Obviously, you’ll need to decide for yourself if the trade-off is worth it,
but if so then these are three of the quickest wins you can get performance-wise.
Or you can try leaving them on and enabling Cached Playback.
Although it won’t help at all with interactive performance,
Cached Playback will often allow you to leave on all these Viewport features
while still getting anywhere from a modest to a major bump in playback performance
depending on your specific scene elements.
More on that later on in this list.
Did you know there’s a single button in the Hypershade
that can make it run multiple times faster?
So if I open my Hypershade now,
notice how much of a delay there is before I can do anything in it.
The reason this is so slow is because of the live swatch previews,
which generate automatically whenever a material is changed.
However, you can disable that via this On/Off button in the top left,
which will return the Hypershade back to full speed.
The more swatches you have in your scene,
the faster this one little button will speed up your performance!
That said, even when this button is off, I can still generate individual swatches
by right-clicking them.
Similar to Number 2, you can use the Pause button in the main UI
to stop all updates of the Viewport until you unpause it.
This might seem silly at first, but suppose I wanted to turn on these three lights.
Look how long it takes for the Viewport to update each time.
Instead, why not just pause the UI,
turn all three on at the same time, and then unpause to get all the updates at once?
Or I could pause the Viewport to duplicate a bunch of heavy objects,
reorganize my Outliner – anything really, that I don’t need the Viewport for.
As anyone who’s used Maya on a day-to-day basis can tell you,
sometimes just starting it up can be slow.
But it doesn’t have to be.
One of the reasons for that slow startup is because of all the extra plug-ins
that get loaded with it.
But if you don’t use the features of those plug-ins, why bother loading them in the first place?
To that end, I recommend unloading any plug-ins until you need them
– make sure they don’t auto-load either.
For example, if you’re just loading Maya up to do some modeling,
you probably don’t need Advanced FX-focused plug-ins like Bifrost, XGen, or MASH.
You can probably do away with caching features like Alembic and gpuCache as well.
This can dramatically speed up Maya’s start time!
Similarly, you can speed up file loading by setting References
so that they don’t load by default.
Naturally, this will mean that your file will initially be missing some elements,
but depending on the size of those elements and where they’re coming from
(especially those being pulled from a network source),
this can speed up opening files multiple times over!
Once the file is loaded, you can then manually load the references as you need them.
On the topic of “turning things off unless you need them,”
you’ll also want to make sure that “Adaptive Open Subdiv” is turned off
unless you happen to be using it.
This setting can be found in any polygon object’s shape node,
under the Smooth Mesh section.
By default, Maya applies a uniform subdivision to a surface
so that if I smooth preview it by pressing ‘3’,
or have Displacement Preview turned on,
it applies however many division levels I’ve set over the entire surface.
However, if I switch to adaptive subdivisions,
then Maya will only apply additional subdivisions where necessary.
This allows you to increase an object’s smoothness
without touching the Subdivision Levels at all.
However, calculating this takes time, which can slow down your scene,
which is why I recommend turning it off for meshes that don’t see any benefit from it
(i.e. ones that you’d prefer to smooth uniformly anyway).
Similarly, try also turning off Affected Highlighting in the Display Preferences.
When on, anything related to your current selection will be highlighted on the screen.
But like Adaptive Subdiv, it can take Maya a bit of time to figure out what’s all connected.
When off, Maya won’t bother making those calculations,
so unless you really need to know that information, it’s better just to switch this off.
Up here in the Viewport settings,
there’s a number of different optimizations you can make depending on what’s in your scene.
I’ll start down here in the section called “Floating point render target.”
This setting has to do with Color Management, at the cost of GPU-RAM.
While the default value is 32 x 32 x 32, you can actually get away with 16 x 16 x 16
with a minimal difference in quality.
This will save you some GPU resources that Maya can then use elsewhere.
Or you can disable the feature entirely, saving even more RAM
but at the cost of much more noticeable color degradation.
Notice how clamped my highlights are.
Next, depending on your scene
you may want to change the transparency algorithm being used.
The default Object Sorting is fast –
the problem is, it’s not always the most accurate
as you can see by the black outline on these tree leaves here.
Instead, you can try Alpha Cut.
This setting basically gives up on transparency
and renders things as either fully opaque or transparent.
It can be a tad slower than Object Sorting,
but still strikes a good balance between speed and accuracy for things like trees or shadows.
Finally, as a general good practice,
try to steer clear of using texture nodes that aren’t supported by Viewport 2.0.
Doing so means Maya has to bake them every frame, which adds a lot of evaluation time.
You can find a list of those unsupported nodes in the link below.
If you absolutely MUST use them though,
you can reduce their Bake Resolution values in the Viewport 2.0 options to compensate.
It still won’t be quite as fast as avoiding them altogether, but at least it’ll be a bit faster.
Here’s an easy one: When using image planes, use jpegs.
They’re the most efficient, lightweight image format
that’ll ensure they aren’t using any more precious resources than absolutely necessary.
This is particularly important when doing VFX,
matching shots to a backplate that updates every frame.
Look at the difference between BG.##.png and BG##.jpg.
Getting back to a point I made earlier: As of Maya 2019,
don’t forget to turn on Cached Playback down here under the play controls.
This new feature will record changes in keyframes in the background
and pre-cache them as you work, so that when you’re ready to playback the scene,
it’ll be silky smooth.
It also pays to make sure that Parallel Evaluation is turned on
up here in the Animation options, in order to get the most out of this feature.
And make sure there’s no ! mark overtop of the icon.
If that appears, then something in your scene isn’t compatible with Cached Playback.
Okay, here’s where we start to get into the weeds a bit.
So suppose you’ve tried everything up until now,
yet your scene is so dense and complex that it still runs slow.
Well, you can actually use Render Layers to strategically pare down the scene,
making it easier for Maya to render onscreen.
Now, I won’t get into exactly how to do that here –
if you’re interested, check out my video series on Render Setup via the link on your screen.
The short of it is that I can hide heavier layers, like my environment,
to speed up my interactions with other parts of the scene.
Also note that animation on disabled layers won’t evaluate,
so if you have a very heavy animation or even special effect on a layer,
you can temporarily disable it to get better performance
while you work elsewhere in the scene.
And of course, this can also speed up your renders as well
since you can output individual layers without all the scene elements in them
(but still with their reflections, shadows, and so on).
You can achieve a similar performance boost using Display Layers,
by adding complex objects to layers and then either hiding them
or disabling them during playback
However, unlike Render Layers, you won’t be able to get reflections, refractions,
shadows, or masks from hidden objects using this method, so just keep that in mind.
Also keep in mind that running the Interactive Renderer or Batch Renderer
in the background like this can slow things down as well.
So if you notice your machine is slower than normal,
it never hurts to check your Arnold RenderView to see if it’s updating.
If you want this behavior, then you can try increasing the “Save UI Threads” value
to increase interactive performance, particularly on machines with fewer cores.
Similarly, you can check the Task Manager for the “mayabatch” process,
indicating that you have a batch render running.
This is particularly easy to forget,
especially if you get distracted doing something else for a little bit.
Finally, I’ve saved the best for last.
Deep within the Windows menu, Maya actually has a tool specifically for measuring
its own performance,
which allows you to pinpoint exactly what’s slowing down your scene PER SESSION.
This tool is called the Profiler.
After opening it, just hit “Start Recording” and then do whatever task you want to test.
Literally anything at all.
Once you’re done, stop the recording.
Maya will spit out a bunch of graphs detailing the performance of various things
going on behind the scenes.
Some of this can be difficult to read, but in general you want to look for processes
running in parallel vs those running in sequence.
An area with lots of short lines stacked on top of each other is a good thing.
An area with loooooong, lines is bad, and you may want to take a look at it.
Also, for the more technically inclined out there,
you can hit 2 or 3 to see how Maya is making use of your CPU and Threads.
Basically, the Profiler helps you hunt down inefficiencies
by gently nudging you in the right direction.
For example, I can see that BOSS is a source of slowdown.
So if I replace it with an Alembic Cache...
...I get a modest bump in performance.
However, if the Profiler is too intimidating,
there’s another similar tool called the Scene Lint Information window
up here in the Evaluation Toolkit as well.
This is a bit simpler than the Profiler in that,
rather than targeting EVERYTHING Maya is doing,
it focuses specifically on the most common performance pitfalls.
The nice thing about it though is that it not only identifies problems with your scene,
but even contains a few pre-made fixes that you can apply with the press of a single button.
In this case, it's identified that Cached Playback isn't turned on.
Or I can apply all the suggested fixes at once via this button.
And there you have it! My top 10 ways to speed up Maya.
I hope you found these little tips useful!
And as always, feel free to share your own tips comments below.
I’m sure there are plenty of other users out there who’d love to hear it!