Houdini 21.0 Mantraレンダリング

追加画像平面(ディープラスター)のレンダリング

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

レンダーノードが追加平面をエクスポートするようにセットアップする

  1. Mantraレンダー出力ノードを選択します。

  2. パラメータエディタで、 Properties タブの Output サブタブをクリックします。

  3. Extra Image Planes パラメータの隣にある + ボタンをクリックして、新しい平面を追加します。

    Extra Image Planes パラメータの値を増やすことで必要な数だけ追加平面を追加することができます。平面のパラメータのセットアップの方法は以下を参照してください。

グローバルの出力、または変数をエクスポートする

  1. 前述のように追加平面をセットアップします。

  2. VEX Variable パラメータの右側にあるポップアップメニューボタンをクリックして変数を選択します。

シェーダ変数を出力する

  1. VOPネットワークの場合、変数用にBind Exportノードをセットアップして、 Export パラメータを Always に設定します。VEXコードの場合、変数にexportedをマークします。

  2. 前述のように追加平面をセットアップします。

  3. Mantraレンダーノードの追加平面のパラメータで、 VEX Variable パラメータをあなたがエクスポートしたパラメータの名前に設定します。

ライト毎に変数を出力する

レンダーノードの 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_平面を合計してCfbeauty平面を再生成することができます。

シャドウマット平面は、シャドウマットの補色(Invert COP)でシャドウのない平面を乗算することで結合することができます。

Tip

マルチチャンネルの.picまたは.exr画像を扱う時は、Cのみで動作するCOPがその平面でも動作するように、Channel Copy COPを使って名前を付けた平面をCに抽出します。 Target をCに、 Source をコピーしたい平面に設定します。

Mantraレンダリング

Mantraユーザガイド

基本

ライティング

次のステップ

導師レベル

他のレンダラー