オクルージョンは、グローバル イルミネーションのエフェクトをシミュレートするための高速かつ簡易な方法です。オクルージョンとは、あるポイントの上部が他のジオメトリによって覆われている領域の範囲です。オクルージョンは、あるポイント上の半球形の領域内部でいくつかのプローブ レイをトレースし、この領域がどの範囲でブロックされているかをテストすることによって得ることができます。
このシェーダの一般的な用途はアンビエント オクルージョンです。アンビエント オクルージョンでは、このシェーダを使用してアンビエント ライティング(拡散環境マップ シェーダから派生)の結果がスケールされます。この用途では、シェーダを[mib_illum_phong]などのマテリアルの[ambient]パラメータに割り当てて使用します。
オクルージョンのもう 1 つの用途は反射オクルージョンです。反射オクルージョンでは、このシェーダを使用して反射マップからの成分がスケールされます。この用途では、シェーダは一般に環境またはマテリアルの反射シェーダ ポートに接続され、実際の環境マップ イメージは[bright]パラメータに接続されます。また、オクルージョン シェーダの戻り値が反射マップ シェーダの strength アトリビュートを調節できるようにする方法もあります。
3 つ目の用途は、外部での合成に使用するファイルの作成です。オクルージョン シェーダは、シーン内の個々のオブジェクトのプライマリ マテリアル シェーダとして割り当てられます。この出力を使用して他のレンダ パスを調節し、ポストプロダクションで適切な合成を得ることができます。
このシェーダはライト シェーダとして使用することもできます。光源は user 型のエリア ライトでなくてはなりません。これにより、組み込みのオクルージョンを備えた「アンビエント」光源を生成することができます。
このシェーダは mental ray の基本レイトレーシング機能にのみ依存し、ファイナル ギャザリングやグローバル イルミネーションなどの高度な計算を利用することはありません。
名前(Name) |
Render Tree に表示されるシェーダ ノードの名前。任意の名前を入力するか、デフォルト名を使用します。 |
サンプル(samples) |
送出されるプローブ レイの数。プローブ レイの数が多いほど、スムーズなイメージが得られます。オクルージョン マッピングは、緻密に調節されたファイナル ギャザリングやフォトンほど滑らかにはなりませんが、計算の負荷は軽くなります。 |
明色(bright) |
遮蔽オブジェクトが見つからない場合に使用されるカラー。 |
暗色(dark) |
完全なオクルージョンが発生した場合に使用されるカラー。実際には黒に設定されることがほとんどです。部分的なオクルージョンでは、[bright]カラーと[dark]カラーを段階的にミックスしたものが返されます。 |
スプレッド(spread) |
サンプリングの対象とする、ポイントよりも上にある半球の領域の大きさを定義します。この値はサンプリング方向の周囲のコーンを定義します。このコーンは、値が小さい場合は狭く、大きい場合は広くなります。範囲は 0.0(単一方向を示す円錐)から 1.0(半球全体を覆う円錐)までです。 |
max_distance |
この範囲内でジオメトリのプローブを行います。ゼロの場合は、シーン全体がサンプリングされます。ゼロ以外の値を指定すると、この範囲内にあるオブジェクトのみが対象となります(その結果、サンプリングが高速になります)。この範囲外にあるオブジェクトはまったく遮蔽されず、距離がゼロに近づくにつれて遮蔽の度合いが高くなります。 |
反射(reflective) |
オフにした場合は、サンプリングはサーフェイス法線の周囲の円錐領域で実行されます。 オンにした場合は、サンプルは反射方向を中心にして分散されます。反射マッピングのリアルさを向上する反射オクルージョンを生成します。 |
output_mode |
返されるカラーを定義します。
|
occlusion_in_alpha |
[output_mode]の値にかかわらず、スカラ オクルージョンの値を返されたカラーのアルファ コンポーネントに設定します。他のカラー コンポーネントはそれ以前と変わりありません。 |
減衰(falloff) |
[max_distance]がゼロ以外の値に設定されている場合のみ機能します。オクルージョンが距離によって減衰される速度を定義します。 技術的には、0 から[max_distance]の値までの正規化された距離に適用されるべき関数です。既定値の 1.0 ではリニア減衰になります。1.0 よりも小さい値では、より高速に減衰されます。実際には、値が低いオクルージョンは短距離の場合に(小さいコーナーや隙間で)強くなり、長い距離の場合には弱まります。 |
id_inclexcl |
シェーダによって遮蔽オブジェクトとして扱われるか(included)扱われないか(excluded)に関して、オブジェクトのインスタンス ラベル数を定義します。 値を 0 に設定すると、このパラメータは機能しません。正の整数にすると、この番号に一致するラベルを持ったオブジェクト インスタンスのみでオクルージョンが発生します。負の整数では条件が逆転され、この番号に一致するラベルを持ったすべてのオブジェクト インスタンス以外のすべてのオブジェクトが含まれます。 |
id_nonself |
オブジェクト インスタンス ラベルであるという点で[id_inclexcl]と似た動作をしますが、このパラメータはセルフオクルージョンを行わないオブジェクトを決定します。 値を 0 に設定すると、このパラメータは機能しません。正の整数に設定すると、そのラベルを持ったすべてのオブジェクトは同じラベルを持った他のオブジェクトをオクルージョンの対象としなくなります。 このパラメータは、バックグラウンド フォト内の既存のジオメトリを表す「マット」オブジェクトまたは「スタンドイン」オブジェクトで使用すると便利です。こうしたオブジェクトの間のオクルージョンはバックグラウンド フォトにすでに存在するからです。この場合は、[id_inclexcl]を使用した単純な除外は使用できません。「スタンドイン」バックグラウンド ジオメトリによってフォアグラウンド ジオメトリにオクルージョンを投影する場合もあり、その逆の場合もあるからです。バックグラウンドからバックグラウンドへのオクルージョンだけを抑制する必要があります。 |