動的ノードはワークアイテムを生成するために上流データからの入力情報が必要になります。つまり、動的ノードはクックされた時にのみワークアイテムを生成することができます。
静的(Static)ノード
例えば ROP Mantra TOP は、レンダリングするフレーム毎にワークアイテムを生成し、そのレンダリングするフレーム数は Frame Range ノードパラメータで設定できるため、生成されるワークアイテムの数は事前に計算することができます。
動的(Dynamic)
ゲームやエフェクトのワークフローは動的であることが多いです。 例えば、群衆をエージェント数に基づいてタイル別に分けて、そのタイル毎に群衆エージェントのセカンダリシミュレーションを実行したい時、群衆シミュレーションを生成してそれらのファイルが読み込まれた後で動的にセカンダリシミュレーションを行なうことができます。
一般的な経験則 として、 動的ワークアイテムよりも静的ワークアイテムの方が好まれます。ワークアイテムの数がわかっているので、どれだけのワークが処理されるのかが感覚的にわかり、Houdiniによる完了パーセンテージの評価の精度がもっと良くなります。
ワークフローによっては、動的ワークアイテムは避けて通れません 。実際にほとんどのネットワーク全体が動的です。ゲームのワークフローを例にすると、レイアウトカーブからレベルを生成する時、カーブと他のカーブが交差、カーブとタイルが交差、カーブと他の何かと交差するまでそのワークの量がわかりません。
Houdiniがそのワークが静的なのかどうかを判断できなくて、ワークアイテムを静的または動的のどちらで生成するのか選択する場合があります。そのような場合だと、TOPネットワークは実行中に常にどのワークアイテムが必要なのかを解明することができることから、常にワークアイテムを動的とマークした方が安全です。しかし、ワークアイテムが静的であることを既に知っているのであれば、そのノードを静的とマークすることで、その静的ワークアイテムの恩恵を受けることができます。
Wait for All ノードは、動的な数のワークアイテムを静的な数、すなわち一つに変換することができます。他のパーティションノードでも動的な数を静的な数に変換することができます。このような場合は、手動でノード設定を変更する必要がなく、Generate When を Automatic にすることで制御できます。
一部のプロセッサノードには、 Generate When メニュー(過去は Work Item Generation でした)があります。ここからそのノードがワークアイテムを生成するタイミング(動的か静的か)を選択することができます。選択肢が動的か静的かは選択した後にノードを Generate Node することで紫のアイコンが出るかどうかで判断できます。
動的にしか動作しない、または、静的にしか動作しないようなプロセッサには、このようなオプションはありません。
一部のパーティションノードには Merge Operations パラメータがあります。
パーティショナー系ノードに対して実行するアトリビュートマージオペレーションの数を定義します。 このアトリビュートマージオペレーションは、パーティション内のワークアイテムのアトリビュートをパーティション自体にマージする際に使用されます。 このアトリビュートマージオペレーションは降順で実行されます。 アトリビュートにマッチさせるパターンを使った最初のオペレーションでアトリビュートがマージされます。