Houdini 12 Copying and instancing

Overview

The Copy to Points tool creates copies of a piece of source geometry on each point of a piece of template geometry. By default these copies are identical, but you can use stamping parameters to vary the generation of each copy.

Stamping parameters let you communicate information upstream to the operators connected to its inputs. This lets you use values defined in the Copy SOP to control parameters on the source geometry as it is copied, even though the parameters are on operators upstream from the Copy SOP.

For example, to create a progression of polygonal spheres with increasing detail, you can define a stamping parameter on a copy SOP, and use it upstream on the source geometry to set the number of divisions.

Because stamping lets you modify the source geometry for each copy, it is not available when you are instancing (see copying vs. instancing). You can only use it when you are creating “real” geometry with the Copy node. (There are tricks you can use to vary instances, see varying instances.)

Tip

If changing parameters isn’t powerful enough, you can create a Python surface node, or use the VEX surface node or Script surface node. These nodes let you write a script (or create a VOP network) to edit geometry, giving you total power over it.

How it works

Copy stamping is a two step process:

  • On the Copy node, create a stamping variable for each value you want to vary per-copy.

    1. Select the Copy node, and in the parameter editor, click the Stamp tab.

    2. Turn on Stamp inputs.

    3. Use the Variable N and Value N fields to set up variable names and expressions computing a value for the variable.

  • Once the variable is defined in the Copy node, use the stamp expression function in parameter expressions on the surface nodes that define the source geometry.

    For example, to vary the size of the copies, you could create a stamping variable named size and use it in the Scale parameter of a Transform node in the source geometry network.

See the stamping tutorial for an example.

Note

Be careful naming stamping parameters. They may conflict with predefined parameter names on the input operators.