Houdini 20.5 Nodes Render nodes

Alembic render node

Exports the scene to an Alembic archive. Alembic is a common exchange format for moving geometry and animation between different 3D software packages.

On this page
Since 12.0

See the following link for further information about the Alembic format.

Tips and notes

  • If you add a spare parameter to an object named abc_collapse and its value is not zero, this node will skip that object and omit it from the archive. See also the Collapse parameter.

  • The Alembic library has some expectations of geometry attributes that this node attempts to satisfy. For polygon meshes, the Alembic library treats position (P), normal (N), texture coordinates (uv), and velocity (v) differently from other attributes. This node tries to express geometry in the form expected by the Alembic library for better compatibility with other applications.

    For example, that if you have v as a vertex attributes, this node will write it out as a point attribute.

    To avoid this mangling, use a different name than one of the “special” attributes. For example, if you really need to export vertex velocities, name the attribute something different like v2 or vv.

Parameters

Render to Disk

Begins the render with the last render control settings.

Controls

Opens the render control dialog to allow adjustments of the render parameters before rendering.

Valid Frame Range

Controls whether this render node outputs the current frame (Render Current Frame) or the image sequence specified in the Start/End/Inc parameters (Render Frame Range).

Render Frame Range Only (Strict) will render frames START to END when it is rendered, but will not allow frames outside this range to be rendered at all. Render Frame Range will allow outside frames to be rendered. This is used in conjunction with render dependencies. It also affects the behavior of the 'Override Frame Range' in the Render Control dialog.

Two possible cases where you would want the strict behavior:

  • A 60 frame walk cycle written out to a geo, but part of a larger ROP net to render out a larger frame range.

  • A texture loop from 1-20.

Otherwise, you will usually set this to non-strict.

Render Current Frame

Renders a single frame, based on the value in the playbar or the frame that is requested by a connected output render node.

Render Frame Range

Renders a sequence of frames. If an output render node is connected, this range is generally ignored in favor of frames requested by the output render node.

Render Frame Range Only (Strict)

Renders a sequence of frames. If an output render node is connected, this range restricts its requested frames to this frame range.

Start/End/Inc

Specifies the range of frames to render (start frame, end frame, and increment). All values may be floating point values. The range is inclusive.

These parameters determine the values of the following local variables for the output driver.

$NRENDER

The number of frames to be rendered by the output driver.

$N

The current frame being rendered (starting at 1 and going to $NRENDER).

For example, if the parameters are set to:

Start

10.5

End

12

Inc

0.5

There will be 4 frames rendered (10.5, 11, 11.5, and 12), so $NRENDER will have a value of 4. $N will have the value:

Frame

$N

10.5

1

11

2

11.5

3

12

4

Render With Take

The output driver will switch to this take before rendering and then restore the current take when rendering is done.

Tip

Use chs("take") to use this value in other parameters. See the chs expression function for more information.

Alembic File

The name of the archive to generate.

Format

The file format of the archive to generate.

Default

Use whichever file format is the default for the current version of Houdini.

HDF5

Use the HDF5 file format. HDF5 is a common hierarchical data format, and several tools exist to view and edit HDF5 files.

Ogawa

Use the Ogawa file format. Ogawa is an Alembic-specific file format available for use as of Alembic 1.5. Ogawa files are on average smaller (by 5-15%) and faster (4× for single-threaded reads, 25× for multi-threaded reads on 8 core systems) than HDF5 files.

Create Intermediate Directories

Create the directories in the Alembic archive output path if they do not exist.

Render Full Range (Override Frame-By-Frame)

Normally, it’s best to render all frames into a single Alembic archive. This allows Alembic to optimize storage of data and to be more efficient. This is the default behavior of the output driver, even when frame-by-frame rendering is requested.

In some work-flows, you may want to have the Alembic ROP operate on a frame-by-frame basis (see the -I option on the hscript render command). Turning this toggle off will let the ROP evaluate frame-by-frame.

Initialize Simulation OPs

Reset simulations before writing Alembic archive.

Hierarchy

Use SOP Path

