On this page | |
Since | 18.0 |
Overview ¶
This node can modify point instance transforms and properties in a few ways:
-
Set transform and property values using parameters and expressions.
-
Set property values using VEX snippets.
-
Create a SOP network inside this node (or elsewhere in the node hierarchy) that generates points where each point corresponds to an instance and SOP attributes on the points correspond to properties. See point cloud editing below.
This node is useful, for example, if you want to transform instances from the results of an RBD simulation. At the same time, you could use property editing to update the velocities
and angularVelocities
attributes.
Point cloud editing ¶
This node lets you build a SOP network to modify instance transforms and properties by processing geometry that represents the instances. Points in the geometry correspond to instances, and the SOP attributes on the points correspond to instance properties.
You can set the node to get transforms and/or individual properties by processing a SOP network.
-
If you choose “Internal SOP”, the node uses the nodes you build in the SOP subnet inside this node.
In this mode, the points are created for you and fed through the network (connect the output of
Sub-Network Input #1
to the first node in your processing network).Each point has a
path
SOP attribute set to the scene graph path of the instancer. -
If you choose “External SOP”, you can specify a SOP network anywhere in the Houdini node hierarchy. However, the network must generate the points with the proper attributes somehow.
-
The points must have a
path
SOP attribute set to the scene graph path of the instancer. -
By default, the node will try to match points up with instances by matching point numbers to instance indices. This will probably only work you are processing every instance in a single instancer. Otherwise, you should turn on Match by ID and set the
id
SOP attribute on each point to the index of the corresponding instance.
-
-
SOP attribute names and types must match the corresponding property names set up on this node (although some names can be remapped automatically, see Tips below).
-
Beside the point position (
P
), SOP point instancing attributes, such asscale
,pscale
,orient
,N
, andup
, are translated back into the instance transform. See instancing attributes for more information.
Tips and notes ¶
-
When the using the Internal SOP to modify properties, in order to have access to various instance attributes, these need to be added to the “Properties” multi-parm.
-
If you try to edit the USD
velocities
,angularVelocities
, and/oracceleration
attributes, the node will show an option to remap from the corresponding SOP attributes (v
,w
, andaccel
). -
In VEX snippets, you can use
@
variable names containing colons (:
). This makes it easier to automatically bind certain USD attribute names (for examplei@primvars:foo
). (These names are not normally legal in names in VEX source code. The node automatically encodes these kinds of names when used in a snippet.)
Parameters ¶
Point instances
A space-separated list of instances, using /‹path›[‹instance_index›]
syntax (for example, /geometry/instancer[0] /geometry/instancer[1]
). 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 /geometry/instancer[2][7]
. VEXpressions can be used to specify instances, for example, /geometry/instancer[{@weights>0.5}]
.
Modify Using (Global)
Set the global Modify Using option to affect the node’s default modification source.
Internal SOP
Use the embedded editable subnet to process points representing the instances.
External SOP
Use an external SOP network that must generate points representing the instances from scratch. (See point cloud editing above.)
Uniform Values
Use the node’s parmameters to modify instance attributes.
SOP Path
When Modify Using is “External SOP”, the node path to the geometry node to cook to get the generated points. Each point in the output should correspond to one of the selected instances.
Group
When Modify Using is “External SOP”, if this is not blank, only consider points in this point group.
Import Frame
Specify the frame at which the instancer is evaluated.
Transform ¶
Edit Transform
Author new transforms on the selected instances. If this is off, the node will not override the existing transforms.
Modify Using
How to compute the transform for each selected instance.
Global Setting
Use the setting specified by the Modify Using (Global) parameter.
Internal SOP
Use the SOP subnet inside this node to process points representing the instances.
External SOP
Use an external SOP network that must generate points representing the instances from scratch. (See point cloud editing above.)
Uniform Values
Use the transform parameters (which can be driven by expressions).
Match By ID
When Modify Using is “External SOP” and this is on, the node looks for id
SOP attributes on the generated points. The id
should be the index of the corresponding instance. (When this is off, the node matches point numbers to instance indices, which only works if you process every instance in a single instancer.)
SOP Path
When Modify Using is “External SOP”, the node path to the geometry node to cook to get the generated points. Each point in the output should correspond to one of the selected instances.
Group
When Modify Using is “External SOP”, if this is not blank, only consider points in this point group from the geometry node’s output.
Transform order
The order in which Houdini applies translates, rotates, and scales, and the order in which it applies rotation.
Translate
Movement amount along XYZ axes.
Rotate
Degrees rotation around XYZ axes.
Scale
Non-uniform scaling along XYZ axes.
Uniform scale
Scales the object uniformly along all three axes.
Shear
Amount of shearing in the XY plane, the XZ plane, and the YZ plane.
Pivot translate
Moves the local origin of the object.
Pivot rotate
Rotates the local origin of the object after translation.
Properties ¶
Get Properties
Click to automatically fill in the Properties multi-parm. (The node assumes any array attribute on the instancer with an array length the same as the number of instances contains per-instance values.) If you want to re-do this, click Clear in the multi-parm, then click this button again.
Enable
For each property, the node only computes a new value if this is checked.
Name
The name of the property to edit or create. You can choose an existing attribute from the pop-up menu to the right of this field. (The node assumes any array attribute on the instancer with an array length the same as the number of instances contains per-instance values.)
Type
The USD type of the attribute to create/edit. If you chose the Name from the pop-up list, this is automatically set to the correct type.
Modify Using
How to compute the attribute value for each selected instance.
Global Setting
Use the setting specified by the Modify Using (Global) parameter.
Internal SOP
Use the SOP subnet inside this node to process points representing the instances.
External SOP
Use an external SOP network that must generate points representing the instances from scratch. (See point cloud editing above.)
Uniform Values
Use the parameters (which can be driven by expressions).
Use Snippet
When Modify Using is “Uniform Values”, get the value for each instance by evaluating a VEX snippet. The snippet should write the value to the value
variable. You can use the variables typically available to an Attribute Wrangle SOP. index
is the index of the current instance. You can use @Frame
and @Time
to make the snippet time-dependent.
Value
When Modify Using is “Uniform Values”, the value to set the attribute to for each instance. (This can be driven by an expression.)
Prune ¶
Method
Do Nothing
Skip pruning/hiding instances.
Hide
Hide selected instances.
Delete
Remove selected instances.
Internal SOP
Use internal SOP to delete or hide instances using a SOP workflow. Deleted USD primitive instances from the embedded sopnet will delete the corresponding instances, while using a Visibility SOP to hide instances will hide the corresponding instances.
Prune
Set this parameter to a non-zero value to prune instances, or zero to unhide instances when Method is set to “Hide” and not delete instances When Method is set to “Delete”. This parameter exists to provide an easy way to animate the visibility of instances by authoring an opinion at each time sample.
Add Duplicates
When Modify Using (Global) is “Internal SOP”, internally duplicated instance prims will be added to the instancer.
Skip Validation
By default a validation check is performed on the input selection to warn when nested instances are selected, as these will be ignored. This validation can be bypassed for perfomance reasons when dealing with large numbers of instances.
See also |