On this page |
クッキング ¶
-
大規模なデータセットに対してネットワークを走らせる前に、小規模なデータセットを使ってすべてが上手く動作するのかテストしてください。
-
ネットワークをクックする前に、どんな感じでワークが処理されるのか把握したいのであれば、 Taks ▸ Generate Static Work Items (Static vs. Dynamicを参照)を使用します。
ワークアイテム ¶
読み込み時間 ¶
HDA Processor TOPノードと ROP Fetch TOPノードのワークアイテムは、 プロセス外で 実行されます。 つまり、これらのプロセッサ系ノードは、ワークアイテム毎に新しくHoudiniセッションを起動する必要があります。 その結果、実ワークの処理時間よりも、ワークアイテムの プロセスを起動する時間 の方が長くなる場合があり、ワークアイテムの読み込み時間が遅くなってしまいます。
この問題を回避する方法が2つあります:
-
ROP Fetch TOP と HDA Processor TOP は バッチクッキング に対応しています。これは、複数フレームのワークアイテムを1プロセスでクックする処理です。例えば、 ROP Fetch TOP ノード、 ROP Geometry TOPノードだと All Frames in One Batch パラメータを有効にしたり、他のプロセッサ系ノードでも同様の機能があって、フレーム毎に1プロセスを使用するのではなく、1プロセスで全フレーム範囲をクックさせることができます。
-
ROP Fetch TOP と HDA Processor TOP は PDG Services に対応しています。PDG Servicesは同時に複数のワークアイテムをクックすることができる持続型プロセスのプールです。PDG Servicesでは、そのサービスワーカープロセスが事前に作成されてワークアイテムで再利用されるので、Houdiniセッションを起動する時間も抑えられます。
アトリビュート ¶
-
“Pull”アトリビュート参照を使用してください 。パラメータ内に
@attribute
構文を使用することで、処理内容を制御することができます(Pull参照とPush参照を参照してください)。“Pull”アトリビュート参照を使用した方がアトリビュートをプッシュしたり、カスタムノードを記述するよりも非常に簡単であり、その上、PDGには解析後にクックを再開することができる重要な機能があります。例えば、@attribute
構文を使用しないと、PDG側でどの出力ファイルの名前が変更されるのか予測できないです。 -
インタラクティブなHoudiniでは、アトリビュート参照は、現在選択されているワークアイテムからアトリビュートを参照します 。HIPファイル内の他のネットワーク(ジオメトリを生成するSOPネットワークやレンダリングをコンポジットするCOP2ネットワークなど)に
@attribute
値があると、それらの参照の“現行”値は、ネットワークインターフェース内で選択されているワークアイテムによって駆動されます。例えば、SOPネットワークの出力を表示するようにビューアペインを設定してから、TOPネットワーク内のワークアイテムをクリックすると、ワークアイテム別に異なる出力ジオメトリを表示することができます。
このメリットを利用すれば、迅速に出力ジオメトリを確認することもできます。 Show Outputシェルフツールは、Geometryオブジェクトを作成し、その中にFile SOPを作成してから、そのFileノードのパスに
`@pdg_output`
(このパスは文字列パラメータなので、エクスプレッションをバッククォートで閉じる必要があります)を設定します。 ビューア内でネットワークを表示した時に、TOPネットワーク内のワークアイテムをクリックすることで、その出力ジオメトリを表示することができます。 出力ジオメトリの検査が終わったら、そのオブジェクト/ネットワークを削除することができます。詳細は、アトリビュート参照を参照してください。
シミュレーション ¶
-
並列でシミュレーションフレームを生成しないでください 。ROP Geometry Outputノードを使ってシミュレーション出力を生成する時は、 ROP Fetch タブに進んで、 All Frames in One Batch を有効にしてください。
このオプションを無効にしたままにすると、フレームが別々に並列で生成されます。 しかし、シミュレーションは計算したいフレームまですべてのフレームをクックしなければなりません。 このオプションを無効にしてしまうと、フレーム2を計算するためにHoudiniがフレーム1とフレーム2をクックしなければならず、フレーム3を計算するためにフレーム1、フレーム2、フレーム3をクックしなければならなくなります。 これは非常に非効率です。
出力ファイル ¶
詳細は、ファイルパスを参照してください。
-
一時的な“作業進行中”ファイルと“最終出力”ファイルを別々のディレクトリに分けるようにしてください。例えば、中間ジオメトリファイルを
__PDG_TEMP__/geo
内に、最終ジオメトリファイルを__PDG_DIR__/geo
内に生成するようにしてください。こうすることで、重要な出力ファイルが検索しやすくなり、強制的にリビルドするためにそれらの一時ファイルを一括でクリアすることができます。 -
破壊的なファイル操作(移動/名前変更、削除)をしないほうが良いです。これらのファイル操作を行なってしまうと、ファイルを見失なってしまって、ディペンデンシーシステムに余計なワークを発動させてしまいます。