Houdini 22.0 Nodes Geometry nodes

USD PointInstancer Import geometry node

Imports the instances of one or more USD PointInstancer prims from a LOP network as a point cloud.

On this page
Since 22.0

Overview

This node reads one or more USD PointInstancer prims from a LOP network and represents each instance as one SOP point. Selected attributes and primvars on the source instancer become point attributes on the output, so the instances can be inspected and modified using ordinary SOP tools (Transform, Wrangle, Group, and so on).

It is most commonly used inside the internal SOP network of a PointInstancer LOP, where the LOP feeds the modified point cloud back to the same USD PointInstancer prim as a sparse or full edit. The Edit PointInstancer tab-menu tool sets this up automatically.

The Primitives parameter accepts an id-range suffix in the form /Path[start-end] for selecting subsets of instances. For example, /Geometry/PointInstancer[50-100] imports only the instances whose ids are in the range 50 to 100 inclusive.

Parameters

LOP Path

The LOP node whose stage is the source of the point instancer data.

Primitive Path

The scene graph path(s) of one or more PointInstancer prims to import. Accepts pattern syntax and the /Path[start-end] id-range syntax for selecting a subset of instances from each instancer.

Path Attribute

When on (the default), creates a path string point attribute holding the scene graph path of the source point instancer prim for each output point. This is what the PointInstancer LOP uses to map each modified point back to its instancer when several are being edited together.

Imported Ids Dictionary

When on (the default), creates a detail string-dictionary attribute named importedids that maps each source point instancer’s prim path to the array of ids that were imported from it. The PointInstancer LOP reads this map to compute which instance ids were removed from the SOP geometry, so it can apply the Missing Points Policy correctly.

Imported Primvars Dictionary

When on (the default), creates a detail string-dictionary attribute named importedprimvars that maps each source point instancer’s prim path to the list of primvar names that were imported (or named via Common Primvars). The PointInstancer LOP uses this to drive sparse primvar resampling without re-reading the input stage.

Import Properties

Transform into World Space

When on, each output point’s position, orientation, and scale include the source instancer prim’s world transform. The same world transform is also recorded as a matrix4d point attribute named usdxform on every output point. The PointInstancer LOP reads the first point’s usdxform value to recover the world transform when writing the points back to USD, so the destination instancer prim ends up with the same world placement as the source.

When off (the default), each instance is left in its instancer-local frame.

Ids

When on (the default), import the source ids attribute as the id point attribute. Disabled when Invisible Ids is on, because that toggle implies ids must be imported as well.

Invisible Ids

When on (the default), create a usdvisibility string point attribute. Points whose id appears in the source instancer’s invisibleIds get the value invisible; all other points get the empty default (inherit semantics).

Positions

When on (the default), set each output point’s position P from the source instancer’s positions attribute.

Orientation

When on (the default), set each output point’s orient attribute (quaternion) from the source instancer’s orientations (or orientationsf) attribute.

Scales

When on (the default), set each output point’s scale attribute from the source instancer’s scales attribute.

Accelerations

When on (the default), set each output point’s acceleration accel from the source instancer’s accelerations attribute.

Velocities

When on (the default), set each output point’s velocity v from the source instancer’s velocities attribute.

Angular Velocities

When on (the default), set each output point’s angular velocity w from the source instancer’s angularVelocities attribute.

Primvars Filter

A whitespace-separated pattern of primvar names to import from the source instancer prim(s). Each matched primvar becomes a point attribute with one value per instance. The primvars: prefix is stripped from the resulting attribute name. The default * imports every authored primvar.

Common Primvars

A whitespace-separated list of primvar names you want authored on every PointInstancer this node imports – and, by extension, on every instancer the downstream PointInstancer LOP writes back to. This is a finer-grained alternative to setting Missing Primvars Policy to Create on the LOP (which would broadcast every SOP primvar to every affected instancer); list only the primvars you want present everywhere and leave the rest to the per-instancer import set.

The list is appended to the per-instancer primvar entries in the importedprimvars detail attribute, which the LOP reads to drive sparse primvar resampling.

Only used when Imported Primvars Dictionary is on.

Import Prototypes From

How prototype-index information is imported per point.

None

Don’t create any prototype-index attribute.

protoIndices Attribute

Read the source protoIndices attribute and write it directly to the integer point attribute named in Integer Attrib Name.

Prototype Prim Path

For each instance, look up its prototype’s full scene graph path and store it in the string point attribute named in String Attrib Name.

Prototype Prim Name

For each instance, look up its prototype’s base name and store it in the string point attribute named in String Attrib Name.

Integer Attrib Name

When Import Prototypes From is protoIndices Attribute, the name of the integer point attribute to create. Defaults to protoindex.

String Attrib Name

When Import Prototypes From is Prototype Prim Path or Prototype Prim Name, the name of the string point attribute to create. Defaults to protoname.

Import Bounding Box

Imports each instance’s prototype bounding box, computed in the instance’s frame.

None

Don’t import bounding boxes.

As Attribute

Write the bounds to a float point attribute in the order MinX, MinY, MinZ, MaxX, MaxY, MaxZ. The attribute name comes from Attribute.

As Packed Primitive

Generate a packed cube primitive around each output point, scaled and translated to match the instance’s bounds. Useful for visualizing or selecting instances by their bounds.

As Attribute and Packed Primitive

Do both of the above.

Purposes

A comma-separated list of purpose tokens (default, render, proxy, guide) used when computing each instance’s bounding box from its prototype. The default default matches the default purpose only.

Attribute

When Import Bounding Box is As Attribute or As Attribute and Packed Primitive, the name of the float-tuple-6 point attribute to create. Defaults to bounds.

See also

Geometry nodes