| On this page |
Warning
現在のところ、Karma XPUはボリュームのレンダリングに 対応していません 。
ボリュームをレンダリングできるようにしたいのであれば、まず最初に
Convert SOPを使用してボリュームをVDBsに変換する必要があります。
概要
現在のところ、XPUエンジンはアルファ品質のプレビューリリースです。 XPUエンジンはまだ開発中です。 現在の機能は未完成で、変更の可能性があるため、ドキュメンテーションも十分ではありません。 これを念頭に置いたうえでご利用ください。 なお、このヘルプページの内容は、最新のデイリーリリースのXPUに基づいています。
Karma XPUは、Karmaレンダラーから選択可能なエンジンで、CPUリソースだけでなく、GPUとハードウェアアクセラレーションも活用します。 検知できた互換デバイス(複数のGPUを含む)を使用します。 GPUのメモリ不足などが原因であるデバイスが失敗すると、他のデバイス(CPUを含む)がその処理を引き受けてフレームのレンダリングを完了します。 どのような組み合わせのデバイスを使用した場合でも、XPUエンジンはまったく同じ結果を生成します。
ハードウェアアクセラレーションを使用するので、Karma XPUはCPUのみのエンジンと比べると 非常に高速 です。 しかし、XPUは機能が少ないため、より精度の低い、または、CPUのみのエンジンとは 異なる 出力を生成する可能性があります。
Karma XPUは、(現在のところ)CPUエンジンに置き換わるものではありません。 むしろ、アーティストの試行錯誤を促進させることを目的としたパフォーマンスの良い機能限定のサブセットです。 XPUは、高品質のプレビューレンダリングを高速に生成したい場合に大変便利です。
対応しているハードウェア
-
Karma XPUは、現在のところCPUおよびNVidia Optixデバイスのみに対応していて 、OptixがXPUで最も最適化されたコードパスになっています。将来のバージョンでは、CPUパフォーマンスの強化と、より多くのGPUハードウェアの対応が見込まれています。
-
NVidiaを使用する場合は、495.89以降のバージョンのドライバが必要です。
シェーディングの概要
Karma XPUは、ビルトインのUSDマテリアル(USD Preview Surfaceなど)と、Karmaでシェーディングを担うことになるであろうMaterialXに対応しています。
名前にKarmaが含まれるVOPシェーダ(Karma Hairシェーダなど)は、CPUとXPUで変わらないはずです(BSDFの評価の違いやカーブの交差が原因で、シェーディングにわずかな違いが生じる場合もありますが、実行するコードは同じです)。
開始時、Karma XPUはシェーダをデバイス固有のフォーマットにコンパイルする必要があります。新しいシーンをロードしたり新しい機能を有効にした場合は、このプロセスが原因で、XPUの一時停止やもたつきが生じることがあります。コンパイルされた結果はキャッシュ化されるので、2回目以降、同じシーンのレンダリングでは、シェーダのコンパイルのために一時停止することはありません。
How to
| To... | Do this |
|---|---|
Karma XPUを使用してSolarisビューアをレンダリングする |
|
ビューポートにデバイスおよびレンダリングの統計情報を表示する |
|
Karma XPUを使用して完全なレンダリングを行なう |
|
ビューポート
ビューポート内のスクリーンの右上には、レンダリングの進捗状況の表示下にアクティブなデバイスが表示されます。デバイスは“Optix”または“EmbreeCPU”としてリストされ、大括弧内にステータスのテキストが表示されます。ステータスは次のいずれかです:
-
“idle” - デバイスは動作していません
-
“init” - デバイスは初期化しています
-
“fail” - デバイスは失敗しました
-
パーセンテージは、特定のデバイスが現在の画像に対して、それまでにどれくらい貢献したかを示します(Karma XPUが書き出され、GPUに最適化されている場合、“Optix”などの見込まれるGPUデバイスの方が“EmbreeCPU”よりもはるかに大きく貢献します)。
個々のデバイスに関するより詳細な情報は、レンダリング統計情報でも確認することができます。
対応している機能と制限事項
-
Karma XPUは以下のレンダリング設定に対応しています:
-
Disable Lighting
-
Enable Denoising
-
Pixel Samples
-
IPR Bucket Size(プレビューフレームの解像度を制御)
-
IPR Reserve Threads(2または3に設定すると、XPUの応答が速い)
-
Light Sampling Mode
-
Light Sampling Quality
-
Dicing Quality Scale
-
Disable Motion Blur
-
Enable Depth of Field
-
Automatic Headlight Creation
-
Ray Bias
-
Russian Roulette Cutoff Depth
-
Constrain by Maximum Roughness
-
Color Limit
-
Shared Color Limit
-
Indirect Color Limit
-
Pixel Filter Size(ガウスピクセルフィルタに対応したATMのみ)
-
Random Seed
-
-
以下のレンダリングジオメトリ設定に対応しています:
-
Render Visibility
-
Geometry Time Samples
-
Transform Time Samples
-
Enable Caustics
-
Caustics Roughness Clamp
-
Diffuse Limit
-
Reflection Limit
-
Refraction Limit
-
Volume Limit
-
Fix Shadow Terminator
-
-
インタラクティブなビューアとして使用する場合の選択、ハイライト、USDのPurposeに対応しています。
-
ライトブラー、カメラブラー、トランスフォーメーションブラー、変形ブラーなど、モーションブラー(およびその関連設定すべて)に対応しています( ボリュームのモーションブラーは未対応 )。
-
Lens Shaderを 除く すべてのカメラ設定に対応しています。
-
USDメッシュ/ポリゴンPrimの対応状況:
-
バックフェースカリングには 対応していません
-
stringタイプのPrimvarを除くすべてのPrimvarに対応しています -
インスタンス毎の設定はまだ 対応していません
-
-
USD BasisCurves Primの対応状況:
-
linear、cubic-bspline、catmull-romのタイプのみに対応しています -
rounded-tubesレンダリングのみに対応しています -
バックフェースカリングのオフには 対応していません
-
stringタイプのPrimvarを除くすべてのPrimvarに対応しています -
インスタンス毎の設定はまだ 対応していません
-
-
ポイントの対応状況:
-
stringタイプのPrimvarを除くすべてのPrimvarに対応しています -
インスタンス毎の設定はまだ 対応していません
-
円盤または有向の円盤のタイプに 対応していません
-
-
ボリュームの対応状況:
-
VDBボリュームのみに対応しています(Nano-VDBを介して)
-
Pyro Previewシェーダのみ動作します
-
マテリアル/シェーディング
まとめ
-
MtlX Standard Surface、USD Preview Surface、
Karma Hairシェーダに完全に対応しています。
-
すべてのUSD標準シェーダ(USDPreviewSurface、USDPrimVarReader、USDTransform2D、USDUVTexture)に対応しています。
-
MaterialXの大半に対応しています:
-
すべての標準ライブラリノードとすべての複合/補助ノードに対応しています。
-
mtlxUsdPreviewSurfaceに対応しています。
-
mtlxStandardSurfaceに対応しています。
-
MaterialX PBRノードに 対応していません 。
-
-
ボリュームはXpuPyroPreviewマテリアルのみに対応しています。
-
その他はすべて(principledshaderなど)自動的にUSDPreviewSurfaceに変換されますが、成功レベルは様々です。
-
Mtlx Dotノードを使用し、 Note パラメータを以下のオプションのいずれかに設定することで(値はすべてワールド空間)、MaterialXでRay Importを組むことができます。
-
ray:P -
ray:D -
ray:time -
ray:near -
ray:far -
ray:contrib -
ray:hitP -
ray:hitdist -
ray:hitN -
ray:hitNg -
ray:level -
ray:isshadowray
-
詳細
-
一般的な注意点:
-
現在のところ、
Mtlx Tangent、
Mtlx BiTangent、
Mtlx GeomColorノードの“index”パラメータは無視されます。
-
base/index0のUVストリームには、“uv”、“uv0”、“st”、“st0”のいずれかの名前を付けることができます(この順番で選択されます)。
-
-
実装されていないMaterialXノード:
-
UsdPreviewSurface:
-
法線マッピングは、法線マップがbase/index0のUVストリーム(“uv”、“uv0”、“st”、“st0”)によってアクセスされる場合にのみ正しく動作します。
-
“occlusion”パラメータは無視されます。
-
-
mtlxStandardSurface:
-
“coat_normal”パラメータは無視されます。
-
“specular_rotation”と“coat_rotation”の回転を合わせて接線の回転を1回しか実行できません(仕様にしたがって別々に回転しません)。
-
MaterialXでは、機能する透過系パラメータは“transmission”と“transmission_color”のみで、残りはすべて無視されます。
-
MaterialX規格と異なり、“thin_walled”は期待通りに動作します。
-
テクスチャ
-
現在のところ、テクスチャはレンダリングの開始前にGPUメモリにロードされ(XPUはKarma CPUのようにキャッシュ化に対応していません)、レンダリング中は静的なままです。このため、XPUではテクスチャに一部制限が適用されます。
-
テクスチャ解像度は、2048×2048に制限されます(
KARMA_XPU_MAX_TEXTURE_RES環境変数によって設定可能)。 -
UDIMは、10×10の範囲に制限されます(
KARMA_XPU_MAX_UDIM_UおよびKARMA_XPU_MAX_UDIM_Vの環境変数によって設定可能)。
ライティング
-
対応しているタイプ(Point、Rectangle、Sphere、Disk、Cylinder、Distant、Dome)。
-
Cylinderライトに 対応していません (もうすぐ対応)。
-
Geometryライトに 対応していません 。
-
Shaping機能(例えば、Spotlights、Barndoors,、Focus)に対応していますが、 IESに対応していません 。
-
LightLinkingに対応しています。
-
ShadowLinkingに 対応していません 。
-
以下のライトプロパティに対応しています:
-
“Base Properties”タブのすべて
-
Color(Shadowタブ)
-
Sampling Quality(Karmaタブ)
-
Force Uniform Sampling(Karmaタブ)
-
Maximum HDRI Size(Karmaタブ)
-
Single Sided(Karmaタブ)
-
Render Light Geometry(Karmaタブ)
-
Light Geometry Casts Shadow(Karmaタブ)
-
ドームライトと矩形ライトの両方で動作するテクチャ
-
現在のところ、ドームライトではlat-long環境マップテクスチャ のみに対応 (つまりシックスパックまたはキューブマップ環境マップに 対応していません )
-
AOVs
-
LPEに対応しています。
-
Mtlx Dotノードで Note パラメータを
aov:nameに設定することで、シェーダはAOVをエクスポートすることができます。例えば、MaterialXシェーダネットワーク内にDotノードを作成し、 Note パラメータを
aov:foobarに設定してから、レンダリングノードでRender Varの名前としてfoobarを追加し、 Source Type を Raw に設定します。 -
stringタイプのPrimvarを除く、カスタムのユーザPrimvarに対応しています。 -
以下のハードコーディングされたAOVに対応しています:
-
Cf -
Af -
lpe:C.*
-
-
以下のハードコーディングされたレイAOVに対応しています(常にワールド空間):
-
ray:D -
ray:hit -
ray:hitP -
ray:hitPz -
ray:element -
ray:primid -
ray:hituv -
ray:hitdist -
ray:hitN -
ray:hitNg -
ray:hdprim -
ray:hdinst
-
-
以下のハードコーディングされたPrimvar AOVに対応しています(常にワールド空間):
-
primvar:P -
primvar:N -
primvar:Ng -
primvar:T -
primvar:B -
primvar:width -
primvar:displayColor -
primvar:uv -
primvar:st
-
デバイスの無効化
環境ファイル(JSONパッケージまたはhoudini.env)内に以下の環境変数の1つまたは複数を設定します。
変数 |
効果 |
|---|---|
|
この環境変数を設定すると、Karma XPUはOptix GPUデバイスを使用しません。 |
|
この環境変数を設定すると、Karma XPUはEmbree CPUデバイスを使用しません。 |
|
この環境変数を設定すると、Karma XPUはデバイス番号nを使用しません。例えば、複数のGPUセットアップでデバイス3を無効化するには:
|