Table of Contents
Time Independent Cache
With the introduction of Subscription DROP 9 thinkingParticles introduces a new concept of Time Independent caches. Before, the only Time Independent cache file you could create was by using the MasterDynamic cache file option and saving it as tps file.
While tpc file caches are a great enhancement, offering greater flexibility when setting up multiple levels of cache files, they still do not offer the playback speed of a finalized Master Dynamic tps cache file that allows you to freely jump back and forth between frames.
Frame based caches or DynamicSet caches are considered simulations, even though most parts of the simulation data comes from a cache file. However, the concept of a “fixed” or time independent DynamicSet file cache did not exist at all - until now!
Time Independent DynamicSet Caches
Each DynamicSet cache file, created by thinkingParticles, has now the option to be flagged as Time Independent. If a cache file is flagged to be time independent, it behave exactly like a MasterDynamic cache would. All thinkingParticles nodes, in a time independent cache, will be 'frozen' and not called at all. All particle simulations will be played back from the cache file without any possibility to modify its DynamicSet behavior.
Workflow of Time Independent DynamicSet Caches
Now, by default, DynamicSet caches are assumed to be time independent caches. Whenever a cache file is created from a DynamicSet, you can still decide to turn it back to its original behavior that is pre Subscription Drop 9.
A right click menu onto the DynamicSet symbol will reveal the new context Menu called “Cache Time Independent”. New indicator icons show the status of the cache, a colored bar in front of the Play Button (when a cache is present) indicates this DynamicSet behaves as a Time Independent cache. A colored outline border indicates the behavior will be like an 'old' time dependent simulation cache.
Check out the short animation below.
With Pre-Subscription Drop 9, Time Independent Caches have been operating in a very restrictive way. The amount of modifications or manipulations on cached particles was very restricted. Basically it was only the material library of a cached file that could be modified from the outside.
Time Independent DynamicSet caches do offer the same benefits now as the MasterDynamic cache did. You may jump back and forth to any frame you like and the frame will be updated instantly. They also have the same restrictions, cached files can not be modified unless you use the Post Cache for a DynamicSet.
Now, any DynamicSet can be flagged to be a Post Cache DynamicSet. It is important to note; any DynamicSet that is flagged as a Post Cache must be placed underneath the Time Independent cache level!
Any DynamicSet cache flagged as Post Cache that is placed outside of a Time Independent DynamicSet cache will not work or even be called, when simulating.
Check the example below.
Create 1 and Create 2 are two Time Independent caches (see yellow bar icon in front of play button). Each cached DynamicSet has a Post Cache DynamicSet underneath. For each frame or sub frame read form the file, this Post Cache DynamicSet adds a shape to the particles read from the cache.
How to Set or Flag a DynamicSet to be Post Cache?
Any DynamicSet can be turned into a Post Cache DynamicSet by right clicking into the background grid and choosing Post Cache as an option. To confirm the selection, the DynamicSet background color will turn into a yellowish tint.
What can you do with a Post Cache DynamicSet?
In general, all time independent effects/modification can be applied in a Post Cache DynamicSet. All operators that do not depend on time or any previous data of a particle can be safely used. Some of the modifications that can be done.
- Change material per frame or sub frame
- Change the particle shape per frame or sub frame
- Change the particle position by always recalculating the position
- Modify Data Channels by always recalculating
Important Pitfalls and Possible Caveats
Time Independent caches in general are final and will be read in and display the final simulation result. Each frame or sub frame will overwrite the current one. For example, applying any kind of force field to a time independent cache will not work at all. Each frame read in from the cached file will negate any force field effects and reset the particle to the exact position that was written in the cache file. Force effects are time dependent effects, because they affect particles over a period of time.
As soon as you flag a DynamicSet to be Post Cache, it will only work when it is placed within a Time Independent DynamicSet.