BSDF Shader と Light Path
各 BSDF シェーダがどのような成分を作るのかを視覚化するために、各 BSDF シェーダ と Light Path との関係をテストしてみました。
各結果を、以下の 2 パターンで比較してあります。
テストモデル
テストモデル空間の環境は以下の通りです。
- World Output に Light Path ノードを絡ませ、指定した Ray (レイ、光線) に反応した部分が赤くなり、そうでない部分が青くなります
- Floor (床面) は、マンセル N9.5 相当の白 (Hex:1C1C1C)
- 光源は Light Path ノードが絡んだ World Output のみ
テスト使用データ : BSDF_Shader_Test2.zip
いずれも Full Global Illumination プリセットで、200 Samples を GPU にてレンダリングしました。
また、粗さ (Roughness) を変更することでレイタイプの割合に変更がでてくるシェーダでは粗さを変えもテストしてみました。
BSDF シェーダの比較
Roughness はすべて 0.0 です。
通常の World Output
Is Camera Ray
いずれも、背景の環境光しか反応していません。
Is Shadow Ray
いずれも反応していません。
…というか、どうやっても表示できませんでした。まだ機能していないのでしょうか?
Is Diffuse Ray
拡散反射した部分が赤く表示されています。
Is Glossy Ray と同時に見ると、背景以外で青く表示されている部分が Glossy (光沢反射) だということが分かります。
Is Glossy Ray
光沢反射した部分が赤く表示されています。
Is Singular Ray
ちょっと特殊な Ray で、光源から直接来た Ray か、Distribution が Sharp に設定してある Glossy BSDF か Glass BSDF に光沢反射した Ray だけが反応しています。
Glossy BSDF、Glass BSDF ともに、Distribution を Beckmann や GGX に設定している場合は、この様な反応はありません。
Is Reflection Ray
表面で反射した Ray が反応しているようです。
Is Transmission Ray
透過して反射した Ray が反応しているようです。
各シェーダでの詳細比較
Roughness の違いで Ray に違いがでる場合は、Roughness も変更して比較してます。
Diffuse BSDF
Roughness 0.0 | |
通常の World | ![]() |
Is Camera Ray | ![]() |
Is Shadow Ray | ![]() |
Is Diffuse Ray | ![]() |
Is Glossy Ray | ![]() |
Is Singular Ray | ![]() |
Is Reflection Ray | ![]() |
Is Transmission Ray | ![]() |
Glossy BSDF
Glossy BSDF にある 3 つの Distribution は、それぞれで Ray の処理が異なったため、3 タイプ共テストしました。
また、Roughness を変えることでも雰囲気が変わりましたので、Roughness を 0.0、0.5、1.0 としてテストしました。
Beckmann と GGX は Roughness が設定されているときに若干表現が変わってきます。
GGX の方が全体的に暗めに表現される傾向が見られます。
Sharp では、Roughness オプションは無効なので、Roughness 0.0 のところでしか表示してません。
Roughness 0.0 | Beckmann | GGX | Sharp |
通常の World | ![]() |
![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
![]() |
Roughness 0.5 | Beckmann | GGX |
通常の World | ![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
Roughness 1.0 | Beckmann | GGX |
通常の World | ![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
Glass BSDF
Glass BSDF にある 3 つの Distribution は、それぞれで Ray の処理が異なったため、3 タイプ共テストしました。
また、Roughness を変えることでも雰囲気が変わりましたので、Roughness を 0.0、0.5、1.0 としてテストしました。
Beckmann と GGX は Roughness が設定されているときに若干表現が変わってきます。
GGX の方が全体的に暗めに表現される傾向が見られます。
また、サムネイルでは分かりませんが、Roughness が設定されていると GGX では fireflies (蛍:白等のドットノイズ…良い日本語は無いのでしょうか?) が発生しやすいようです。
Sharp では、Roughness オプションは無効なので、Roughness 0.0 のところでしか表示してません。
Roughness 0.0 | Beckmann | GGX | Sharp |
通常の World | ![]() |
![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
![]() |
Roughness 0.5 | Beckmann | GGX |
通常の World | ![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
Roughness 1.0 | Beckmann | GGX |
通常の World | ![]() |
![]() |
Is Camera Ray | ![]() |
![]() |
Is Shadow Ray | ![]() |
![]() |
Is Diffuse Ray | ![]() |
![]() |
Is Glossy Ray | ![]() |
![]() |
Is Singular Ray | ![]() |
![]() |
Is Reflection Ray | ![]() |
![]() |
Is Transmission Ray | ![]() |
![]() |
Translucent BSDF
Hex:F7F7F7 | |
通常の World | ![]() |
Is Camera Ray | ![]() |
Is Shadow Ray | ![]() |
Is Diffuse Ray | ![]() |
Is Glossy Ray | ![]() |
Is Singular Ray | ![]() |
Is Reflection Ray | ![]() |
Is Transmission Ray | ![]() |
Transparent BSDF
Hex:F7F7F7 | |
通常の World | ![]() |
Is Camera Ray | ![]() |
Is Shadow Ray | ![]() |
Is Diffuse Ray | ![]() |
Is Glossy Ray | ![]() |
Is Singular Ray | ![]() |
Is Reflection Ray | ![]() |
Is Transmission Ray | ![]() |
Velvet BSDF
Sigma 1.0 | |
通常の World | ![]() |
Is Camera Ray | ![]() |
Is Shadow Ray | ![]() |
Is Diffuse Ray | ![]() |
Is Glossy Ray | ![]() |
Is Singular Ray | ![]() |
Is Reflection Ray | ![]() |
Is Transmission Ray | ![]() |
- 最終更新:2012-10-19 17:46:40