Cache Selective Operator

The Cache Selective operator works much like the Cache operator except that it lets you exclude certain types of data from the cache. Also, as with the Cache Disk operator, you can specify post-cache operators, and the cache must be updated manually.

The Cache Selective workflow is somewhat different from that of the Cache operator in that it's designed to let you define the most calculation-intensive properties of a particle system (usually the motion), pre-calculate them once, and then work with other particle system properties via post-cache operators (shape, size, orientation, mapping, color, and so on).

To use Cache Selective, add it to the event you wish to cache, or to the global event if you want to cache the entire particle flow.

Tip: If you have a situation where particle systems are dependent on each other, use a Cache operator and solve the simulation before you can render, especially if you're rendering over a network, or rendering frames non-sequentially. Since the particle systems depend on each other, Particle Flow can iterate only one frame at a time.

For general background information on how caching works in Particle Flow, see the introduction to the Cache Operator topic.

Also see Cache Disk Operator.

Interface

Use At
Caches particle motion when playing back in the viewports, or at render time, or both. Default=Viewport.
Important: Choose the Viewport/Render option only when using the same number of particles in the viewports and for rendering. In other words, the two Quantity Multiplier settings on the Emission Rollout of the global event (or Particle Flow source) must be identical. Otherwise, unpredictable results can occur.
Note: If the emitter is selected, the data is displayed in white.
Range
Sets the frame range within which the Cache Selective operator operates. Default=Active Segment.
  • Active Segment Particle Flow caches only frames in the active segment, as defined by the Start Time and End Time settings on the Time Configuration dialog. This is the frame range shown on the track bar. You can also change the active segment by holding down Alt+Ctrl and dragging the track bar—for this operation, you can use the left, middle, or right mouse button.
  • Custom Particle Flow caches only frames in the custom range, as defined by the Cache Selective operator's Start Time and End Time settings (see following).
Note: If you cache only part of the animation, Particle Flow calculates particle behavior in subsequent, non-cached frames using the cached data. For example, if you cache frames 0 to 50, and then jump to frame 60, Particle flow will calculate frame 51 based on the cached data, and frames 52 to 60 based on each previous frame.
Start/End Time
The first and last frames of the range considered for caching when Range=Custom (see preceding). Defaults=0, 30.
Note: The frame range time frame is in absolute time; that is, in terms of the entire animation. If you use a Cache Selective operator locally, and specify a frame range during which no particles are present in the event, Particle Flow won't use the cache.
Sampling
Determines how often the Cache Selective operator samples and caches the animation. Default=Every Frame.
  • Every Frame Particle Flow caches animation data once per frame.
  • Integration Step Particle Flow caches animation data at each integration step, using the Integration Step setting as specified by the Use At setting (see above) and on the System Management rollout for the flow (select the global event). If Use At is set to Viewport/Render, it uses lower of the two Integration Step values. For example, if Viewport is set to Half Frame, and Render to 1/8 Frame, the sampling rate would be eight per frame.
  • Every Nth Frame Particle Flow caches animation data at frame intervals specified by the N value (see following).
N
Determines the frame interval for caching when Sampling (above) is set to Every Nth Frame. Default=5.

For example, with N set to the default value of 5, the cache stores animation data for every fifth frame.

Cache Test Results
When caching particle data, this caches the results of test actions as well. Default=on.

This is important if Cache Selective is used as a local operator, and the next event doesn't have a Cache-type operator. For the next event to work properly, it should receive particles from the current event. Those particles result from the activity of a test action. The Cache Selective operator can record the test activity to play it back later.

If the Cache Selective operator is used as a global operator, there is no need to cache the test results. This is because the system has cache data for every event, and is able to jump to an arbitrary frame without the need for test results.

Save Cache with File
When on, Particle Flow includes the cached data with scenes that you save to disk. This can significantly increase the size of saved files, but saves the time of recalculating the particle motion upon reloading the file. Default=off.

Normally, the cache data is saved only in disk files that you create with the Save or Save As commands. You can also instruct the software to include cached data in held files using the following option.

Save Cache with Hold
Saves cached data in the Hold file, created with 3ds Max Edit menu Hold. Default=off.

Update And Reset group

Cache Selective does not have an option to update the disk cache automatically, because this can negatively impact performance. If you change a parameter and want to see the changed results, you must click the Update button.

Update
If you change a parameter in the particle system, the cached data might become invalid. Click this button to update the cache manually, using the range specified in this group.

To cancel the update while in progress, press Esc.

Clear
Deletes the cache files, using the range specified in this group.
Range
Sets the frame range within which the Cache operator recalculates data when you click Update or Clear. Default=Active Segment.
  • Active Segment Particle Flow updates the cache only for frames in the active segment, as defined by the Start Time and End Time settings on the Time Configuration dialog. This is the frame range shown on the track bar. You can also change the active segment by holding down Alt+Ctrl and dragging the track bar—for this operation, you can use the left, middle, or right mouse button.
  • Custom Particle Flow updates the cache only for only frames in the custom range, as defined by the Start Time and End Time settings (see following).
Start/End Time
The first and last frames of the range that's updated when Range=Custom (see above). Defaults=0, 30.
Update Viewports
When on, the animation plays in the viewports during manual updating of the cache. Turn this off to disable playing the animation in the viewports during manual caching; this can speed up the caching process, especially with large or complex particle systems. Default=on.
Exclude Data From Cache
Prevents Particle Flow from saving the specified animation data in the cache files. Turn on an option to exclude that type of data from the cache. The data types are: Shape, Script Data, Scale, Material ID, Mapping, and Rotation.
Use Post-Cache Operators
Lets you apply operators after the caching operation, so their actions are not stored in the cache. After turning this on, click Add By List to open a dialog that lists all behavior-affecting operators in the current flow, and then choose the operators from the dialog. Thereafter they appear in the Post-Cache Operators list.
Post-Cache Operators
Lists the operators specified with Use Post-Cache Operators.
Add By List
Opens a dialog that lets you choose operators whose affects should be applied after the caching operation, so their actions are not stored in the cache.
Remove
Deletes any highlighted operators from the Post-Cache Operators list.

Memory Used (K) group

The Cache Selective operator stores data in system memory; you can specify an upper limit for the amount of memory it uses. If the Limit setting and the amount of cached data exceeds the available free memory, the computer system might use virtual (hard disk-based) memory instead, which slows down the caching. If Particle Flow fills the cache, any remaining frames are calculated on the fly.

This group also lets you monitor the amount of memory used for caching data.

Limit
The maximum amount of system memory used to cache particle data, in kilobytes. Default=100,000, or 97.6 MB.
Total
The amount of memory currently used by the cached data, in kilobytes. Read-only.
Note: Even animation frames with no particles will probably consume a certain amount of cache memory. The reason for this is that the cache also stores states for randomly calculated values such as Variation, to ensure that particle activity is consistent across a rendering network, and with machines that might not have regular access to all frames.
Current Frame
The amount of memory used by the data cached for the current frame, in kilobytes. Read-only.