mib_bent_normal_env
 
 
 

カテゴリ: mental ray > テクスチャ

シェーダ ファミリ: テクスチャ

出力: カラー

「ベント法線」は、サーフェイス ポイントから遮られない方向を向いた平均方向ベクトルです。まったく遮蔽されないサーフェイスの場合は法線ベクトルと同じですが、他のジオメトリによって遮蔽されるサーフェイスの場合は遮蔽ジオメトリが最も少ない方向を示します。ベント法線はアンビエント オクルージョンのアクセラレーション テクニックとして使用され、短いレンダリング時間で、環境で照らされたグローバル イルミネーションやファイナル ギャザリングのような外観のレンダリングが可能です。

[mib_amb_occlusion]シェーダによって行われるアンビエント オクルージョンは、プローブ レイを数多く投影することによってサーフェイス ポイントをどの範囲で遮蔽するかを決定するレイトレーシング テクニックです。この処理の速度は、光線の数([samples])、光線の到達距離([max_distance])、シーンの複雑さによって異なります。

アニメーション(または同じシーンの複数のビュー)をレンダリングする場合は、移動しないオブジェクト、シェイプが変更されないオブジェクト、付近に移動する遮蔽オブジェクトが存在しないオブジェクトはすべて、どのフレームでも同じ結果になります。このため、アンビエント オクルージョン ソリューションを最初のレンダリング パスで一度だけ「ベーク」(ファイルへのレンダリング)し、以後のレンダリング パスでは任意のフレーム数だけこの結果を再利用するようにすると、パフォーマンスが大幅に向上します。また、平均的な遮られていない方向(ベント法線)をテクスチャに「ベーク」すると、環境に基づいてオブジェクトをライティングするという処理全体が(単一の光線をトレースすることなく)この 2 つ目のレンダリング パスに移動されます。

[mib_amb_occlusion]シェーダで[output_mode]パラメータを 2、3、4 のいずれかに設定すると、ベント法線と、X が赤、Y が緑、Z が青であるカラーとしてエンコードされたベクトルが返されます。[occlusion_in_alpha] が有効な場合は、スカラー オクルージョン値はアルファ チャンネル内に返されます。このカラーは、たとえば[mib_amb_occlusion]シェーダを[mib_lightmap_write]の入力パラメータに接続してからレンダリングすることによって、テクスチャにベークできます。

テクスチャ ファイルが生成されたら、[mib_bent_normal_env]シェーダを[mib_illum_phong]の[ambient]パラメータなどのサーフェイス シェーダに割り当て、ベークされたベント法線テクスチャに基づいてオブジェクトを照らす環境をルックアップできます(ベント法線テクスチャは、[mib_bent_normal_env]シェーダの[bent_normals]パラメータに接続されています)。

こうすると、極めて「経済的に」リジッド ボディにグローバル イルミネーションに似たエフェクトをシミュレートすることができ、特にアニメーションでの使用に適しています。このテクニックは、フレームごとにオクルージョン、シェイプ、法線が異なるような変形可能なオブジェクトでは動作しません。変形可能なオブジェクトについては、オクルージョン シェーダの出力をベイクせずに、オクルージョン シェーダを直接適用する方が良いでしょう。

名前(Name)

Render Tree に表示されるシェーダ ノードの名前。任意の名前を入力するか、デフォルト名を使用します。

bent_normals

オクルージョン シェーダによるベント法線データ出力。この出力をオブジェクトにベイク処理します。通常は[mib_texture_lookup]など、テクスチャ ルックアップを行うノードにアタッチされます。テクスチャの生成に使用されるテクスチャ マッピングは、ルックアップに使用されたものと同じものでなくてはなりません。

occlusion_in_alpha

スカラ オクルージョン値が「ベント法線」パスのアルファ チャンネルにすでにベーク処理されているかどうかを指定します。この機能によって、使用するメモリの量がわずかに減少しますが、mental ray のソフトウェア統合の「テクスチャへベークする」機能の多くでは、アルファ チャンネルはベークされません。

オクルージョン(occlusion)

まだアルファ チャンネルにベークされていない場合に使用する、個別のオクルージョン チャンネルです。

強度(strength)

エフェクトの単純なスカラ乗数。

environment

ルックアップする環境シェーダ。何も指定されていない場合は、マテリアルからの環境が使用されます。イメージ ノイズを回避するために、高解像度の詳細を含まない、高度にブラーをかけた個別の環境マップを使用するとよいでしょう。

coordinate_space

ベント法線の座標空間を定義します。

  • 0 は「修正なし」です。ベント法線データは内部空間に存在します。

  • 1 は「行列による」です。ベント法線データは渡された変換行列によって変換されます。

  • 2 はワールド空間です。

  • 3 はカメラ空間です。

  • 4 はオブジェクト空間です。このモードが多くの目的で便利です。オブジェクト空間で作成され、使用されているマップの場合は、アニメーションの最初から最後まで、オブジェクトに従って自動的に移動します。

座標空間番号は[mib_amb_occlusion]シェーダの[output_mode]パラメータ(2 はワールド空間、3 はカメラ空間、4 はオブジェクト空間)に一致します。

env_samples

環境マップから取得するサンプルの数。通常は 1 つのサンプルで足りるような高度にブラーをかけた環境マップが使用されますが、ゼロ以外の値を設定することによってマルチサンプリングされた環境マップを使用することも可能です。

samples_spread

個々の環境サンプルで使用するスプレッド係数。範囲は 0.0(限りなく細い光線 — 単一サンプリング)から 1.0(半球全体をサンプリング)までです。

行列(matrix)

[coordinate_space]の値が 1 である場合に法線データに適用される明示的な変換行列です。任意変換が可能です。