技術的な詳細
このバージョンレイヤ化シェーダでは、利用できるパスには、次のような LPE 説明があります。その後に最も一般的なパス名が 3 番目の列に入っています。
| LPE | descriptive name | typical 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 視覚領域のハイライトを使用" をオン/オフにすることで、この機能の使用を有効/無効にします。"Mila 視覚領域のハイライト" 文字列オプションの既定値は -1 で、これは自動です。ほとんどの場合、気にせずにそのままにしておいて問題がありません。
オプションに適用されるロジックは次のとおりです。
表示しないように設定されたエリア ライトは常にスペキュラ ハイライトを生成します。エリア ライト以外も同様です。これは、mia_material と同じ動作です。
"Mila 視覚領域のハイライト" 文字列オプションは、古いパラメータ mia_material の no_visible_area_hl の拡張です。このパラメータは、可視エリア ライトのスペキュラ ハイライトをオン/オフにする機能しかなく、可視エリア ライトの反射は変更しませんでした。
対照的に、このパラメータは実際に、可視エリア ライトの実際の反射間で適切にバランスを調整するツールです。つまり、上記ライトのスペキュラ ハイライトを実行します。
2 つの異なる方法で表示領域をサンプリングすることによって発生した問題を示すために、いくつかのイメージの例を次に示します。これらのイメージは、2 つのケースでグレインの問題を明確に強調するために意図的に低い設定でレンダリングされています。




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