GeoInstance

The GeoInstance node creates a number of instances of an object, allowing you to duplicate a prim multiple times. An instance is a reference to another object rather than a copy of it, so if the original is modified, the instances are also modified. GeoInstance has three Instance Modes:

reference - creates a number of reference instances from the source object. You can modify an individual instance using its unique path in the Scene Graph, giving you full control of each instance.

instanceable reference - similar to the reference mode, but computationally cheaper. You can use instanceable reference mode for small groups of referenced prims, such as cars and crowd scenes.

point instancer - creates a single Scene Graph location containing all instances, which is computationally cheaper than instanceable reference mode, but the instances cannot be modified individually by downstream nodes. This mode is mostly useful for particles or other geometry with thousands of parts as you can only modify the whole instance at once.

GeoInstance includes options to control what happens to the source object and the number of instances created. The name of instances created is {name}_{index} by default, which adds a number after the source prim name, such as GeoRevolve1_1 and GeoRevolve1_2.

The transform controls affect all the instances in the scene and are applied to each instance from the previous instance's position. The second instance is transformed and then the third instance is transformed by the same amount, but from the position of the second instance, and so on. For example, with a Count of 3 instances and Rotate x value of 30 in the Properties panel, the first instance is not affected, the second instance is rotated 30, and the third instance is rotated 60.

Three instances of a cube geometry.

The same three instances with a Rotate x
value of 30.

Inputs and Controls

Connection Type

Connection Name

Function

Input

unnamed

The previous stage in the scene you want to affect.

Control (UI)

Knob (Scripting)

Default Value

Function

GeoInstance

Mask

mask_patterns

{lastmodified}

Specifies the mask pattern to match the prim names to affect. The default mask, {lastmodified}, instances whatever was changed by the previous node. A simple way to think of it is that {lastmodified} affects the node above. You can use standard glob-style variables, such as /*, to create masks or use individual prim names separated by spaces. For example, /GeoCube 1 /GeoCard3 instances only those prims.

Tip:  You can also use the cog menu, the Viewer picker, or drag and drop paths from the Scene Graph to create masks.

Instance Mode

instance_mode

reference

Specifies the type of instances to create:

reference - creates a number of reference instances from the source object. You can modify an individual instance using its unique path in the Scene Graph, giving you full control of each instance.

instanceable reference - similar to the reference mode, but computationally cheaper. You can use instanceable reference mode for small groups of referenced prims, such as cars and crowd scenes.

point instancer - creates a single Scene Graph location containing all instances, which is computationally cheaper than instanceable reference mode, but the instances cannot be modified individually. This mode is useful for particles or other geometry with thousands of parts as you can only modify the whole instance at once.

Original

original_mode

deactivate

Determines what happens to the original objects specified in the Mask control:

deactivate - the source prims are deactivated, as if they were never in the scene.

activate - the source prims are activated, which can be useful to override inherited deactivation.

hide - the source prims are hidden in the scene, but can still be referenced as normal.

show - the source prims are shown in the scene, which can be useful to override an inherited hidden state.

include - the source prims are included in the instance Count replacing the first instance, so one fewer instances is created.

Count

count

2

Specifies the number of instances to create from the objects in the Mask control.

Path

instances_path

none

Specifies the Scene Graph path under which the instances are created. The referenced node name is used if Path is left blank.

Parent Type

instances_parent_prim_type

Xform

Sets the type of prim to create if there are missing ancestors in the path.

Note:  The default, None, may cause some referenced objects to behave as if they don't exist.

Naming

names

{name}_{index}

Specifies the naming convention for the instances in the Scene Graph. The default, {name}_{index}, creates instances named from the Mask control and the index number of the instance. For example, if GeoCube1 is instanced with a Count of 3:

GeoCube1_1

GeoCube1_2

GeoCube1_3

You can also use the following tokens to create your own naming convention:

{name} - the name of the original object.

{index} - the 1-based index of the new object.

{count} - the total count.

{srcindex} - the index in the list of the source objects.

{srccount} - the count of source objects.

file_menu

N/A

Select to import or export a channel file:

Import chan file - import a channel file and transform the instanced objects according to the transformation data in the channel file. Channel files contain a set of Cartesian coordinates for every frame of animation in a given shot. You can create and export them using Nuke or 3D tracking software, such as 3D-Equalizer, Maya, or Boujou.

Export chan file - export the translation parameters that you’ve applied to the instanced objects as a channel file. This is a useful method of sharing setups between artists.

snap_menu

N/A

Choose what a selection in the Viewer or pivot point is snapped to in the Viewer:

Geo to Selection (position) - the instanced objects are snapped to a new position depending on the points selected.

Geo to Selection (position, orientation) - the instanced objects are snapped to a new position and orientation depending on the points selected.

Geo to Selection (position, orientation, size) - the instanced objects are snapped to a new position, orientation, and size depending on the points selected.

Pivot Point to Selection (position) - the pivot point is snapped to a new position depending on the points selected.

Pivot Point to Selection (position, orientation) - the pivot point is snapped to a new position and orientation depending on the points selected.

Pivot Point to Selection (orientation) - the pivot point is snapped to a new position, orientation, and size depending on the points selected.

Transform Order

xform_order

SRT

Sets the operation order for scale (S), rotation (R), and translation (T). The possible operation combinations are SRT, STR, RST, RTS, TSR, TRS.

Rotation Order

rot_order

ZXY

Sets the order of rotation. The possible axial combinations are ZXY, XYZ, XZY, YXZ, YZX, ZXY, ZYX.

Translate

translate

0, 0, 0

Lets you translate the instanced objects along the x, y, and z axes. You can also adjust translate values by clicking and dragging the object in the 3D Viewer.

Rotate

rotate

0, 0, 0

Lets you rotate the instanced objects around the x, y, and z axes. You can adjust rotate values by holding down Ctrl/Cmd and dragging in the 3D Viewer.

Scale

scaling

1, 1, 1

Lets you scale the instanced objects on the x, y, and z axes.

Uniform Scale

uniform_scale

1

Lets you scale the instanced objects simultaneously on the x, y, and z axes.

Skew

skew

0, 0, 0

Lets you skew the instanced objects on the x, y, and z axes.

Pivot Translate

pivot_translate

0, 0, 0

When you make changes to a 3D object’s position, scaling, skewing, and rotation, these occur from the location of the object’s origin point or pivot. The pivot translate and rotate x, y, and z controls allow you to move and rotate the pivot point as required - you can even move it outside of the object. Subsequent transformations applied then occur relative to the new pivot point location and rotation.

You can hold down Ctrl/Cmd and drag the pivot point to a new location in the 3D Viewer.

 

Pivot Rotate

pivot_rotate

0, 0, 0

Local Matrix

Specify Matrix

use_matrix

off

Enable this control to specify matrix values for the instanced objects you’re transforming as an alternative to setting transform, scale, skew and pivot values above.

Matrix

matrix

N/A

The matrix displays values from the instanced object’s transform, rotate, scale, skew, and pivot controls.

Check specify matrix and copy or drag-and-drop matrix values from another object to apply those values, for example, if you wanted to align objects in a scene.