mib_glossy_reflection

 
 
 

カテゴリ: mental ray > マテリアル

シェーダ ファミリ: サーフェイス マテリアル

出力: カラー

このシェーダは、光沢反射を生成するだけです。

車の塗装の完全なエフェクトを作成するには、このシェーダと[mi_metallic_paint]シェーダおよび[mi_bump_flakes]シェーダを組み合わせます。これらの接続をすべて自動的に行うには、汚れのレイヤもサポートする mi_car_paint_phen シェーダを使用します。

このシェーダと[mib_glossy_refraction]シェーダの使用方法については、「mib_glossy_reflection_phong_phen」を参照してください。

名前(Name)

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

base_material

色素レイヤとメタリックのフレークを定義するシェーダを選択します。これが[mi_metallic_paint]シェーダの目的です。

reflection_color

反射の強度(およびカラー)です。計算された反射とこの値が乗算されます。

車の塗装の仕上げレイヤでは、通常、このカラーは白です。

max_distance

反射レイの範囲を制限します。

レイの最大距離を 0.0 に設定すると、反射レイの範囲は無限になります。0.0 より大きな値に設定すると、反射レイの範囲はこの距離に制限され、レイの長さがこの距離に近づくにつれ、反射カラーは環境カラーにフェード アウトしていきます。[max_distance]を使用すると、パフォーマンスを向上させ、その距離内にあるコントラストの高いオブジェクトによって発生する過度なノイズを減らすことができます。

減衰(falloff)

環境にフェードインする場合のレートです。既定値 2.0 は、減衰が距離の二乗であることを意味します。さらに、値 3.0 は距離の三乗、などと続きます。[max_distance]が 0.0 の場合、このパラメータは無効になります。

environment_color

レイがオブジェクトをヒットせず、環境をヒットする場合の乗数。物理的に正確に言えば、この値は[反射カラー]と一致すべきですが、オブジェクトの反射と環境の反射の間の輝度のバランスをとる場合のコントロールをより詳細にするため、個別に設定されています。

reflection_base_weight

カメラに面しているサーフェイスの反射の強度を定義する乗数。0.1~0.3 の低い値に設定します。

reflection_edge_weight

カメラ(エッジ)に対して垂直なサーフェイスの反射の強度を定義する乗数。塗装仕上げの反射は、面しているサーフェイスよりエッジでの方が多くなりがちです。この現象は、「フレスコ エフェクト」と呼ばれます。

edge_factor

反射するエッジの狭さを定義します。

environment

使用する環境マップ シェーダを選択します。

single_env_sample

オフにすると、各反射レイの環境サンプルが作成されます。対象となるレイは、[max_distance]オプションを使用するためオブジェクトにヒットしないものか、環境とミックスする必要があるものです。オンにすると、これらの反射レイについて、環境が一度だけサンプリングされます。

サンプル(samples)

使用するサンプルの数を設定します。理想的には、2 の累乗にします。0.0 の場合、シェーダは単一のサンプル ミラー反射だけに戻ります。

u_spread

U 方向に実行される法線ベクトル摂動の量。

[U 拡散]および[V 拡散]の値が同じ場合、等方性のある光沢反射が生成されます。この 2 つの値が異なる場合、異方性モードがオンになります。

v_spread

V 方向に実行される法線ベクトル摂動の量。

[U 拡散]および[V 拡散]の値が同じ場合、等方性のある光沢反射が生成されます。この 2 つの値が異なる場合、異方性モードがオンになります。

u_axis

異方性の U 方向を指定するオプション パラメータです。いずれも異方性モードでのみ適用されます。

u_axis が 0,0,0 である場合は、シェーダはサーフェイスの最初の導関数ベクトルに基づいて既定のベクトルを生成しようと試み、そのようなベクトルがない場合はオブジェクト空間の X 軸に基づいて生成します。

u_axis に値が指定されている場合は、異方性の U 方向として使用されます。

v_axis

異方性の V 方向を指定するオプション パラメータです。いずれも異方性モードでのみ適用されます。

[v_axis]が指定されている場合は V 方向として使用されますが、指定されていない場合は、V 方向は元のサーフェイス法線と U 方向の外積として計算されます。

拡散(dispersion)

0.0(色収差なし)から 1.0(全色収差)までの範囲です。

スペクトル

[dispersion]パラメータがゼロ以外である場合にカラーの分割先となる「虹」を定義するカラーの配列を作成します。既定では、赤 - 黄 - 白 - シアン - 青 - インディゴの各カラーですが、任意のカラーに変更できます。

追加(Add)

リストにカラー アイテムを追加します。

クリア(Clear)

リストからすべてのカラー アイテムを削除します。

アイテム(Item)

リストの RGBA カラー値を表すアイテム ポート(パラメータ)。

 

[アイテムの編集アイコン](Edit Item icon)をクリックすると、リスト内の各アイテム エントリを削除、名前変更、上へ移動、下へ移動できます。

