Houdini 21.0 SolarisとKarma

Karma XPUの事前コンパイル

Karma XPUの最初のピクセルまでの時間を短縮します。

On this page

Karma XPUでビューポートレンダリングを開始すると、OptiXデバイスが短時間停止することがよくあります。 この遅延の原因は、レンダラーがGPU上で実行するプログラムをコンパイルするからです。 ビューポートの右上コーナーには、それに該当するメッセージが表示されます。

Karma XPUは、以下の2つの基本的なタイプのプログラムを区別します:

レンダーカーネルは、XPUの中核となるレンダリングコードであり、レンダリング処理に不可欠です。 このコードは、シーンの要件に応じて変化し、コンパイルするのに数秒から数分かかることがあります。 一度コンパイルが済むとキャッシュ化されるため、同じ(または類似の)シーンを再ロードすると、そのキャッシュ化された結果が使用されるので、レンダリングが即座に開始されます。 しかし、長い初期待ち時間を避けるために、カーネルを事前コンパイルすることができます。 この機能はHoudini21で導入されました。

レンダーカーネルの事前コンパイル:

Note

事前コンパイルできるのは、レンダーカーネルのみです。 ユーザシェーダは、そのノードグラフの配置を予測することができないため、事前コンパイルすることはできません。 幸いなことに、ユーザシェーダは通常、レンダーカーネルよりもはるかに速くコンパイルされるため、パフォーマンス上の大きな問題にはなりません。

Houdiniを新規インストールしてから初回にSolaris LOPノードを作成すると、メッセージが表示されます。 このメッセージは、カーネルを事前コンパイルすることを示唆しています。 今後このメッセージを表示したくない場合は、適切なボタンをクリックしてください。 カーネルを事前コンパイルしたい場合は、そのメッセージが表示された時に事前コンパイルする必要はなくて、いつでもこの処理を開始することができます。 それは、HoudiniのメインメニューRender ドロップダウンメニューに Pre-compile Karma XPU Render Kernels エントリがあります。

カーネルをコンパイルする前に現在の作業を保存し、できるだけ多くのコンピュータリソースを解放することを推奨します。 一部のユーザからコンパイル中にコンピュータの動作が遅くなったり、応答しなくなったりしたという報告がありました。 事前コンパイルを開始したら、ウィンドウでその進捗を監視することができます。

この処理を中断して後で再開することもできます。 この処理全体には数時間かかることがありますが、実際の所要時間はシステムの仕様に大きく依存します。

事前コンパイル

カーネルの再コンパイルが必要になる場面がいくつかあります。 例えば、Houdiniを新規インストールした時や、GPUドライバのアップデート後などです。 レンダリング時に、キャッシュを更新するタイミングであることを知らせるビューポートメッセージが表示されます。

無効なキャッシュは、レンダリング品質には影響しませんが、Karma XPUはその場で不足しているカーネルをコンパイルします。 この場合、再び待ち時間が必要になります。

キャッシュの場所

キャッシュは、数ギガバイトのディスク容量を使用する可能性があり、Houdiniのメジャーリリース毎に別々に保存されます。 これを削除してcompile-as-you-go(コンパイルしてすぐに実行できる)モードに戻すには、以下の場所にある呼応するHoudiniディレクトリを削除してください。

Windowsユーザの場合、Houdini21.0キャッシュはここに格納されます:C:\Users\USERNAME\AppData\Local\NVIDIA\OptixCache\Houdini21.0

Linuxユーザの場合は、ここに格納されます:/var/tmp/OptixCache_USERNAME/Houdini21.0

ネットワークとファーム

カーネルを一元的に、例えばネットワークドライブに保存し、キャッシュを共有することで、マシン毎にカーネルを再コンパイルするのを避けようと考えている方もいらっしゃるかもしれません。 カーネルは非常に特殊なシステムやGPUの仕様に合わせてコンパイルされているため、そう簡単に共有することはできません。 私たちはこれを 推奨しません

ファームマシンでは、カーネルを事前コンパイルする必要はありません。その理由は以下の通りです:

  • ファームマシンは必要に応じてシェーダ/カーネルをコンパイルします。

  • 事前コンパイルは主にインタラクティブな操作を向上させるためにあります(ファームマシンには必要ありません)。

SolarisとKarma

SolarisとUSD

  • USDの基本

    いくつかUSDの概念について取り上げ、それらの概念とHoudini USD対応との関係性について説明します。

  • LOPの挙動

    Solaris LOP(Lighting Operator)がUSDを生成/変更する際の挙動について説明します。

  • Solarisユーザインターフェース

    LOPネットワークとUSDデータを操作するためのユーザインターフェースの使い方を案内します。

  • プリミティブマッチングパターン

    USDプリミティブマッチング構文の使い方。

  • LOPとUSDの用語集

    USDわかりますか?

  • Solarisシーンビューア

    Houdiniオブジェクト/SOPビューアと比較したSolarisビューアの違い/拡張について説明します。

  • USDでのVEXの使い方

    スクリプトによってSolaris/USDをカスタマイズする。

  • USDへ書き出す方法

    USDデータをディスクに保存します。

  • SOP Geometry I/O

    HoudiniがSOPジオメトリをUSDに変換する方法、その工程を制御する方法の詳細。

  • Component Builder

    Component Builderツールは、マテリアル、バリアント、ペイロード、レイヤをサポートし、SOPからUSDモデルを作成するためのネットワークスニペットを配置します。

  • パフォーマンスTips

    Solarisのインタラクティブなワークフローを向上させます。

  • サンプルシーン

    SolarisとUSDを学習するのに役立つシーンとアセットを紹介します。

Karma

  • Karma

    Houdiniの物理ベースのUSDレンダラー。

  • Karma XPU

    Houdiniの高速でモダンなXPUレンダーエンジン。

  • カラーマネージメント

    OCIO、カラー空間、ガンマ、トーンマッピングについて詳しく学習します。

  • レンダリング統計

    進行中のレンダリングやレンダリング画像のレンダリングプロセスに関して、様々な統計情報を表示する方法。

Karmaユーザガイド

ルック開発

  • MaterialX

    HoudiniにはMaterialXシェーダノードに呼応させたVOPノードが用意されています。これらのノードを使用してシェーダネットワークを構築したり、既存のMaterialXベースのシェーダをインポートすることで、(HoudiniのUSDレンダラーの)KarmaでMaterialXシェーダノードを利用することができます。

  • UDIMパス

    テクスチャ空間の異なるタイルを、それぞれ別の解像度で、異なるテクスチャファイルにエンコードすることができます。その後、kaiju.exrといったテクスチャファイル名を指定すると、Houdiniがロード時にそのトークンを特定のタイルアドレスに置き換えてくれます。

  • シェーダ変換

    シェーダノードのUSDプリミティブへの変換を含む、Solarisシェーディングフレームについて説明しています。

  • Shotbuilderツール

    マルチショットパイプライン用便利ツール。

プロシージャル

補足ドキュメント