On this page |
概要 ¶
クックとは、ネットワークを実行してその結果を生成することです。 従来型クックまたはコンパイル型クックのどれかを使用してCopernicusネットワークをクックすることができます。 Copernicusは、時間ベースでデータをキャッシュ化しないので、タイムライン内のフレームが変わる度に再クックが行なわれます。
Copernicusは、COPネットワーク内でノードを表示する時は、自動的に従来型クックを使用します。
COP Network SOP、
ROP Image Output COP、
Image ROPには、 Compiled Cook パラメータが用意されており、これを有効にすることで、従来型クック(デフォルト)からコンパイル型クックに変更することができます。
COP Network SOPの場合、そのネットワーク内の個々のCOPのクックはそれでも従来型クックを使用するので、このパラメータはSOP全体の結果をクックする時にのみ適用されます。
Tip
COP Network SOPの Compiled Cook トグルを有効にすると、 Output APEX Graph パラメータが出現します。 この Output APEX Graph トグルを有効にすると、APEXグラフを出力することができます。
従来型クック ¶
従来型クックは、Copernicusが使用するデフォルトの方法であり、ネットワーク内でSOPがクックする方法に似ています。 各非HDA COPは、すべての入力を受け取ってから、すべての出力をクックします。 従来型クックは、そのノードの中間結果をキャッシュ化するため、ディスプレイフラグを変更した時に、以前にクックされた結果を高速で表示することができます。
以下は、従来型クックがメリットになる場面です:
-
インタラクティブなワークフローを使用する場合。
-
キャッシュ化の恩恵が得られるほどにネットワークが大規模なノードチェーンになっている場合。
-
ネットワークの大部分が時間依存でない大規模なネットワークを保存したい場合。
コンパイル型 ¶
コンパイル型クックは、SOPでのコンパイルブロックのクックの動作に似ています。 クックしたいネットワーク区間を選択すると、Copernicusは、そのネットワークを分析して、要求された結果を取得するプログラムを構築します。 つまり、コンパイル型クックは、結果をキャッシュ化するための新しいプログラムを構築してそれを実行する必要があります。 各非HDA COPは、要求された出力を計算するのに必要な入力のみを取得します。つまり、要求されたデータのみをクックします。 ストレージは再利用されるので、Copernicusは、メモリ使用量を最小限に抑えるために不要な中間データとレイヤを削除します。
以下は、コンパイル型クックがメリットになる場面です:
-
結果をレンダリングする場合。
-
ネットワークの特定の区間のみをクックしたい場合。
従来型クックとコンパイル型クックを組み合わせる方法 ¶
従来型クックとコンパイル型クックを組み合わせてネットワークの一部をクックすることができます。
-
Copernicusネットワーク内で、
Block Begin COPの出力を、クックしたい最初のノードの入力に接続します。
-
クックしたい最後のノードの出力を
Block End COPの入力に接続します。
Tip
手動でBlock Begin COPとBlock End COPを追加しなくても、シーン内にBlock COPを追加することで、自動的にこれらのブロックを追加することができます。
-
以下のどれかの操作を行ないます:
-
Block End COPの Enable Compiling を有効にすると、コンパイル型クックを使用してブロックの出力が生成されます。
-
Invoke Block COPを追加し、 Block End Node パラメータにそのBlock End COPを設定します。これは、そのブロックを動的にバインドされる入力を持ったプログラムとして実行します。
-
メモリ ¶
Copernicusは、OpenCLを使用します。 つまり、CopernicusはGPUメモリを使用するので、たくさんのビデオRAM(vRAM)を必要とします。 Houdiniは、COPレイヤが使用しているvRAMの容量を追跡します。 vRAMが増えていき、GPUメモリが少なくなった時、または、現行プロセスが設定したOpenCLメモリ容量以上を消費するようになった時にHoudiniは自動的にデータをメインメモリに移します。 これが原因でHoudiniの処理が遅くなってしまいます。
HOUDINI_OCL_COP_MEMORY環境変数を使用することで、COPが利用可能なOpenCLデバイスメモリ量を制御することができます。 他にも、Cache Manager window( Windows ▸ Cache Manager を選択)を開くことで、現在の COP OpenCL Buffer Cache メモリ量を確認したりクリアすることができます。