カスタム ICENode の処理

 
 
 

ICENode は通常、入力データを読み取り、新しい値を計算し、入力データを絞り込んで、最終的に評価対象の出力ポートを設定することによって、関数として機能します。ICENode は、BeginEvaluateEvaluateEndEvaluate という複数のフェーズで処理されます。Evaluate フェーズは、ICENode アルゴリズムを一括で実装し、入力ポート データにアクセスする関数です。

Softimage は、現在のグラフ設定に応じて、評価用にカスタム ICENode に送信するときのパケットのサイズと数を決定します。この処理は、Evaluate コールバックによってパケットが並列処理されるマルチスレッド コンテキストで行われます。たとえば、カスタム ICENode が接続されたサブグラフ部分が、4 個の CPU が搭載されたコンピュータで 3,800 個の頂点がある出力メッシュ ジオメトリのコンテキストにおいて評価さるというケースを考えてみます。 パケット サイズは Softimage によって決定されます(たとえば、500 個の頂点など)。このサイズは、評価時に以下のように使用されます。

最初の CPU が処理を終えると、次に使用可能なバッチを取得します。 たとえば、以下のようになります。

これらの各パケット(またはサブセット)は、個別にグラフを通過します。 1 つの ICENode が多くの CPU に対して同時に評価をしていることはありますが、同じサブセットが同じ ICENode を 2 回通過してはなりません。