Since | 19.0 |
This node is a wrapper around SOP Import that provides convenient and efficient import of crowd agents from SOPs. The node performs caching by default, and minimizes time-sampled attributes and primvars for faster caching and playback performance.
Parameters ¶
SOP Path
Path to the SOP node containing the crowd.
Cache Behavior
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 are 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 options. 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 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 Subframe Sampling is turned on for motion blur.
In this mode, the Cache node is always time dependent, even after playing back an entire simulation.
Enable Emission
Accumulates a combined scene graph with all agents that appear over the time range, and authors animated visibility attributes to give the appearance of agents being added and removed over time. This option is not available when Cache Behavior is set to Cache Cooked Frames, as it requires all the frames to be cooked in order for the visibility authoring to behave properly. Since this option incurs additional performance overhead, it should only be enabled if emission occurs.
Start/End/Inc
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. 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).
Agent Geometry
Specifies how the agent’s rest geometry is imported. In all modes, a prim is created from the agent primitive’s transform and attributes, and the agent’s geometry and animation are imported underneath.
Create Instanced SkelRoots
Imports the agent’s skeleton and geometry as instanceable references to a SkelRoot
prim enclosing the skeleton and skinned primitives.
This imports each unique agent definition as a prototype under an agentdefinitions
prim under the Import Path Prefix prim.
Create Instanced Skeletons
Imports only the agent’s skeleton as an instanceable reference to a Skeleton
prim.
This imports each unique agent definition as a prototype under an agentdefinitions
prim under the Import Path Prefix prim.
Geometry Purpose
Configures the purpose of the skinned primitives.
Skeleton Purpose
Configures the purpose of the Skeleton
primitives.
Skeleton Visibility
Configures the visibility of the Skeleton
primitives.
Import Path Prefix
If a prim being imported has an automatically generated name (like mesh_0
) because it had no path primitive, or if it has a path primitive but the path is relative (does not start with /
), the node automatically prefixes the name/path fragment with this path. This is a way of keeping “un-pathed” prims organized under a single branch. (See how to create geometry hierarchy.)
(The default is /$OS
which puts “un-pathed” prims under a root prim with the name of this node.)
Animation Save Path
When turned on, sets the Save Path metadata for the layer containing the geometry to this file path. When you write out USD using a USD render node, the geometry is saved out to a .usd
layer file using this file path (after output processing).
Geometry Save Path
When turned on, sets the Save Path metadata for the layer containing the geometry to this file path. When you write out USD using a USD render node, the geometry is saved out to a .usd
layer file using this file path (after output processing).
These parameters control how the rest geometry shapes (i.e. from the agent definition) are imported into USD.
Bind Materials
Binds materials to the imported USD primitives based on the usdmaterialpath
SOP attribute.
The usdmaterialpath
value can specify either the path to a material primitive, or the path to another primitive to copy the material binding from.
If the Partition Attributes include a materialBind
SOP attribute, material bindings can also be created for the resulting geometry subsets.
Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars.
In addition to matching attribute names directly, there are some values with special meanings:
bounds
Authors the USD extent
attribute using the calculated bounding box of the associated SOP geometry.
visibility
Authors the USD visibility attribute based on the value of the usdvisibility
geometry attribute.
See importing attributes for information on how the importer converts certain well-known Houdini attributes to their USD equivalents.
Indexed Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as indexed primvars.
If a SOP attribute matches this pattern, the importer authors the primvar as an indexed array of values (that is, an array of values called primvars:‹name›
, and an array of indices into those values called primvars:‹name›:indices
).
Preparing an indexed primvar can be expensive for attributes that are not integers or strings. You should only use indexed primvars where it is likely to result in significant savings in storage size due to a small number of unique values being used across a large number of components.
Import as Single Element Array
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation (an array with a single value for the whole primitive), regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
Importing as a single element array (versus Import as Single Value) can be useful since it allows the primvar’s interpolation to be overridden without changing the primvar’s type.
Import as Single Value
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation and a single value for the whole primitive, regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
This is the default behavior for how detail attributes are imported.
This is similar to Import as Single Element Array, but the primvar’s type is a scalar value instead of an array with a single element (for example, vector3f
instead of vector3f[]
).
Boolean Attributes
A space-separated list of attribute names/patterns specifying which integer SOP attributes should be converted to primvars of type bool
.
Partition Attributes
A space-separated list of attribute names/patterns specifying which SOP primitive string attributes represent subsets of the geometry. For mesh and curve primitives, the importer puts elements with the same value for this attribute into their own geometry subsets.
The importer will try to set the subset name to the attribute value, but may need to change the name to make it a legal USD primitive name. The importer stores the raw attribute value on the geometry subset prim as Custom Data with the key partitionValue
.
Prefix Subsets with Attribute Name
When creating subsets from Partition Attributes, the subsets are named by combining the attribute name with the partition attribute’s value (a string or integer). This avoids name collisions when multiple partition attributes contain the same values, but can be undesirable if precise control of the subset names is required. For string attributes, if this option is turned off, the attribute values are directly used as the subset names.
Subset Groups
A space-separated list of group names/patterns specifying SOP primitive groups. SOP polygon and curve primitives in each group are imported as a geometry subset, named for the group.
USD Custom Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as attributes (rather than primvars).
Translate UV Attribute to ST
When turned on, converts the SOP vertex attribute uv
into a USD primvar called primvars:st
. Whether you need to turn this on depends on the renderer you are using and how your shaders are authored. If you are rendering with Karma, leave this off.
(As of this writing there is no strict standard for texture coordinate naming in USD, but the use of st
is a common convention, whereas in SOP geometry, using uv
is the common convention.)
These parameters control how the agents' animated attributes are imported into USD. For performance, by default only the agents' animated transforms and bounds are imported.
Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars.
In addition to matching attribute names directly, there are some values with special meanings:
bounds
Authors the USD extent
attribute using the calculated bounding box of the associated SOP geometry.
visibility
Authors the USD visibility attribute based on the value of the usdvisibility
geometry attribute.
See importing attributes for information on how the importer converts certain well-known Houdini attributes to their USD equivalents.
Import as Single Element Array
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation (an array with a single value for the whole primitive), regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
Importing as a single element array (versus Import as Single Value) can be useful since it allows the primvar’s interpolation to be overridden without changing the primvar’s type.
Import as Single Value
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation and a single value for the whole primitive, regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
This is the default behavior for how detail attributes are imported.
This is similar to Import as Single Element Array, but the primvar’s type is a scalar value instead of an array with a single element (for example, vector3f
instead of vector3f[]
).
Boolean Attributes
A space-separated list of attribute names/patterns specifying which integer SOP attributes should be converted to primvars of type bool
.
Set Default Values
A space-separated list of attribute names/patterns specifying the SOP attributes to always author as default values for USD primvars (never time samples).
USD Custom Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as attributes (rather than primvars).
See also |