The output of this node is a single stage holding the union of any time samples authored on each individual cook. This speeds up playback by eliminating cooking and minimizing updates sent to the viewport.
This node is also useful to enable motion blur in the viewport for transformation data authored in the LOP network.
A Cache LOP with a time dependent input node can eliminate the time dependency, if the entire frame range is cooked.
If USD primitives are added or removed over time, the output of the Cache LOP will be the union of all USD primitives created over the cached frame range. This behavior matches the USD ROP, as both of these nodes combine time samples using USD’s built in layer stitching functionality.
Specifies when and how frames are combined into the cache.
Always Cache All Frames
As soon as the node is cooked the first time, or whenever the input to the Cache LOP is modified, the node cooks the entire frame range and combines the results into a single stage.
This can be very expensive in both time and memory, however if you will be caching the entire frame range, this method provides the lowest average per-frame caching time.
Cache Cooked Frames
Frames of data are cooked and combined into the cache when that particular frame is requested.
This is more expensive per-frame than cooking multiple frames at once, but it provides the best time to first result.
Cache Up To Cooked Frames
This is a hybrid of the Always Cache All Frames and Cache Cooked Frames choices. When a particular frame’s data is requested, this LOP cooks and caches all frames from the start of the range up to the requested frame.
This option is useful when the cooked data is coming from a simulation, where it might be very expensive to go back and cook earlier frames.
Cache Current Frame Only
In this mode, only the current frame is ever in the cache. This reduces memory usage considerably when scrubbing through the timeline, however it must recook the time samples every time a frame of data is requested from this node.
This mode is typically only used when enabling
Subframe Sampling for motion blur.
In this mode, the Cache node is always time dependent, even after playing back an entire simulation.
The first frame, last frame, and increment size (in frames) between each cook request made of the input to populate the cache. The first two values control the range of frames over which the Cache should apply, and the third value allows the stage to be super-sampled for improved motion blur, or sub-sampled to preserve memory (at the cost of accuracy, as USD simply uses linear interpolation between time sampled values).
Track Primitive Existence to Set Visibility
LOP networks may generate vastly different scene graphs from one frame to the next. When combining these scene graphs over a frame range into a single animated scene graph, the set of primitives in the combined scene graph will be the union of the primitives in each frame’s hierarchy. But if a mesh appears at frame 50, this generally means that it is desired for this mesh to not be visible prior to frame 50. Enable this option to cause this node to track a list of all primitives at each frame, and automatically author animated visibility attributes for any primitives that are added to or removed from the scene graph over time. This gives the appearance of primitives being added and removed over time.
Only subclasses of
UsdGeomImageable primitives will be tracked this way, since these are the only USD primitive types which respect the visibility attribute.
This option cannot be enabled with
Cache cooked frames mode, as it requires all frames to be cooked in order for the visibility authoring to behave properly.
For each primary sample generated by this node, these parameters can cause additional samples to be generated aroudn that primary sample time. This is most often used to ensure that accurate data exists at exactly the camera shutter open and close times, as well as at the primary sample time.
Controls the method used to specify the shutter open and close times relative to the primary sample times.
The Shutter open/close parameter values provide exact offset values relative to the primary sample time.
Use Camera Prim
The Camera prim parameter provides the scene graph path of a camera primitive from which the shutter open and close times are extracted to provide the offset values relative to the primary time sample.
When the Shutter mode is
Specify Manually, these two offset values are added to the primary sample time to indicate the shutter open and close times. The open time should be less than or equal to zero, and the close time should be greater than or equal to zero.
Scene graph path of a camera prim on the input node’s stage. The shutter open and close attribute values are read from this primitive.
The number of subframe samples to create for each primary sample. These samples are evenly distributed between the shutter open and close times. Note that such an even distribution may or may not create a sample at exactly the primary sample time.
Always Include Frame Sample
Enable this option to force a sample to be created at exactly the primary sample time. If the Samples values together with the shutter open and close times already place a sample at the primary sample time, turning on this option will have no effect. Otherwise, this option will cause an addition sample to be added. This means that the actual number of samples per primary sample may in fact be one more than the number specified in the Samples parameter.