リストからアイテムを削除すると、そのアイテムはシェーダによって作成されたエフェクトに影響しなくなります。多くの場合、リスト内でのアイテムの位置によって評価の順序が決まります。評価の順序を変更する(リスト内でアイテムを上下に動かす)と、シェーダの最終出力に影響を与えることができます。

光沢

[mib_glossy_reflection]シェーダと[mib_glossy_refraction]シェーダを使用すると、光沢のある(ぼかしのかかった)反射および屈折を生成できます。これらのシェーダと物理 DGS シェーダとのパフォーマンスおよび有用性の相違点をまとめると、以下のようになります。

  • マルチサンプリングされた光沢(と単一のサンプル)

  • 距離にバインドされた反射/屈折

  • 環境のアンダーサンプリング

  • 明示的な UV ベクトルが不要な異方性(と導関数ベクトルが必要な異方性)

  • 法線 - ベクトルの摂動(と方向 - ベクトルの摂動)

  • フレネル エフェクト

  • 色収差

マルチサンプリングされた光沢

DGS シェーダは、イメージ全体のオーバー サンプリングによって(パフォーマンスの低下を伴いながらも)魅力的なブラーに使用するサンプルを平均化するために、反射および屈折に使用する単一の光沢のレイを放出します。すべてのレイは新しい独立したサンプルです。

一方、mib_glossy_* シェーダは複数の光沢のレイをサンプリングし、イメージ全体ではなく、光沢のあるサーフェイス上でのみオーバーサンプリングを発生させます。サンプルは mental ray の厳密なサンプリング エンジンを使用して作成されるため、サンプル数が同じでも、より外観の良いブラーを作成可能な、より魅力的なサンプル パターンを作成することができます。

DGS(左)と mib_glossy_reflection(右)

上の図はサンプル[0,1]を使用してレンダリングしたもので、左側の図では、粗い結果がはっきりと見えます。滑らかな結果を得るには、イメージ全体のサンプリングを増加させる必要があります。一方、mib_glossy_* シェーダはそれ自体のオーバーサンプリング(この例では 8 サンプル)を処理し、光沢のあるサーフェイスだけに適用します。

距離にバインドされた反射/屈折

反射の場合は厳密に言うと非物理的ですが、mib_glossy_* シェーダでは反射レイおよび屈折レイの到達する距離を制限することができます。このため、距離がある反射/屈折オブジェクトによって発生するイメージ ノイズを排除し、パフォーマンスを大幅に改善することができます。

無制限の反射(左)と距離制限のある反射(右)

環境のアンダーサンプリング

mib_glossy_* シェーダの目的の 1 つに、遠方にあるオブジェクトをフィルタリングし、マテリアル(屈折の場合)または環境(反射の場合)と置き換えることによって、遠くのイメージをあまり詳細にしないということがあります。しかし、たとえば環境のサンプリングからの過度のノイズを回避するために、反射シェーダは意図的に環境を単一サンプリングして(また事前にブラーをかけておいた環境を明示的に渡されることによって)ノイズを除去することができます。

明示的な UV ベクトルを必要としない異方性

シェーダは明示的に渡された UV ベクトルを使用して光沢のある異方性反射/屈折を行うことができますが、ベクトル自体が失われている(0,0,0 に設定されている)場合は、検知したベクトルについてシェーダ自身が計算を試みます。

法線ベクトルの摂動

DGS シェーダはスペキュラの反射方向または屈折方向を計算し、shiny パラメータによって決定される範囲内でこの方向を摂動させます。一方、mib_glossy_* シェーダは、反射または屈折の前に、サーフェイスにマイクロファセットが存在するかのように光沢をシミュレートします。つまり、反射方向または屈折方向は、法線ベクトルを実際に摂動させる(微細なレベルで粗いサーフェイスをシミュレート)ことによって計算され、変更後の法線に基づいて新しい反射方向または屈折方向を計算します。

これによって異なる結果が生じ、光沢がビュー方向に依存することになります。たとえば、床における反射の光沢パターンは垂直方向に引き伸ばされます。これは、日没時に太陽光が水面に反射すると、太陽光が伸びていくように見えるのと同じエフェクトです。

DGS(左)と mib_glossy_reflection(右)

フレネル エフェクト

反射マテリアルのほとんどは、角度が浅いほど反射量が多く、透明マテリアルは正対したときのほうがより透過して見えます。この反射と透過の再均衡化はフレネル エフェクトとして知られています。これらのシェーダでは、エッジ(浅い視射角)とベース(正対)に異なるウェイトを設定して、このエフェクトをエミュレートすることができます。mib_glossy_* シェーダでは、反射全体のグローバルなウェイト付けではなく、サンプルごとにこのエフェクトの計算を行うことにより、いっそうリアルさを向上させています。

フレネル エフェクトなし(左)と強調したフレネル エフェクト(右)

右のイメージのエッジ(浅い視射角のサーフェイス)における反射量が左のイメージよりも多いことが見て取れます。

色収差

mib_glossy_* シェーダには、「擬似色収差」の量を設定する[dispersion]パラメータがあります。このエフェクトは物理的に正確なものではなく、現実の現象をエミュレートするものに過ぎません。