Use the following best practices to optimize performance.
Interactive drawing
- For best viewport performance, refer to tips in
Optimizing Viewport 2.0.
- Turn on
Shading > Interactive Shading to improve performance when moving the camera.
- Save the file in the simplest display mode to make load time faster. Avoid saving files in textured display mode.
- Use default display options for polygons.
- Turn off display of all non-essential UI that updates when the scene view updates, for example:
Heads Up Display,
Time Slider,
Range Slider,Hypershade,
Attribute Editor,
UV Texture Editor.
- Turn off the display of all non-essential scene elements, ranging from the grid to drawing skeletons.
- Work with a layout that only includes a single modeling panel.
- Divide your scene efficiently by doing the following:
- Segment your scene into areas that don’t overlap (for example, using a grid layout).
- Use display layers to turn on or off the areas as required.
Splitting your scene up into a non-overlapping rectangular grid is also helpful for setting up visibility layers because you can then plan the scene sector by sector. However, note that Maya performs front, back, and side camera frustum culling per object. So, if even one triangle shows up, Maya draws everything.
- Use the hardware
Mipmap filtering options, which are in the
Hardware Texturing section of the shader node,
Texture Filter drop-down list.
- Turn on
Use default material display mode if applicable.
- Don’t use extra
Shading menu settings like
Wireframe on Shaded if you don't need them.
- If possible, use
Show > Isolate Select to limit what is displayed and refreshed in the scene.
- Objects with less than a few hundred triangles, and especially those with only a few triangles will have a high performance overhead. If possible, merge the objects together into one. Maya performs much better with less objects that each have thousands of triangles versus many objects with only a few triangles.
- Use instancing when possible. This includes instancing geometry, materials and textures. If using file texture nodes, it is better to have one file texture node that is instanced versus many copies of the node. This affects memory used when the file is loaded as well as on disk.
- Make sure to set your video card settings to Maya settings and disable vertical sync (sync).
- The default material display option can be used to see the difference between using 1 shader for all objects versus
n shaders.
- If surfaces are partitioned into many layers, this may slow down shaded mode display. Attempt to use fewer partitions if possible, and if used for visibility to partition the surfaces into grid sections. This helps with visibility culling.
- Attempt to build surfaces that do not intersect each other in terms of their bounds (bounding boxes). Visibility testing performs worse in these cases.
- Sorting of the DAG hierarchy by display attribute types may help. This can be done by reordering DAG objects in
Outliner.
- Ordering your DAG hierarchy may help:
- all surfaces first, then all non-surfaces
- by visibility within a given region (perhaps by layer if layers are used for visibility partitioning)
- by depth to viewer (if feasible)
- material and lighting attributes: for example, all lamberts, then all blinns, then all shaders which don't use lighting, then all those that do, and finally all shaders which don't have transparency, then all those that do
- Use a minimal shader for an object. For example use a surface shader when you don't require lighting, or you’ll be overriding lighting elsewhere, for example, with color per vertex.
- Remove duplicate shading networks.
Memory
- Unlimited undo queue takes more memory than a limited undo queue. The default
Undo queue is set to 50 in the
Preferences window.
- Take advantage of large address awareness on Windows XP up to 3 GB.
- Use instancing when possible. This includes geometry, materials, textures, lights, and so on.
- Parallel memory copy may, in some cases, improve speed for Opterm or Nehalem systems. However, it can also potentially slow down Xeon systems. Use MAYA_NO_PARALLEL_MEMCPY to disable parallel memory copy if you find that your speed has been impacted. Note, however, that there are other factors that may affect speed in Maya, such as your scene complexity and workload.
IK, Dependency Loops, and Performance
- After loading a file, a wait cursor may come up and Maya will use all available CPU cycles for a long time (several minutes at least). This problem seems to occur in files that have IK and dependency loops.
The ideal workaround is to find and remove the dependency loop. These loops may be difficult to find. For example, A may be translated by a pointConstraint B that uses target C that has a parent D that is rotated by an expression E that has an input from F that is constrained to G which is a child of A. One hint is to look for expressions that have outputs to attributes on many different nodes.
That is, some complex scenes take a long time to evaluate, and you could encounter this when loading a file.
The Polygon Draw Cache
- In Maya, the use of a polygon draw cache usually improves speed and performance. However, when loading certain very large files in Maya, the polygon draw cache may cause the memory usage of Maya to exceed the memory available to the application on your system, resulting in instability.
(Note: The 64-bit version of Maya on Windows and Linux provides enough memory space that this issue should not arise.)
You can also disable the polygon draw cache so that you can more easily load very large files. There is an environment variable called
MAYA_DISABLE_POLYGON_DRAW_CACHE. Set it to 1 to disable the polygon draw cache.
If you disable the polygon draw cache, interactive draw performance will be slower. We recommend that you not leave this environment variable set to 1, but instead set it only for working on files that show this problem.
Animation
-
See the topic
Increase perfomance with the Evaluation Manager
to learn about how you can increase the speed of both playback and manipulation of character rigs with the
Evaluation Manager. The new system is multithreaded to take advantage of the computing resources available (cores and graphics processors).
- Use
to limit maximum influences, remove unused influences, and prune small influences.
- Use
Edit Deformers > Prune Membership commands to remove components that aren’t affected by the deformer.
-
Use the
Profiler. The
Profiler allows you to locate performance bottlenecks in your scene by recording and demonstrating in a graph the amount of time that each process consumes. See
Profile a scene to improve performance for more information.
Audio
- When using imported audio files in Maya, it is inadvisable to have background applications running that use audio capabilities. Running other applications that use audio may cause Maya to hang.
Fur
- Lowering the
Fur Accuracy value for the
Fur Feedback hairs significantly increases interactive draw speed, but makes it less easy to preview
Scraggle,
Curl or
Clumping.
- Since
Shadow Maps are expensive to render, don’t use more than you need. Autoshading is free and can provide an acceptable alternative for some lights when using the
Maya Software renderer.
Miscellaneous
- On Windows, fragmented hard drives can cause serious performance issues. We suggest you defragment regularly and thoroughly with a dedicated application. Standard tools offered by the operating system are often not sufficient to gain performance benefits.
- Take advantage of file referencing. For more information, see
File Referencing.
- Become very familiar with
Performance Settings. ().
- Use
File > Optimize Scene Size to remove unused scene data.
- Returning to Maya after a screen saver has been activated can, with some old or low-end graphics cards, cause selection marquees or panel contents to disappear.
Press the space bar or use the
Panels menu to change the current panel configuration. All panels should now be drawing normally. To return to your previous configuration, either press the space bar again, or select the appropriate entry from the
Panels menu.
- The cycle checking that happens during attribute evaluation may miss a cycle in which incoming connections on a DAG node form a cycle that includes any of the worldspace attributes on its child nodes. The MEL command
cycleCheck NODE can be used to detect these cycles if you suspect this to be the case.
Modeling
- Use the
Reuse Triangles attribute on polygons.
- Use
Poly Reduce to simplify complex geometry. Polygonal models that don't have the following will display faster: unshared normals, unshared texture coordinates, unmapped faces, and faces that are not triangles (not triangulated).
Dynamics
- Use the
Stand In attribute on rigid body geometry.
- When starting or setting up a simulation, start with less geometry on particles.
Classic Cloth
- Turn off
Classic Cloth collisions for the initial setup and testing of a simulation.
- Animate settings like
Frame Samples and
Time Step Size to improve solve time.
- Solve in batch mode.
Rendering
- Use
Render Diagnostics for hints on improving performance. See
Maya render diagnostics for more information.
- Remove duplicate shading networks.
Artisan
- Increase
Stamp Spacing if possible (Stroke section of
Artisan Tool
settings editor).
- Use
Screen Projection if possible (Stroke section of
Artisan Tool settings editor).
Paint Effects
- Lower the
Display Quality in the
Paint Effects Tool settings editor.