レイヤ シェーダに関する技術情報

技術的な詳細

ポートされているライト パス エクスプレッション(LPE)

このバージョンレイヤ化シェーダでは、利用できるパスには、次のような LPE 説明があります。その後に最も一般的なパス名が 3 番目の列に入っています。

 
LPEdescriptive nametypical pass name
"L<RD>E""direct_diffuse" (reflection)"diffuse"
"L<R[GS]>E""direct_glossy_specular""specular"/"highlight"
"L<RG>E""direct_glossy""specular"/"highlight", glossy part
"L<RS>E""direct_specular""specular"/"highlight", specular part
"L.+<RD>E""indirect_diffuse""indirect"
"L.+<R[GS]>E""indirect_glossy_specular""reflection"
"L.+<RG>E""indirect_glossy""reflection", glossy part
"L.+<RS>E""indirect_specular""reflection", specular part
"L.+<TD>E""diffuse_transmission""translucency"
"L.+<T[GS]>E""indirect_glossy_specular_transmission" refraction"
"L.+<TG>E""glossy_transmission" refraction", glossy part
"L.+<TS>E""specular_transmission""refraction", specular part
"<L'front'>.*TV[VR]*TE""front_scatter"
"<L'back'>.*TV[VR]*TE""back_scatter"
"L.*VE"
"LaE""emission"
"La<RS>E"
"debug_highlight"
"debug_reflection"
"L<RD><TS>+E""direct_diffuse_transmitted"
"L<RG><TS>+E""direct_glossy_transmitted"
"L<RS><TS>+E""direct_specular_transmitted"
"L.+<RD><TS>+E""indirect_diffuse_transmitted"
"L.+<RG><TS>+E""indirect_glossy_transmitted"
"L.+<RS><TS>+E""indirect_specular_transmitted"

この LPE 名をフレームバッファの LPE アトリビュートとまったく同じように使用することができます。また、文字列オプションを使って、上記の LPE 名のいずれかに内容のよくわかる別の名前を任意に割り当てることもできます。LPE 名で指定されていない場合は、上記のわかりやすい代替名がフレームバッファ名として直接使用されます。つまり、上記の説明的な名前が付けられたユーザ フレームバッファはすべて、レイヤ化コンポーネントによって自動的に書き込まれます。

mila_glossy_reflection および "mila use visible area highlight"/"mila visible area highlight" について

光沢/スペキュラ ハイライト(反射サーフェスを通過して直接届く可視光)は、コンピュータ グラフィックスの分野では従来のライト ループを使用するときの仕掛けでした。実際には、これらは光源の反射です。トレースされた反射光を使ったコンピュータ グラフィックスでこれを発生させるには、光源が極小の点ではなくエリア ライトである必要があり、さらにシーン内で見えるように設定されている必要があります。レンダリングの実装でライト ループを使用するかしないかで、以前使っていたものを指定する方法に関してユーザが用語ですぐに混乱する可能性があります。この文字列オプションで、これをすべての光沢シェーダに対して、より明確に定義することができます。

注: "Mila 視覚領域のハイライトを使用" をオン/オフにすることで、この機能の使用を有効/無効にします。"Mila 視覚領域のハイライト" 文字列オプションの既定値は -1 で、これは自動です。ほとんどの場合、気にせずにそのままにしておいて問題がありません。

オプションに適用されるロジックは次のとおりです。

表示しないように設定されたエリア ライトは常にスペキュラ ハイライトを生成します。エリア ライト以外も同様です。これは、mia_material と同じ動作です。

"Mila 視覚領域のハイライト" 文字列オプションは、古いパラメータ mia_materialno_visible_area_hl の拡張です。このパラメータは、可視エリア ライトのスペキュラ ハイライトをオン/オフにする機能しかなく、可視エリア ライトの反射は変更しませんでした。

対照的に、このパラメータは実際に、可視エリア ライトの実際の反射間で適切にバランスを調整するツールです。つまり、上記ライトのスペキュラ ハイライトを実行します。

