Houdini Engine for Unity
 All Files Pages
Outputs

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.

Unity_Outputs_GameObject.png

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.

See Meshes for more information.


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.

Unity_Instances.png

Output Naming Scheme

By default, the name of a generated GameObject is formed by combining the names of the object node, geo node, and the part (display node), separated by underscores. An integer is added in order to generate a unique version of this name in the asset. The requirement for the unique name is due to the Bake Update functionality. Bake Update works by using the source asset's output GameObject's name to find the corresponding target output's GameObject, then updating it. Without the unique name, it will not find the corresponding GameObject to update.

To use just the part name (display node) for the output (i.e. ignore the full path name), from the HoudiniEngine menu, open the Plugin Settings and disable the Use Full Path Names for Output option under the GENERAL section.

Unity_Settings_OutputName.png