「ベント法線」は、サーフェイス ポイントから遮られない方向を向いた平均方向ベクトルです。まったく遮蔽されないサーフェイスの場合は法線ベクトルと同じですが、他のジオメトリによって遮蔽されるサーフェイスの場合は遮蔽ジオメトリが最も少ない方向を示します。ベント法線はアンビエント オクルージョンのアクセラレーション テクニックとして使用され、短いレンダリング時間で、環境で照らされたグローバル イルミネーションやファイナル ギャザリングのような外観のレンダリングが可能です。
[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 |
ベント法線の座標空間を定義します。 座標空間番号は[mib_amb_occlusion]シェーダの[output_mode]パラメータ(2 はワールド空間、3 はカメラ空間、4 はオブジェクト空間)に一致します。 |
env_samples |
環境マップから取得するサンプルの数。通常は 1 つのサンプルで足りるような高度にブラーをかけた環境マップが使用されますが、ゼロ以外の値を設定することによってマルチサンプリングされた環境マップを使用することも可能です。 |
samples_spread |
個々の環境サンプルで使用するスプレッド係数。範囲は 0.0(限りなく細い光線 — 単一サンプリング)から 1.0(半球全体をサンプリング)までです。 |
行列(matrix) |
[coordinate_space]の値が 1 である場合に法線データに適用される明示的な変換行列です。任意変換が可能です。 |