-1
(既定値かつ推奨)自動ヒューリスティックは、光沢に応じて値を決定するために使用されます。
0.0
可視エリア ライトは、スペキュラ ハイライトを生成するのではなく、反射で 100 % 表示されます。これは、光沢度が高いサーフェスや鏡面反射サーフェス、広い範囲のエリア ライトに適しています(エリア ライトは光沢のある円錐と比べて、常により広い範囲の角度をカバーします)。
1.0
可視エリア ライトによって従来のスペキュラ ハイライトが生成されますが、反射光線には表示されません。これは、光沢度が低く、エリア ライトが小さいサーフェスに適しています。
0.0 > X > 1.0
0.0 より大きく、1.0 より小さい値は、2 種類の反射をブレンドしたものです。これらは、総エネルギーが正確になるように調整されます。

2 つの異なる方法で表示領域をサンプリングすることによって発生した問題を示すために、いくつかのイメージの例を次に示します。これらのイメージは、2 つのケースでグレインの問題を明確に強調するために意図的に低い設定でレンダリングされています。

低光沢サーフェスの場合 Mila 視覚領域のハイライト = 0.0。これは、すべてのサンプリングが反射光線で行われたことを意味します。しかし、光沢のある円錐の広がりはライトよりも広い領域をカバーするため、これによりグレインが大きくなります(特に小さいライトで、サーフェスの放射輝度をさらに高くしないと全体で同じ光の強度が出せない)。
低光沢サーフェスの場合 "Mila 視覚領域のハイライト" = 0.0。これは、すべてのサンプリングが反射レイで行われたことを意味します。しかし、光沢のある円錐の広がりはライトよりも広い領域をカバーするため、これにより重いグレインが生じます(特に、合計で同じ強度を放出するためにサーフェスの放射輝度がより高い、小さいライトにおいて)。
低光沢サーフェスの場合 Mila 視覚領域のハイライト = 1.0。この場合、すべてのサンプリングはライトから行われ、グレインが非常に小さくなります。ライト サンプルが光沢のある円錐内に行き着く確率が高いためです。
低光沢サーフェスの場合 "Mila 視覚領域のハイライト" = 1.0。この場合、すべてのサンプリングはライトから行われ、グレインが非常に小さくなります。ライト サンプルが光沢のある円錐内に行き着く確率が高いためです。
高光沢(スペキュラ)サーフェスの場合 Mila 視覚領域のハイライト = 0.0。すべてのサンプリングが反射光線で行われます。しかし、光沢のある円錐(この場合は 1 つのレイ)がライトの領域より小さすぎるため、これによりはっきりした反射が生じています。
高光沢(スペキュラ)サーフェスで "Mila 視覚領域のハイライト" = 0.0すべてのサンプリングが反射レイで行われます。しかし、光沢のある円錐(この場合は 1 つのレイ)がライトの領域に対して小さすぎるため、これによりはっきりした反射が生じています。
高光沢(スペキュラ)サーフェスの場合 Mila 視覚領域のハイライト = 1.0。反対に、スペキュラの場合にライト サンプルの使用を試みると、非常に狭い鏡面反射性の円錐内にライト サンプルが存在する可能性は非常に低くなるため、逆にそこからノイズが生じています。
高光沢(スペキュラ)サーフェスの場合 "Mila 視覚領域のハイライト" = 1.0。反対に、スペキュラの場合にライト サンプルの使用を試みると、非常に狭い鏡面反射性の円錐内にライト サンプルが存在するという可能性は極めて低くなるため、逆にそこからノイズが生じています。

ご覧のように、高光沢と低光沢のサーフェスでは、"Mila 視覚領域のハイライト" パラメータの「よい」設定が異なります。このため、ヒューリスティックな設定である「-1」があり、光沢に基づいて実際に使用される値が計算されます。これは、可変の光沢とともに使用するときに便利です。

光沢度可変サーフェスの場合 Mila 視覚領域のハイライト = -1.0。このモードでは、できるかぎり最高のイメージが得られるように、光沢に応じて最適な設定を試行します。
可変の光沢サーフェスの場合 "Mila 視覚領域のハイライト" = -1.0。このモードでは、可能な限り最高のイメージを得るために、光沢に応じて最適な設定を試行します。