When turned on, the Alembic ROP exports a single geometry detail specified in SOP Path instead of exporting objects contained under a root object.

SOP Path

The path to the geometry detail to include in the alembic archive.

Subdivision Group

If a group name is specified here, any polygons in any objects will be saved as subdivision primitives in the Alembic file. Other polygons will be saved as polygon mesh nodes.

The subdivision group can be specified per object with the object level parameters vm_rendersubd or ri_rendersubd. If present, they will be used to control whether polygons will be saved as subdivision primitives and the vm_subdgroup parameter will be used to select which polygons will be rendered as subdivision surfaces.

Build Hierarchy From Attribute

Use a primitive string attribute to directly specify the path of a primitive in the output archive.

Path Attribute

The name of the attribute containing the path.

Root Object

The root object of the scene. All displayed objects contained under this node will be included in the Alembic archive.

Objects

A pattern/bundle of objects to include in the alembic archive.

Collapse Objects

This option can be used to skip writing transform nodes which have no transform (an identity transform) for the entire animation.

When importing an Alembic scene, there are often empty geometry nodes created to contain Alembic SOPs. These objects are simply placeholders to contain the geometry. However, when exporting the scene, they will be added as dummy transform nodes (roughly doubling the size of the Alembic archive node count).

Do Not Collapse Identity Objects

All geometry containers (geometry objects containing SOPs) will be saved as Alembic transform nodes.

Collapse Non-Animating Identity Objects

All geometry containers which are not animated and have an identity transform will be skipped when writing the Alembic file.

Collapse All Geometry Container Objects

All geometry containers will not be written to the Alembic file. In some cases for subnet hierarchies, having a subnet parent animated will propagate the time dependence to the contained nodes. This option allows you to forcibly skip the geometry nodes.

Any transformations on these nodes will be lost during the save.

If you add a spare parameter to an object named abc_collapse and its value is not zero, this node will skip that object and omit it from the archive. This allows fine-grained per-object control regardless of the setting of this parameter.

Save All Non-Displayed (Hidden) Objects

If this checkbox is turned on, hidden objects matching the Objects pattern/bundle will also be written to the Alembic archive.

Use Display SOP

If this checkbox is turned on, the geometry in the Display SOP will be saved instead of the geometry from the Render SOP.

Partition Mode

When saving a complex piece of geometry, it is possible to partition the geometry into multiple shape nodes by splitting up the primitives based on a string attribute. There are several different ways to interpret the string values.

No Geometry Partitioning

The geometry will be output as a single Alembic shape node.

Use Attribute Value

The value of the string attribute is used to name the shape node. This mode is ideal when using the name attribute.

Use Shape Node Component Of Path Attribute Value

When loading an Alembic file, you can store the Alembic path in a string attribute. This option will partition the geometry based on the names of the shape nodes stored in the attribute.

Use Transform Node Component Of Path Attribute Value

This option will partition the geometry based on the names of the transform nodes stored in the attribute.

Use Combination Of Transform/Shape Node

Combines both the transform and shape node names to form the name for the new shape node.

Partition Attribute

Specifies a string attribute which is used to partition a single geometry into multiple Alembic shape nodes. For example, you can use the name or the abcPath attribute to split a single piece of Houdini geometry into different Alembic shape nodes based on the string value.

Camera Suffix

Specifies a string to append to the name of shape nodes representing cameras in the generated Alembic archive.

Full Bounding Box Tree

This will cause all Alembic nodes to have proper bounding boxes written. Computing bounds for only the shape nodes is more efficient.

Geometry

Packed Transform

When saving a complex piece of geometry, it is possible to partition the geometry into multiple shape nodes using packed primitives. There are several different ways to handle packed primitives.

Deform Geometry

The packed primitive’s transform will be baked in to the resulting shape node’s geometry.

Transform Geometry

A transform node will be created above the packed geometry.

Merge With Parent Transform

The packed primitive’s transform will be baked in to the parent transform node.

Use Instancing Where Possible

This will cause packed objects to be instanced within the Alembic archive during write, reusing geometry and potentially decreasing the size of the file.

