Houdini 20.0 Import and export

Import and export GLTF

How to import and export GLTF files to and from Houdini.

On this page

Version

Houdini’s GLTF importer and exporters adhere to the GLTF 2.0 specification.

Nodes

Use the following nodes to import or export GLTF data:

GLTF Hierarchy Object node

Imports a .gltf or .glb file as a hierarchy of Object nodes.

GLTF SOP node

Imports geometry from a .gltf or .glb file into the SOP level.

ROP GLTF SOP node

Exports geometry at the SOP-level to a .gltf or .glb file.

ROP GLTF Character Output SOP node

Exports a rigged character at the SOP-level to a .gltf or .glb file.

GLTF Character ROP node

Exports a rigged character at the SOP-level (KineFX) to a .gltf or .glb file.

GLTF ROP node

Exports a scene, an Object, or a SOP to a .gltf or .glb file.

Supported GLTF features

The following table lists which features of the GLTF specification are supported by the GLTF import and export nodes.

Exporters Importers
GLTF ROP/ROP GLTF Output SOP GLTF Character/ROP GLTF Character Output SOP SOP GLTF GLTF Hierarchy
Scene Everything that is exported is contained within a single scene. Everything that is exported is contained within a single scene. The SOP GLTF Importer can import an entire GLTF scene. You can import the primitives inside the GLTF scene as flattened geometry or individual packed primitives. The GLTF Hierarchy node can import an entire scene GLTF scene into an OBJ network. Unlike the SOP GLTF importer, the GLTF Hierarchy Importer can replicate the GLTF node hierarchy because it imports the scene into an OBJ network.
Node In addition to exporting a root node for the scene, a GLTF node will be exported for every OBJ node in the scene. A GLTF node will be exported for the skinned mesh and every joint in the skeleton. The SOP GLTF Importer can import a specific node. When this option is chosen, it will also import any child nodes of the selected root node. You can import the primitives in the node hierarchy as flattened geometry or separate packed primitives. All nodes within the selected GLTF scene will be imported into the generated OBJ network.
Mesh The ROP GLTF Output node exports SOP node geometry as a GLTF mesh. Sometimes the geometry will be processed in order to make it compatible with GLTF. For example, meshes will be triangulated if they have any faces with more than 3 vertices. Since GLTF does not have an analogous concept to a Houdini vertex, you may need to split geometry points when any of the vertices sharing a point have different attribute values. The KineFX rest geometry will be exported to a GLTF mesh and provides the geometry for the exported GLTF skin. The SOP GLTF Importer can import a specific mesh. You can import the primitives in the mesh as flattened geometry or separate packed primitives. Any GLTF mesh that is associated with an imported GLTF node will also be imported. The mesh will be imported at the SOP level using a nested SOP GLTF node.
Material The ROP GLTF Output node supports the exporting of Principled Shader materials to a GLTF material. The ROP GLTF Character Output node supports the exporting of Principled Shader materials to a GLTF material. The SOP GLTF Importer can import the material assignments to the shop_materialpath attribute, but it cannot create the materials since it only operates at the SOP level. To fully import materials, use the GLTF Hierarchy importer node. The GLTF Hierarchy node will import GLTF materials as Principled Shaders which are all contained within a single material network. The importer will also automatically assign materials to the proper geometry.
Texture Any of the following texture maps that are used by the Principled Shader material will be exported: (Base Color → baseColorTexture), (Roughness → metallicRoughnessTexture), (Metallic → metallicRoughnessTexture), (Base Bump and Normal → normalTexture), (Emission → emissiveTexture), (Occlusion → occlusionTexture). Any of the following texture maps that are used by the Principled Shader material will be exported: (Base Color → baseColorTexture), (Roughness → metallicRoughnessTexture), (Metallic → metallicRoughnessTexture), (Base Bump and Normal → normalTexture), (Emission → emissiveTexture), (Occlusion → occlusionTexture). The SOP GLTF Importer node does not import textures because it operates at the SOP level. To import textures, use the GLTF Hierarchy importer node. Any of the following texture maps that are found on an imported GLTF material will be configured on the imported material’s Principled Shader: (normalTexture → Base Bump and Normal), (emissiveTexture → Emission), (occlusionTexture → Occlusion), baseColorTexture → Base Color).
Camera Cameras in the scene will be exported to the GLTF scene. The ROP GLTF Character Output node operates at the SOP level and therefore cannot export OBJ nodes. To export the scene as a whole, use the ROP GLTF Output exporter node. The SOP GLTF node operates at the SOP level and therefore cannot import cameras. Import of cameras is not supported.
Skin (Capture) The ROP GLTF Output node will not export skinned meshes. To export KineFX characters, use the ROP GLTF Character Output exporter node. The KineFX capture pose will be exported to a GLTF skin. Note that due to limitations within GLTF, when exporting a skeletal animation, its rest geometry cannot be a deforming mesh. The importing of skin information is not supported. The importing of skin information is not supported.
Animation The ROP GLTF Output node supports the exporting of transform animations and animated deforming meshes. Transform animations support is built into GLTF and therefore the transform animations can be directly exported to GLTF by keyframing the transforms of the GLTF nodes. Exporting an animated deforming mesh takes a less conventional approach by creating a GLTF morph target for each frame of of the mesh’s animation. The GLTF animation which moves between the morph targets is linearly interpolated. The KineFX animated pose will be used to export animations for the GLTF skeleton. Only one animation can be exported. The importing of animation is not supported. The importing of animation is not supported.
Lights Lights in the Houdini scene will be exported to the GLTF scene using the KHR_lights_punctual GLTF extension. The ROP GLTF Character Output node operates at the SOP level and therefore cannot export OBJ nodes. To export the scene as a whole, use the ROP GLTF Output exporter node. The SOP GLTF node operates at the SOP level and therefore cannot import lights. Import of lights is not supported.

Controlling alpha blending

To specify the blend mode for the alpha channel in an exported material, you must add extra render properties to the material.

  1. Select the Principled Shader VOP node in your material.

  2. In the parameter editor, open the Gear menu and choose Edit Rendering Parameters.

  3. In the Render Properties tree, find the Material Options folder, and inside that, the glTF folder.

  4. Drag the glTF AlphaMode and glTF AlphaCutoff properties from the glTF folder into the node’s Existing Parameters tree.

  5. Click Apply.

You can then use the new parameters to control how alpha blending will work when you export the material to GLTF.

Import and export