mib_amb_occlusion
 
 
 

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

シェーダ ファミリ: ライト

出力: カラー

オクルージョンは、グローバル イルミネーションのエフェクトをシミュレートするための高速かつ簡易な方法です。オクルージョンとは、あるポイントの上部が他のジオメトリによって覆われている領域の範囲です。オクルージョンは、あるポイント上の半球形の領域内部でいくつかのプローブ レイをトレースし、この領域がどの範囲でブロックされているかをテストすることによって得ることができます。

このシェーダの一般的な用途はアンビエント オクルージョンです。アンビエント オクルージョンでは、このシェーダを使用してアンビエント ライティング(拡散環境マップ シェーダから派生)の結果がスケールされます。この用途では、シェーダを[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

返されるカラーを定義します。

  • モード 0 では、標準的なオクルージョン動作となります。

  • モード 1 では、環境サンプリングが有効になります。これにより、シェーダの動作が若干変更されます。オクルージョンについては方向がプローブされるため、現在の環境もその方向のオクルージョンの程度に基づいてサンプリングおよびウェイト付けされます。モード 1 の場合、この関数の出力は収集されてウェイト付けされた環境カラーに[bright]カラーが乗算されたものになり、便宜上[dark]カラーが追加されます。

  • モード2の場合、ベント法線が有効になります(「mib_bent_normal_env」を参照)。平均的な遮られていないワールド空間法線の方向は、赤が X、緑が Y、青が Z であるカラーとして計算され、エンコードされたうえで返されます。

  • モード 3 はモード 2 と同じですが、法線がカメラ座標空間でエンコードされる点が異なります。

  • モード 4 はモード 2 と同じですが、法線がオブジェクト空間にある点が異なります。

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]を使用した単純な除外は使用できません。「スタンドイン」バックグラウンド ジオメトリによってフォアグラウンド ジオメトリにオクルージョンを投影する場合もあり、その逆の場合もあるからです。バックグラウンドからバックグラウンドへのオクルージョンだけを抑制する必要があります。