Specify where the cache files are stored
Maya has a workspace directory for particles. By default, this is given the name particles. You can specify your workspace particles directory using the Project Editor, the same as for all the other workspace directories.
If you are using an old workspace from a previous version of Maya, Maya creates the particles directory for you the first time you create a particle disk cache.
The disk cache files are stored in subdirectories of the particles directory. You can specify what subdirectory name you want to use by entering the name in the Cache Directory box of the Particle Render Cache Options window (see Setting particle disk cache options). Before each new caching operation, Maya automatically deletes any cache files existing in the specified subdirectory.
If Maya can’t find a cache file for the given frame, but finds cache files both for frames greater and lesser than the current frame it is evaluating, it interpolates between them. If the frame difference is large, you see the results of interpolation rather than the results of solving frame by frame.
In simple cases, to evaluate a given frame, Maya usually needs the particle cache files only for that frame. However, Maya may need to access the state of particles at some other frame in order to resolve expressions, rigid body motion, motion blur, etc. If you are in doubt, we recommend caching out all frames. For example, if you want to render starting at frame 100, cache all frames up to 100 as well.
After you have created a particle disk cache, Maya uses the cached particle data, no matter what changes you make to your scene, until you explicitly tell it not to.
For example, if you cache the scene, then apply a gravity field to a particle object, you will not see any effect from that field because Maya is using the cached particle motion. To see the effect, you must turn off Use Particle Disk Cache (see Editing particle disk cache settings).
However, if you make a change that does not alter per-particle attributes, such as changing the render type from blobby to streak, you will see the change without turning off Use Particle Disk Cache.
We suggest you name your scene before creating a particle disk cache; otherwise, Maya saves the particles in a directory named untitled.
To create a particle disk cache
Maya plays through the scene once using the current time slider playback range and writes out cache files. Maya does not re-draw the screen during this playback. If you want to cache a different range, you can either change the current range of your time slider or turn on Use render settings range (see Use Render Settings Range).
Maya must play the scene through once to create the cache. If you don’t want to wait through the playback, you can interrupt it by pressing the Esc key, but the cache won’t be created.
When you create the cache in the above manner, Maya creates a cache for all particles in the scene. If you want to cache some particles objects and not others, see Caching a single particle object.
Setting particle disk cache options
You can set the following particle disk cache options before creating the cache. These options affect all subsequent caching operations.
To set the particle disk cache options:
Editing particle disk cache settings
To edit particle disk cache settings
You can use particle disk caching to create different caches for the same scene. This lets you create and quickly play back variations on a scene.
To create and play back different caches
Once you have created the cache, Maya uses that cache until you tell it not to. It ignores any changes in emission, forces, etc. on that particle object.
If you change something in the scene that alters per-particle attributes, you must re-create your cache in order to get correct renders. Maya writes out the disk cache only when you select Create Particle Disk Cache. That menu item does not turn on a “caching state.” This is an important difference between memory caching and disk caching. Maya does not automatically update or re-create your disk cache.
You don’t need to re-create the cache if you make a change that does not alter per-particle attributes. For example, you could change a particle shape’s render type from blobby to cloud, save the file, and re-render. Or you could change keyframed colorRed/colorBlue/colorGreen attributes. In both these examples, you would not need to re-create the cache because the attributes involved are not per-particle.
Be careful, however, because attributes such as colorRed can indirectly affect per-particle attributes. In the previous examples, if you had a per-particle expression on some particle object that made use of the render type or colorRed as an input, the results of that expression would be affected, so you would need to re-create the cache.
Maya saves cache files for each particle shape for each frame. If oversampling is turned on, it saves multiple disk caches at different times within a frame depending on the oversampling rate.These binary files have the extension .pdc, which stands for particle data cache. Maya uses the dynExport command to write these files.
You can’t read .pdc files. If you want to output particle data files you can read, see the online documentation in the dynExport command for information on outputting .pda and .pdb files, and also the ExploreMe/particlesreadpdb directory on the Maya DVD. See Appendix Use the PDC File Format for information on writing your own reader.
There is no way to delete cache files or directories from within Maya. Delete them using your operating system.
If you are animating per-particle rendering attributes by ramps, and you change those ramps, you’ll see the change in playback even if the cache is enabled. This also applies to changes in hardware display/rendering attributes such as pointSize. To avoid any confusion, turn off the Use Particle Disk Cache attribute before you make changes to your scene, and re-create your cache just before you render.
If you are animating any attribute with expressions, or animating rampPosition, rampVelocity, or rampAcceleration with ramps, any changes you make to those expressions or ramps will not be visible in playback as long as the cache is enabled. Turn off Use Particle Disk Cache.
Particle collisions with rigid bodies
If you have a rigid body being driven by particle collisions, and you disk-cache the particles, the rigid bodies will no longer evaluate correctly. In effect, the caching takes away the dynamic properties that allow the rigid bodies to evaluate and they can’t detect the collisions any more. To cache such a scene, first bake out the rigid bodies (see Baking rigid bodies below), then disk-cache the particles. The same limitation and same workaround apply to in-memory caching as well.
The particle disk cache always applies to particles only. It does not apply to rigid bodies. In most cases, rigid bodies can compute their positions without needing to do a run-up. If you encounter any problems in this area, you can resolve them by baking out your rigid bodies, using the bakeResults command.
For example, to bake out rigidBody1 for frames 1 to 100, do this:
bakeResults -t "1:100" -simulation true rigidBody1;
You can’t use the bakeResults command to bake out particle motion. It bakes out animation channels, such as translateX/Y/Z, not particle positions.
Even if unbaked rigid bodies do cause a run-up, the run-up will go faster if your particles are cached, because the particles are loaded from the disk cache instead of being recomputed.
Caching a sequence in two parts
You may find it necessary to cache two parts of a sequence separately. For example, if you cache frames 1 to 45 in one place, and frames 46 to 90 in another place, you must be sure that the two caches “line up” so there is no discontinuity from 45 to 46.
Make sure that the animation and dynamics the first time you cache are consistent with the second. Make sure you didn’t add or change anything, or have something changed for you.
In particular, if you have expressions that use the MEL rand() function, you must make sure your expressions are properly reseeded (see Reproduce randomness Reproduce randomness in the MEL and Expressions guide).
Caching a single particle object
Using Solvers > Create Particle Disk Cache caches all particle objects in the scene. You can cache a specified object from the command line using the dynExport command (see the online Command documentation for information on the dynExport command).
You can also get this same result by using your operating system to delete the cache files for all objects you don’t want read from the cache.