Houdini Engine for Unity (v2 beta)
 All Files Pages

Output Types

Houdini Engine for Unity currently generates the following types of geometries from Houdini Digital Assets:

Geometries are generated from nodes that have the display flag set (Display Node Geometry), or are instanced / intermediate / editable (Temporary Geometry).

Display Node Geometry

For SOP-type assets, the geometry will be outputted from the display SOP node within the sub-network. For Object-type assets, the display node of each Object sub-network will be generated. These outputs are considered the actual results of the Houdini asset.

Temporary Geometry

Geometry that is instanced, or part of intermediate or editable nodes, will be generated, added to a GameObject, and parented to the HDA_Data GameObject. These are usually hidden by having their MeshRenderer component disabled. They are temporary geometry in the sense that they will be removed at build time. This is done automatically when parented to HDA_Data with the EditorOnly tag.

Unity Mesh

Typically, a Houdini asset generates a Unity mesh as the cook result. The Unity mesh is created and applied to a MeshFilter component, as part of a GameObject, along with a MeshRenderer, one or more Materials, and possibly a Mesh Collider with its own Mesh.


If the output geometry has multiple materials in Houdini, it will be have the same number of Materials in Unity.

On the first cook, the output GameObjects and their components are created newly. On subsequent recooks, the components on the output GameObject will have their Mesh and Materials updated.

Instanced Unity Mesh

For packed primitives or object instancers, the output will be a combination of temporary instanced GameObject with Mesh (Temporary Geometry), along with the actual GameObject instances. The special properties of the instanced GameObject are:

  • the generated Unity Mesh is shared in memory (using MeshFilter.sharedMesh)
  • generated Materials will have GPU Instancing automatically enabled

The GameObjects instances will be placed under an empty GameObject in order to group and organize them in the hierarchy.