|On this page|
See Instancing in USD for information on how point instancing works in USD.
This node creates the appearance of splitting the instances in an instancer into multiple instancers, by creating references to the original instancer, and then hiding or deleting instances inside the instancers.
Splitting instancers may be useful for optimizations or scene management, such as render passes or light linking.
The node supports different methods for splitting point instancers, see the Split method parameter below.
You can use these local variables in the Duplicate Instancer Name string parameter. In a string parameter you need to enclose expression functions and locals in backticks for them to be evaluated.
A number which increases for each new instancer. This is a simple way to ensure unique names for new instancers.
The total number of new instancers created by this node.
An index into the list of instancers to split in the Instancers parameter (starting at
0), indicating which instancer is being split. For example, if an expression is being evaluated for a new instancer being split off from the third instancer in the list, this variable will be
The total number of instancers to split listed in the Instancers parameter.
When evaluated for a new instancer, this is the name of the “source” instancer it is being split off from.
When evaluated for a new instancer, this is the full prim path of the “source” instancer it is being split off from.
How to create a new instancer or instancers from the existing instancer.
Creates a new instancer taking all the instances that instance a particular prototype prim, or group all instances into new instancers based on the prototype (see the Per prototype parameter).
Creates a new instancer with a selected set of instances from an existing instancer.
Group the instances in the original instancer into new instancers based on the value of an attribute. For example, an instancer containing all points where
@type=apple, an instancer containing all points where
@type=pear, and so on.
When Split method is Prototypes and this is off (the default), the list of prototypes in the Prototypes parameter are split off into one new instancer. When this is on, each of the prototypes are split into separate new instancers.
When Split method is Prototype or Attribute, this is a space-separated list of the instancer prims to split.
A space-separated list of instances, using
/path[instance_index] syntax (for example,
/geometry/instancer /geometry/instancer). To select all instances in an instancer, use
/path[*]. To select a range, use
/geometry/instancer[4-7] (the range is inclusive). To select instances inside nested instancers, use multiple indexes, for example
When Split method is Prototypes, this is a space-separated list of paths to the prototype prims to split out into a new instancer or instancers (see the Per Prototype parameter).
The name of a USD array attribute on the instancer to use to split instances. All instances with the same value for this attribute will be split into a new instancer.
Duplicate Instancer Name
This parameter is evaluated to get the name for each newly-created instancer prim. Prim names must be unique among siblings.. You can embed expression functions and locals by enclosing them in backticks. The default string (
`@srcname`_`@copy`) builds a new name using the original instancer name (
@srcname, inside backticks so it’s evaluated as an expression), a literal underscore, and a number (
@copy, again in backticks). See the list of available local variables above.
Modify Source Primitive
What to do with the original instancer prim. The default is Source primitives are first duplicates.
Deactivate Source Primitives
Set the original instancer prim to “inactive”. Create a “new” instancer (with a new name computed from the Duplicate Instancer Name parameter) by referencing the original. This hides the original instancer from view, and prevents changes to the source (which would affect all of the newly created instancers).
Hide Source Primitives
Set the visibility of the original instancer prim to “invisible”. Create a “new” instancer (with a new name computed from the Duplicate Instancer Name parameter) by referencing the original. This hides the original instancer from view, but allows changes to it, which can affect the newly created instancers.
Source Primitives Are First Duplicates
Leave the original instancer (with its original name), treat it as one of the “split off” instancers. Changes to the original instancer will affect the newly created instancers. But changes to one of the newly created instancers will not affect the others.
How to generate the new instancer(s). Reference (the default) creates a reference to the original instancer and then authors changes on the reference. Copy authors a completely new prim using data copied from the original. Don’t use Copy unless you have a specific reason.
Prune Unused Instances
What to do with instances that have been “split out” into new instancers. Hide adds the pruned point IDs to the
invisibleIds array to make them invisible. Delete resizes the instancer arrays in order to remove the pruned instances.
Prune Unused Prototypes
When Split method is Prototypes, what to do with prototypes that have been “split out” into new instancers. Hide sets the visibility of the pruned prims to hidden. Delete sets the prims to inactive.