On this page

PDG stands for Procedural Dependency Graph which, is a procedural architecture that defines tasks and their dependencies to structure, schedule, and distribute work. You can use it to support automated and repeatable content pipelines in film, television, and real-time productions.

The PDG Asset Link allows you to cook and import results from PDG Graphs embedded in HDAs directly in Unreal.

The Houdini asset details panel is displayed in the details panel when you select an HDA asset.

The PDG Asset Link section automatically appears if an HDA contains a TOP Network. By default, it’s turned off. To turn it on, click the Refresh Button.

See PDG Asset Link settings for more information.

Using TOP networks

The PDG Asset Link automatically selects the first TOP Network found in the HDA. You can change this to a different TOP network.

By default, the plugin imports PDG work items generated by output nodes that begin with the prefix HE_OUT, for example HE_OUT_1. This filter can be changed or turned off in the TOP Output Filter setting.

The Cook Output and Dirty All buttons control the TOP Network. Cook Output will cook the work items and then load them into Unreal, creating Unreal assets in the same manner as regular HDA outputs.

The Work Item Status table shows the progress of Work Item processing for each work item on each output. See TOP Network Work Item Status settings for more information.

Importing work item results

When you cook the PDG Graph, work item output files bgeos are loaded into Unreal and imported. Actors created during import typically follow the same layout as the PDG graph:

  • TOP NETWORK

    • TOP NODE

      • Work item 1 Result object 1

      • Work item 2 Result object 1

      • Work item 3 Result object 1

Note

An exception is Unreal Landscapes which cannot be parented to other actors.

Cooked PDG results are temporary like normal HDA outputs. Until baked, it’s owned by the Houdini Asset Actor. This means if you dirty or change the PDG asset, it can potentially destroy or update them.

Similar to regular HDAs, the PDG Asset LInk has its own bake section which allows for finer controls to decide how PDG graph’s results are baked. It’s recommended to iterate by cooking and then bake before using the assets in a production environment.

Using TOP nodes

Individual TOP nodes can also be cooked and controlled by opening the TOP Node section of the PDG Asset Link settings. The TOP Node Filter can include specific nodes, and the specific node can be selected from the TOP Node drop down. This is useful when iterating on a specific node inside a larger TOP network. See TOP network settings for more information

PDG Asynchronous importer

PDG Asset Link imports work items on the Unreal game thread which can become a bottleneck since Unreal’s import can be processing intensive. The Async Importer uses an Unreal Commandlet to do the import so Unreal is freed up for other tasks.

To use the Asynchronous Importer:

  1. In Unreal’s main menu, select Houdini Engine.

  2. Select Work Item Import Settings then select Enable Async Importer.

    • The current status is shown in the Async Importer details panel.

You can also start the commandlet manually using the command line, then only Enable Async Importer needs to be selected.

Once the Async Importer is started, PDG processes PDG work items and creates UAssets in a temporary folder. Once the Commandlet has created assets, it notifies the main Unreal Editor and the Asset is moved to its correct position in the Unreal project.

Performance and utility

The Asynchronous Importer cannot import Unreal objects such as actors and components. These objects must be added to the current active level in the Editor. If the Commandlet detects one of these kinds of objects is being imported,then it defers back the main Unreal process to complete the import.

If this happens, the import is slower than not using the Async Importer. You can check the kind of output the TOP Network is producing by turning on and off the Async Importer on a per case basis.

Unreal

Getting started

Basics

Using Houdini Engine

Scripting

Reference