On this page |
概要 ¶
VEX(Mantraシェーディング言語)のグローバル変数または任意のサーフェス/フォグシェーダからエクスポートした変数/パラメータで表現した画像を含む追加画像平面(またはディープラスターと呼びます)を組み込むことができます。
エクスポートする変数をIlluminance Loop内に割り当てれば、ライト毎に追加平面を出力することもできます。
レンダリング結果を.pic
(Houdiniの画像フォーマット)または.exr
(OpenEXR)の形式の画像へ出力(または特別なip
を使ってファイルの代わりにMPlayに出力)する時、追加平面を同じ複数平面の画像にメインレンダリングとして組み込むことができます。追加平面を複数の別々のファイルにする(またはメインレンダリングの別々の複数平面ファイルに複数の追加平面を格納する)ように指定することもできます。
サンプル ¶
例えば、各ピクセルにおけるグローバル変数N
(サーフェス法線)の値を画像にエクスポートすることができます。
レンダリングしたカラー平面: トーラスの上部が照らされています。
N
平面、サーフェス法線がカラーとして表示されています。
(MPlayでツールバーの左上にあるポップアップメニューを使って追加平面を見ることができます。)
他のサンプル:Houdiniの基本サーフェスシェーダは、ライティング前のシェーダのDiffuseカラーを示すdiffuse_color_noshading
という名前の変数をエクスポートします。これはコンポジットで非常に役に立つ情報です。
カラー平面:トーラスは色々な角度から照らされて、ポイントカラーが付いています。
diffuse_color_noshading
平面、ライティングとシャドウが使われる前のサーフェスシェーダの元々のカラーが表示されています。
How to ¶
To... | Do this |
---|---|
レンダーノードが追加平面をエクスポートするようにセットアップする |
|
グローバルの出力、または変数をエクスポートする |
|
シェーダ変数を出力する |
|
ライト毎に変数を出力する |
レンダーノードの Light Exports を Export variable for each light に設定すると、ライト毎に適切な出力を作成します。 ライトが1個だけ必要ならば、Mantra Output Driverの Objects タブで Solo Light に欲しいライトを設定することができます。 |
Tips ¶
-
Mantraはゼロの強度を持つライトの平面をエクスポートしません(そもそも、ライトがMantraに送信されないからです)。その強度がアニメーションする場合には、その強度が
0
の時にフレームを見失うので問題が起こる可能性があります。そのライトをMantraレンダーノードの Objects タブの Force Lights に追加(または、そのフィールドに
*
を入力)することで、Mantraにゼロの強度でもそのライトを強制的にレンダリングさせることができます。
パラメータ ¶
Extra Image Planes
任意の数の追加画像平面が同時に生成されます。第一の出力画像フォーマットが複数の画像平面をサポートしていれば、平面の名前がディープラスター平面の名前を定義するのに使われます。第一の出力デバイスが複数の画像平面をサポートしていないなら、各画像平面はファイル名を定義している平面の名前で個々のファイルに出力されます。複数の画像平面をサポートしているフォーマットは、OpenEXRとHoudini .pic(“ip”デバイスを含む)です。
Image Plane
平面の名前。
VEX Variable
VEX変数は画像平面に出力されます。変数はグローバル変数またはエクスポートしたパラメータのどれかでなければなりません。
N
変数を出力すると、その値は正規化されずに、非常に小さいか非常に大きい値になります。
Note
エクスポートすべてがサーフェスモデルVOPと非PBRレンダーを扱うわけではありません。ここでは、非PBRレンダーを扱うエクスポートのリストを載せます:
Cf
、Of
、Af
、P
、Pz
、N
、Render_Time
、Op_Id
、Prim_Id
、direct_diffuse
、direct_reflect
、direct_refract
、direct_volume
、direct_emission
、
direct_noshadow
、direct_shadow
、indirect_reflect
、indirect_refract
、sss_single
、sss_multi
、direct_samples
VEX Type
変数のタイプは正しく指定しなければなりません。
Channel Name
変数のデータを出力ファイルに書き出すチャンネルの名前(ファイルフォーマットが複数の名前を付けたチャンネルをサポートしている場合)。 VEX Variable の名前をチャンネルの名前として使うなら、このフィールドは空白のままにしてください。
Different File
このフィールドの左隣にあるチェックボックスをオンにすると、変数のデータをレンダリング画像以外の出力ファイルに書き出すことができます。
Note
異なるチャンネル名をもつ複数の追加画像平面に対して、同じ“Different file”を指定することができます(ファイルフォーマットが複数の名前を付けたチャンネルをサポートしている場合)。
Quantize
出力の記録タイプ。
Sample Filter
Opacity Filtering
透明なサーフェスがOf
を使って合成されます。
Closest Surface
サーフェスの不透明度に関係なく、一番近いサーフェスの値のみが出力されます。
Pixel Filter
サブピクセルサンプルを結合するために使うピクセルフィルターを指定して、単一ピクセルの値を生成します。
Gamma
画像のガンマ補正を指定します。
Gain
量子化する前に各カラーの値がゲインによって乗算されます。
Dither
適用されるディザ量。ディザは量子化ステップの割合として指定します(例えば、0.5は量子化ステップの半分になります)。オプションは、浮動小数点出力では無視されます。
White point
量子化中に使われる画像のホワイトポイント。
Export variable for each component
この機能をサポートしている変数に対して、コンポーネント単位のエクスポート平面を有効にします。有効にすると、複数のエクスポート平面(ROPで指定したvm_components
それぞれに1つ)が生成されます。コンポーネント単位のエクスポートは、コンポーネント単位とライト単位を基準にライティングコンポーネントを分けるためにライト単位のエクスポートと組み合わせる場合があります。
Light Exports
ライトエクスポートを生成するかどうか制御します。
Export variable for each light
Light Mask と Light Selection で定義した基準に一致するライトすべてのディープラスター平面を作成します。
Merge all lights into single channel
Light Mask と Light Selection で定義した基準に一致するライトすべてのエクスポート変数の合計を足した単一のディープラスター平面を作成します。
Light Mask
名前/バンドルによるライトオブジェクトのリスト。
Light Selection
カテゴリタグによるライトオブジェクトのリスト(ライトのCategoriesパラメータを参照)。
Note
各ライトのディープラスター平面の名前にはライトのパスの細かいバージョンが頭に付けられます。これはレンダリングパラメータの Export Plane Prefix を光源に追加することで手動で指定することができます。すべてのケースで単一の光源のディープラスターを生成するならば、出力ドライバのExport Plane Prefixを空白のままに設定します。これはすべての光源のプリフィックスを除去します。
コンポーネントを別々の画像平面としてエクスポート ¶
Mantraノードの Properties/Output タブには、 Export Components パラメータがあります。これはスペースで区切ったコンポーネント名のリストです。コンポーネントは、BSDFを生成するVOPの Label パラメータを使ってシェーダ内で名前が付けられています。Houdiniに含まれているシェーダは、diffuse
、reflect
、coat
、refract
、volume
などのコンポーネント名を使用します。
Extra Image Planes を追加する時に、 VEX Variable の隣のポップアップメニューで“(per-component)”が付いたライティングのタイプを選択することができます。これは、 Export Components パラメータのリストのコンポーネント毎に別々の平面をエクスポートします。
Light Exports を“Export variable for each light”に設定すれば、最大コンポジットの許容範囲内で ライト毎 、 コンポーネント毎 に別々に画像平面を取得することができます。
組み込みエクスポート ¶
以下が、追加で組み込み情報を取得するのに指定することができるディープラスター平面です。これらはディープラスター平面やPBR平面のデフォルトメニューにあります。
名前 |
タイプ |
説明 |
---|---|---|
Render_Time |
Float |
タイルのレンダリングにかかった時間の秒数を浮動小数点として出力します。 |
Op_Id |
Float |
オブジェクト識別子を浮動小数点として出力します。この平面は“object:id”オブジェクトレベル設定で指定した値を記録します。または、この設定を指定しなかった場合、ピクセルで覆われたオブジェクトの固有の識別子を記録します。-1の値のピクセルは、どのオブジェクトにも覆われていません。 |
Prim_Id |
Float |
プリミティブ識別子を浮動小数点として出力します。この平面はSOPで照会できるようにジオメトリプリミティブ番号を記録します。-1の値のピクセルは、どのプリミティブにも覆われていません。パックプリミティブでは、 Prim_Id を、その中のプリミティブではなく、パックプリミティブのプリミティブIDに設定します。 |
Shading_Samples |
Float |
ピクセルサンプル毎にシェーディングされた透明サンプルの数を出力します。この値はボリュームとスプライトのレンダリングが透明のサンプルをシェーディングするのに費やされる処理時間を決めるためにデバッグするのに役に立ちます。 |
Opacity_Samples |
Float |
ピクセルサンプル毎にシェーディングされた不透明サンプルの数を出力します。このディープラスターは、 Stochastic Transparency (確率的な透明度)を使ったレンダリングにはゼロ以外になり、シェーディングサンプルを割り当てる前に不透明度を評価するのに費やされる処理時間をデバッグするのに役に立ちます。ボリュームレンダリングにより大きいボリュームステップサイズを使うほど、不透明サンプルの数が減り、パフォーマンスが良くなります。 |
Pixel_Samples |
Float |
ピクセル毎に計算されたピクセルサンプルの数を出力します。これはIPRで画像の別の箇所の完了を検査するのに役に立ちます。 |
ray:nts |
Float |
プライマリ光線に対するレイトレース走査ステップの数を出力します。この平面を使用すれば、レイトレースパフォーマンスのローレベルなデバッグができます。 |
ray:nets |
Float |
プライマリ光線に対するレイトレースリーフノードの走査ステップの数を出力します。この平面を使用すれば、レイトレースパフォーマンスのローレベルなデバッグができます。 |
ray:nobjs |
Float |
プライマリ光線に対して実行されたインスタンスオブジェクトの交差の数を出力します。この平面を使用すれば、レイトレースパフォーマンスのローレベルなデバッグができます。 |
ray:nprims |
Float |
プライマリ光線に対して実行されたプリミティブの交差の数を出力します。この平面を使用すれば、レイトレースパフォーマンスのローレベルなデバッグができます。 |
コンポジット ¶
コンポジットでは、Layer COPノードの Global Operation を Add に設定することで、すべての direct_、indirect_、sss_平面を合計してCf
beauty平面を再生成することができます。
シャドウマット平面は、シャドウマットの補色(Invert COP)でシャドウのない平面を乗算することで結合することができます。
Tip
マルチチャンネルの.pic
または.exr
画像を扱う時は、C
のみで動作するCOPがその平面でも動作するように、Channel Copy COPを使って名前を付けた平面をC
に抽出します。 Target をC
に、 Source をコピーしたい平面に設定します。