Cache Selective Operator

Path: Particle View > Add or select Cache Selective.

The Cache Selective operator works much like the Cache operator included with the original Particle Flow system, 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 original 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 it once, and then work with other particle system properties via post-cache operators (shape, size, orientation, mapping, color etc.).

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 nonsequentially. Since the particle systems depend on each other, Particle Flow can iterate only one frame at a time.

For further background information, see the introduction to the Cache Operator topic in the 3ds Max User Reference.

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; that is, the global event > Emission Rollout > Quantity Multiplier settings 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 – The software 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 and CTRL and dragging the track bar with the left, middle, or right mouse button.
  • Custom – The software 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 above). 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 Disk 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 Disk operator samples and caches the animation. Default=Every Frame.

  • Every Frame – The software caches animation data once per frame.
  • Integration Step – The software 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 – The software caches animation data at frame intervals specified by the N value, below.

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 Disk 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 Disk operator can record the test activity to play it back later.

If the Cache Disk 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, the software 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 the Esc key.

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 – The software 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 with the left, middle, or right mouse button.
  • Custom – The software 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.

Update All – Updates the caches for all Disk Cache operators in the current flow. Use this to avoid having to update each cache individually after changing a parameter that affects the entire flow.

Clear All – Deletes the cache files for all Disk Cache operators in the current flow.

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.