Create Shape Nodes

This will cause Alembic shape nodes to be created for geometry.

Save Attributes

If this checkbox is turned on, geometry attributes will be saved to the Alembic file as arbitrary geometry parameters.

Output Indexed Arrays

Disable saving string attributes as Alembic indexed arrays. By default, Houdini will save strings as indexed attributes in cases where it makes sense. This option will disable this feature.

Point Attributes

Point attributes whose name matches this pattern will be saved in the Alembic file.

Vertex Attributes

Vertex attributes whose name matches this pattern will be saved in the Alembic file.

Primitive Attributes

Primitive attributes whose name matches this pattern will be saved in the Alembic file.

Detail Attributes

Detail attributes whose name matches this pattern will be saved in the Alembic file.

Primitive To Detail

Promote primitive attributes matching this pattern to detail attributes before exporting to Alembic. Sometimes when importing Alembic, Houdini must convert constant Alembic data to uniform data. This option lets you manually re-adjust certain attributes on export.

Force Conversion of Matching Primitive Attributes to Detail

The normal behavior when promoting primitive attributes to detail attributes is to validate that the values are the same for all primitives. Enabling this option will bypass this check forcing all matching primitive attributes to be converted to detail attributes regardless. The attribute value of the first primitive will be used as the single detail value for the exported primitive.

Detail Array Attributes

Detail attributes whose name matches this pattern will be saved as arrays instead of scalars.

Additional UV Attributes

Additional UV attributes whose name matches this pattern will be saved in the Alembic file.

Face Sets

This parameter controls how Houdini primitive groups will be translated to Alembic face sets. Alembic only supports face sets for polygon and subdivision meshes.

No Face Sets

No face sets will be saved out.

Save Non-Empty Groups As Face Sets

Only groups which contain polygons will generate face sets in the Alembic file.

Save All Groups As Face Sets

Face sets will be created for all groups, regardless of whether the group contains any polygons.

Layering

Enable Layering

When turned on, the resulting Alembic archive will only export the subset of the scene specified by the parameters on the Layering tab.

Create Full Ancestors for Output Nodes

When turned on, all data for ancestors to non-pruned nodes specified by the Nodes multiparm will be exported.

Nodes

Use this multiparm to specify which nodes the resulting Alembic layer will fully prune, replace, or merge. Click the + button to add a new rule.

Visibilities

Use this multiparm to specify which nodes the resulting Alembic layer will have their visibility changed. Click the + button to add a new rule.

Attributes

Use this multiparm to specify which attributes the resulting Alembic layer will prune or replace. Click the + button to add a new rule.

Face Sets

Use this multiparm to specify which face sets the resulting Alembic layer will prune or replace. Click the + button to add a new rule.

User Properties

Use this multiparm to specify which user properties the resulting Alembic layer will prune or replace. Click the + button to add a new rule.

Motion Blur

Use Motion Blur

Enabling this will cause sub-frame geometry to be saved to the Alembic file.

Samples

The number of sub-frame motion samples to be saved.

Shutter

The open/close of the shutter for sub-frame motion samples.

Scripts

A script command can be specified for execution at various execution points. The expression language selected for the script parameter determines whether the command is in hscript or python.

Prior to execution, this node is automatically set as the global current node.

To run statements from a file, specify the path to the file with either a .cmd extension (when the language is set to Hscript) or a .py extension (when the language is set to Python). Additional arguments to the script can also be supplied. They will be parsed in a shell-like manner.

Pre-Render Script

Run this script before any rendering.

Pre-Frame Script

Run this script before each frame.

Post-Frame Script

Run this script after each frame.

Post-Render Script

Run this script after all rendering.

Examples

AlembicLayer Example for Alembic render node

In this example, we demonstrate how a Alembic ROP node can be used to create Alembic layers.

