| On this page |
AOVs ( Arbitrary Output Variables :任意の出力変数“)は、別名 Render Vars (レンダリング変数)または Extra Image Planes (追加画像平面)とも呼び、OpenEXRなどの”ディープ"(マルチチャンネル)に対応したレンダリング画像フォーマットで、追加でピクセル単位のデータを記録します。
少し分かりやすく説明すると、AOVsを使用することで、レンダリング画像を別々のパスに分割することができます。 例えば、深度、ディフューズ、発光、透明度などの情報を抽出することができます。 その後、それらの様々なパスをコンポジットアプリケーションに取り込んで、エフェクトや色調の調整を施します。 そして、それらの加工された画像平面/AOVを最終画像に合成します。
標準のAOVs ¶
AOVを作成するにはいくつかの方法がありますが、最も手軽な方法は、Karma Render Settings LOPを使用することです。
Image Output ▸ AOVs (Render Vars) タブでは、そのLOPで利用可能なすべてのAOVを確認することができます。
AOVは Diffuse や Volume といったセクションでグループ化されており、そこでエクスポートしたいAOVを有効にすることができます。
AOVを個別に管理したい場合は、Karma Standard Render Vars LOPを使用すると良いでしょう。
このLOPには、Karma Render Settings LOPとまったく同じカテゴリが用意されているものの、AOV毎に固有のパラメータがいくつか用意されています。
-
Solarisフィルタ構文を使用して、色々なフィルタを適用することができます。 フィルタパラメータの関連ドロップダウンメニューには、事前定義されたフィルタのリストが含まれています。
-
Output Colorspace パラメータでは、カラー空間をAOVに直接適用することができます。 このパラメータの関連ドロップダウンメニューから、利用可能なカラー空間(例えば、 ACEScg )を選択してください。
-
Precision ドロップダウンメニューでは、AOVのカラー深度を定義します。 16 Bit および 32 Bit のどちらかを選択することができます。
Split per LPE Tag チェックボックスは、AOV関連LOPノード すべて に共通して用意されています。
このオプションを使用するには、光源にLPEタグが割り当てられている必要があります。
LPEタグを使用することで、選択したAOVに対する特定の光源の寄与度を抽出することが可能です。
例えば、red、white、blueというLPEタグが設定されていれば、beautyAOV(C)は自動でC_red、C_white、C_blueに分割されます。
追加Render Vars ¶
Karma Render Settings LOPには、 Extra Render Vars セクションがあり、ここでカスタムAOVのルールを定義することができます。
Render Vars パラメータの値を増やすと、カスタムAOV毎にパラメータセットが生成されます。
代わりにAdditional Render Vars LOPを使用することもできます。
Tip
あなたがカスタムAOVの作成にまだ慣れていないのであれば、 Name パラメータのドロップダウンメニューを開いてください。 そこには、事前定義されたルールやAOVの長いリストが表示されます。 これらのエントリには、最も重要なAOVが網羅されているはずです。 それでもさらにカスタマイズが必要な場合は、これらをテンプレートとして利用すると良いでしょう。
Source Type のドロップダウンメニューでは、作成したいAOVのタイプを指定します。
-
Raw がデフォルトの選択肢になっており、レンダラーが Source Name 文字列(例えば、カメラ空間の深度を取得する場合は
ray:hitPz)を解釈できる必要があります。 -
Primvar では、AOVに出力されるアトリビュート(Primvar)を定義することができます。 典型的な例を挙げると、オブジェクトのテクスチャ座標を書き出すには
stを指定します。 -
LPE では、光線がサーフェスに相互作用した結果を出力するために使用します。 例えば、
beauty、diffusereflection、glossytransmissionなどがあります。 Light Path Expressionsの作成に関する詳細は、LPEガイドを参照してください。 -
Intrinsic のルールには、例えばCPU時間や光線の数などの統計情報を含めることができます。
Scene Graph Tree ¶
アクティブなすべてのAOVは、Scene Graph Treeペインにリストされます。
それを確認するには、/Render/Products/Varsブランチを展開してください。
以下の場所では、そのデフォルトパスを変更することができます:
-
Karma Render Settings LOP ▸ Image Out Put ▸ AOVs (Render Vars) ▸ Existing Render Vars
-
Karma Standard Render Vars ▸ Parent Primitive Path
-
Additional Render Vars ▸ Parent Primitive Path
AOVsを確認する方法 ¶
インタラクティブなプレビューレンダリングを開始すると、ビューポート内でアクティブなAOVを直接評価することができます。
-
ビューポートの右上コーナーにある、 1つ目 のドロップダウンメニューを開きます。 デフォルトのエントリは Persp になっています。メニューから Karma デリゲートのどれかを選択してください。
-
ビューポートの右側にあるアイコンバー上の
Render Outputs ボタンをクリックすると、すべてのアクティブなAOVが表示されます。 リストから1つを選択すると、レンダリングが更新され、そのチャンネルを確認することができます。
MPlayにレンダリング結果を出力した場合、ドロップダウンを使用して、利用可能なすべてのAOVから選択することができます。 メニューのデフォルトのエントリは C です。
マテリアルベースのAOVs ¶
AOVは、サーフェスプロパティ、Primvars、その他のソースタイプだけでなく、マテリアルからも作成することができます。 最初の手順は、AOVを定義して、以下に示すシェーダネットワークを作成することです。
すべての作業は、Material Library LOPの中で行ないます。
stage レベルでそのMaterial Library LOPをダブルクリックして中に入ります。
そこで、Tabメニューから Karma Material Builder ツールを実行します。
このツールは、
Subnetwork VOPをセットアップします。そのSubnetwork VOPをダブルクリックして中に入ると、基本的なシェーダネットワークが表示されます。
次に、MtlX Image VOPを配置します。
Filename パラメータで、
Open floating file chooser… ボタンをクリックしてテクスチャを読み込みます。
この目的は、このテクスチャをカスタムマテリアルベースのAOVとしてエクスポートすることです。
Karma AOV VOPを配置します。
複数のAOVを書き出したい場合は、テクスチャ毎に1個のKarma AOV VOPが必要になります。
新しいノードのパラメータを確認すると、 Create Render Var が有効になっていることが分かります。
このオプションは、 AOV Name に入力された名前でAOVを作成します。
デフォルト値が$OSなので、AOVの名前にはそのノード名が使用されます。
ここでは、名前をkarmaとします。以下のようにノードを接続します:
-
MtlX Image VOPの出力をKarma AOV VOPの入力に接続します。
-
Karma AOV VOPの出力を
Material_Outputs_and_AOVsノードのnext入力に接続します(next入力の名前は、その接続されたKarma AOVの名前に変わります)。
これで、Karma AOV VOPの入力先を別のノード(例えば、MtlX Unified Noise 3D VOPやその他の有効なノード)に置き換えることもできます。
KarmaはAOVを自動で更新します。
Scene Graph Treeを確認すると、
karmaというAOVが表示されていることが分かります。
ノイズ除去とトーンマッピング ¶
Karma Render Settings LOPには、AOVのノイズを除去するためのパラメータが用意されています。 Image Output ▸ AOVs (Render Vars) ▸ Filters タブに進みます。 Denoiser ドロップダウンメニューから、デノイザ(例えば、 NVIDIA OptiX Denoiser )を選択します。
AOVs パラメータには、ノイズを除去したいRender Varsをスペースで区切ったリストを指定します。 正しいAOV名が分からない場合は、 AOVs パラメータの関連ドロップダウンメニューからエントリを選択することもできます。 そこには、アクティブなすべてのRender Varsが網羅された完全なリストが表示されます。
また、 Filters タブには、 Tone Map ドロップダウンメニューがあります。 ここでは、 AOVs パラメータに追加したRender Varsに適用されるトーンマッピングカーブを選択することができます。 操作方法は、デノイザと同様です。
順序を定めたRender Vars ¶
状況によっては、最終画像/出力内のAOVの順序を変更したい場合があります。
その場合は、Render Product Edit LOPを使用し、Karma Render Settings LOPの下流に追加してください。
Render Product Edit LOPの Standard タブに Ordered Render Vars パラメータがあります。
このパラメータの関連ドロップダウンメニューには、利用可能なすべてのAOVのリストが表示されます。
画像に保存したい順序でAOVを追加してください。
特定のAOVを最上位に配置し、残りの順序は問わない場合は、ワイルドカードを使用すると良いでしょう例:
/Render/Products/Vars/combinedglossyreflection /Render/Products/Vars/**
MPlayにレンダリング結果を出力した場合でも、この順序は維持されます。
ただし、MPlayでは最終画像が表示されるようにデフォルトで常にbeautyパスが表示されます。
また、Scene Graph TreeにはAOVの順序が反映されない点にも注意してください。
AOVsを書き出す方法 ¶
Karma Render Settings LOPでは、画像およびそのAOVの出力パスを指定することができます。
Output Picture パラメータは、様々な変数を組み合わせてファイル名を生成しますが、カスタムパスを定義することもできます。
ディスク上の保存先を選択するには、 Open floating file chooser ボタンをクリックします。
最後にAOVsを書き出すには、USD Render ROPも必要になります。
そこで、 Valid Frame Range を調整して、 Render to Disk ボタンまたは Render to Disk in Background ボタンをクリックします。
アクティブなAOVは、マルチチャンネルEXRファイルとして保存されます。
Render to MPlay ボタンをクリックした場合、MPlayパネルの File メニューを開いて、 Save Frame As… または Save Sequence As… を選択することができます。 表示されるダイアログに従って操作することで、EXRファイルを保存することができます。
Cryptomatte ¶
KarmaはCryptomatte AOVsに対応しており、以下のデータソースを使用してCryptomatte IDsを作成することができます:
-
Primitives
-
Primsにバインドされているマテリアル
-
ConstantまたはUniformの
文字列/整数Primvars
インスタンス毎に固有なIDを生成していれば、マテリアルスタイルシートを使用する必要がありません。
あなたがすべき事は、インスタンス毎に固有の文字列Primvar値を割り当てることだけです。
Tip
詳細は、Cryptomatteガイドを参照してください。