アニメーションのパフォーマンスの向上

Maya 2023.2 では、GPU デフォメーション ワークフローが大幅に強化されました。これらの強化機能の 1 つにより、GPU 評価用のグラフが頻繁に再構築(または再パーティショニング)される問題は解消され、大規模なシーンで変更が発生した場合に問題が生じることはなくなりました。現在は、キーを作成および削除しても不要な再パーティショニングは発生しません。また、新しいスケジュール モードにより、ディスプレイ レイヤ(Display Layers)または選択項目の分離(Isolate Select)を使用してオブジェクトの表示/非表示を切り替えるときに、再パーティショニングの発生を大幅に抑えることができます。

もう 1 つの大きな変更点は、評価マネージャで GPU のノードをスケジュールするときに、少数の大きなクラスタとしてスケジュールするのではなく、より詳細な方法でスケジュールできるようになったことです。これにより、グラフを効率的に削減できます。

エバリュエータは、GPU での評価対象となる、完全に確認および検証されたノードだけでなく、GPU に存続する可能性のあるノードも要求するようになりました。GPU 評価が有効な場合、エバリュエータは再パーティショニング後に GPU または CPU で評価されるノードを動的に決定するようになりました。これにより、動的な変更にすばやく対応できるようになり、再パーティショニングの必要性は大幅に減ります。

GPU ダウンロード

GPUダウンロード/リビルドの最適化: 3 層フェイシャル リグと 115 個のジョイントを含む、約 25 万個の頂点を備えたキャラクタ

たとえば、上の図のキャラクタには uvPin ノードを含むネックレスがあり、このノードからリボンにリジッドなペンダントがアタッチされています。リボン自体は、ボディのジオメトリによって変形されています。以前は、uvPin または毛根が GPU に存続することはできなかったため、キャラクタ全体が GPU に存続することもできませんでした。

この特定のケースでは、ペンダントの存在によってネックレスが GPU 上に存続することは禁止されるため、キャラクタのボディ全体が GPU に存続することはできませんでした。この問題を回避するには、通常、低解像度で並列デフォメーション構造を導入していました。

現在は、GPU ダウンロードまたはリードバックがサポートされています。GPU が CPU メッシュにデフォメーションされた後、リボンのジオメトリは自動的に変換されます。このようにして、CPU でコンストレイントが計算されます。(この処理が行われると、ビジュアライゼーション グラフの矢印が緑から青に変わります)。

GPU ダウンロードの例: 上図では、GPU ダウンロードが無効になっています。下図では、GPU ダウンロードが有効になっていて、GPU で実行される緑色のノードが増えています。

注: GPU ダウンロードは評価マネージャの新機能です。この機能は常にオンになっていますが、評価ツールキットのデバッグ オプションとして一時的にオフにすることができます。また、ブロック ポリシーとして、GPU アウトライナで接続済みのノード グループごとに GPU ダウンロードをブロックすることもできます。

評価ツールキット

現在の状況を分析するために、評価ツールキット(Evaluation Toolkit)に多くの UI およびデバッグ ツールが追加されました。たとえば、ビューポートで、エバリュエータが要求しているノードの数と、GPU で評価されているノードの数を確認できます。

例として、次のイメージには「351k [46/184]」と表示されています。これは、シーンの頂点の数が約 341 000 で、deformerEvaluator の 184 個のノードのうち 46 個 が GPU 上にあることを示しています。
また、評価ツールキットから生成されたビジュアライゼーション グラフの機能強化により、表示される情報量が増えました。緑色のノードは GPU で評価されていますが、青色のノードは CPU で評価されています。グレーのノードは、エバリュエータの外部入力および外部出力となるノードです。
エバリュエータ内のすべてのノード、ノードの評価方法、GPU にノードが存続しないできない理由、およびノードのグループ化方法を示す新しいアウトライナもあります。

GPU アウトライナ

このオプションを使用してデフォメーション グラフの一部を視覚化し、シーンの一部に焦点を当てることもできます。

注:

GPU 評価の効率は利用可能なハードウェアに大きく依存するため、ノードが GPU 上に存続しないよう手動でコントロールしなければならない場合があります。

アウトライナを使用して、ノード(またはノード セット)が GPU に存続しないようブロックする各種モードを設定します。