Render nodes

  • Agent

    This output operator is used to write agent definition files.

  • Alembic

    Exports the scene to an Alembic archive. Alembic is a common exchange format for moving geometry and animation between different 3D software packages.

  • Archive Generator

    Generates disk-based archives which can be used by either mantra or RIB renderers.

  • Bake Animation

    Bakes animation from object transforms and CHOP overrides.

  • Bake Texture

    Generates a texture map from one or more objects' rendered appearance.

  • Batch

    Renders the input ROP in a single batch job.

  • Channel

    The Channel output operator generates clip files from a particular CHOP.

  • Composite

    Renders images from a compositing network.

  • DSM Merge

    Merges two or more deep shadow/camera map files.

  • Dem Bones Skinning Converter

    Converts any non-changing topology deforming mesh sequence into a bone-based animation.

  • Dynamics

    Saves the state of a DOP network simulation into files.

  • Fetch

    Makes a dependency link to a ROP in a different network.

  • Filmbox FBX

    Exports entire scenes to FBX files.

  • Filmbox FBX Animation

    Export animation from geometry-based skeleton to an FBX file.

  • Filmbox FBX Character

    Export a skinned character with geometry-based skeleton to an FBX file.

  • Flipbook

    Render an image using the hardware-accelerated 3D viewport renderer.

  • Frame Container

    Prevents frame dependency changes in the contained nodes from affecting its inputs.

  • Frame Depedency

    Allows an output frame to depend on one or more input frames.

  • GLTF Character

  • Geometry

    Generates geometry files from a SOP or DOP network.

  • Geometry Raw

    Generates raw binary files from a SOP or DOP network.

  • HQueue Render

    HQueue, or Houdini Queue, is a distributed job scheduling system.

  • HQueue Simulation

    HQueue, or Houdini Queue, is a distributed job scheduling system.

  • Hair Card Texture

    Renders hair textures for use on hair cards.

  • Image

    Writes the output of a COP network to disk.

  • Karma

    Renders non-USD scenes using Houdini’s Karma renderer.

  • Labs 3D Facebook Image

    Quickly render a 3D scene to a 2.5D image that can be uploaded to Facebook.

  • Labs Flipbook Textures

    Renders, composites, and exports flipbook textures.

  • Labs JSON Exporter

    Export geometry attibutes to a JSON file.

  • Labs Marmoset Export

    The Marmoset Export ROP allows you to quickly generate an mview inside Houdini

  • Labs Niagara ROP

    Export point caches to be used with Unreal’s Niagara particle system.

  • Labs Sketchfab

    Uploads geometry to Sketchfab

  • Labs Vertex Animation Textures

    Exports a mesh and a set of textures to be used with a shader for complex real-time effects, such as: soft-body deformation, rigid-body dynamics, dynamically remeshed geometries, and particle sprites.

  • Labs ZibraVDB Compress (Alpha)

    Compresses an OpenVDB sequence and caches it to disk as a single file.

  • MDD Point Cache

    This output operator is used to write an MDD animation file.

  • Mantra

    Renders the scene using Houdini’s standard mantra renderer and generates IFD files.

  • Mantra Archive

    Generates disk-based archives which can be used by mantra.

  • Merge

    Merges several render dependencies into one.

  • Net Barrier

    Blocks the ROP network until synchronization occurs.

  • Null

    Does nothing.

  • OpenGL

    Render an image using the hardware-accelerated 3D viewport renderer.

  • Pre Post

    Renders ROPs before and after a main job.

  • Shell

    Runs an external command.

  • Subnetwork

    The SubNetwork output operator provides an easy way to manage large number of output operators.

  • Switch

    Renders one of several inputs.

  • Tractor

    Tractor is a program shipped out with Pixar’s distribution of RenderMan.

  • USD

    Renders a LOP network out to one or more USD files. This node is available as render node or as a LOP.

  • USD Render

    Renders an output image from the stage generated by a LOP network.

  • USD Stitch

    Merges USD files representing individual frames by composing them.

  • USD Stitch Clips

    Merges multiple value clips representing individual frames.

  • USD Zip

    Assembles USDZ archive files from existing USD files.

  • Wedge

    Re-renders the same ROP multiple times with different settings

  • Wren

    This output operator is used to drive the Wren rendering program.

  • glTF