BSDF Shader と Light Path

各 BSDF シェーダがどのような成分を作るのかを視覚化するために、各 BSDF シェーダ と Light Path との関係をテストしてみました。
各結果を、以下の 2 パターンで比較してあります。

テストモデル

テストモデル空間の環境は以下の通りです。
  • World OutputLight 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

Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_nomal.png Shader_GlossyS_nomal.png Shader_GlassS_nomal.png Shader_Translucent_nomal.png Shader_Transparent_nomal.png Shader_Velvet_nomal.png

Is Camera Ray

いずれも、背景の環境光しか反応していません。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_caRay.png Shader_GlossyS_caRay.png Shader_GlassS_caRay.png Shader_Translucent_caRay.png Shader_Transparent_caRay.png Shader_Velvet_caRay.png

Is Shadow Ray

いずれも反応していません。
…というか、どうやっても表示できませんでした。まだ機能していないのでしょうか?
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_shRay.png Shader_GlossyS_shRay.png Shader_GlassS_shRay.png Shader_Translucent_shRay.png Shader_Transparent_shRay.png Shader_Velvet_shRay.png

Is Diffuse Ray

拡散反射した部分が赤く表示されています。
Is Glossy Ray と同時に見ると、背景以外で青く表示されている部分が Glossy (光沢反射) だということが分かります。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_diRay.png Shader_GlossyS_diRay.png Shader_GlassS_diRay.png Shader_Translucent_diRay.png Shader_Transparent_diRay.png Shader_Velvet_diRay.png

Is Glossy Ray

光沢反射した部分が赤く表示されています。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_glRay.png Shader_GlossyS_glRay.png Shader_GlassS_glRay.png Shader_Translucent_glRay.png Shader_Transparent_glRay.png Shader_Velvet_glRay.png

Is Singular Ray

ちょっと特殊な Ray で、光源から直接来た Ray か、Distribution が Sharp に設定してある Glossy BSDFGlass BSDF に光沢反射した Ray だけが反応しています。
Glossy BSDFGlass BSDF ともに、Distribution を Beckmann や GGX に設定している場合は、この様な反応はありません。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_siRay.png Shader_GlossyS_siRay.png Shader_GlassS_siRay.png Shader_Translucent_siRay.png Shader_Transparent_siRay.png Shader_Velvet_siRay.png

Is Reflection Ray

表面で反射した Ray が反応しているようです。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_reRay.png Shader_GlossyS_reRay.png Shader_GlassS_reRay.png Shader_Translucent_reRay.png Shader_Transparent_reRay.png Shader_Velvet_reRay.png

Is Transmission Ray

透過して反射した Ray が反応しているようです。
Diffuse Glossy-Sharp Glass-Sharp Translucent Transparent Velvet
Shader_Diffuse_trRay.png Shader_GlossyS_trRay.png Shader_GlassS_trRay.png Shader_Translucent_trRay.png Shader_Transparent_trRay.png Shader_Velvet_trRay.png



各シェーダでの詳細比較

Roughness の違いで Ray に違いがでる場合は、Roughness も変更して比較してます。

Diffuse BSDF

  Roughness 0.0
通常の World Shader_Diffuse_nomal.png
Is Camera Ray Shader_Diffuse_caRay.png
Is Shadow Ray Shader_Diffuse_shRay.png
Is Diffuse Ray Shader_Diffuse_diRay.png
Is Glossy Ray Shader_Diffuse_glRay.png
Is Singular Ray Shader_Diffuse_siRay.png
Is Reflection Ray Shader_Diffuse_reRay.png
Is Transmission Ray Shader_Diffuse_trRay.png

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 Shader_GlossyB_nomal.png Shader_GlossyG_nomal.png Shader_GlossyS_nomal.png
Is Camera Ray Shader_GlossyB_caRay.png Shader_GlossyG_caRay.png Shader_GlossyS_caRay.png
Is Shadow Ray Shader_GlossyB_shRay.png Shader_GlossyG_shRay.png Shader_GlossyS_shRay.png
Is Diffuse Ray Shader_GlossyB_diRay.png Shader_GlossyG_diRay.png Shader_GlossyS_diRay.png
Is Glossy Ray Shader_GlossyB_glRay.png Shader_GlossyG_glRay.png Shader_GlossyS_glRay.png
Is Singular Ray Shader_GlossyB_siRay.png Shader_GlossyG_siRay.png Shader_GlossyS_siRay.png
Is Reflection Ray Shader_GlossyB_reRay.png Shader_GlossyG_reRay.png Shader_GlossyS_reRay.png
Is Transmission Ray Shader_GlossyB_trRay.png Shader_GlossyG_trRay.png Shader_GlossyS_trRay.png

Roughness 0.5 Beckmann GGX
通常の World Shader_GlossyB_nomal0.5.png Shader_GlossyG_nomal0.5.png
Is Camera Ray Shader_GlossyB_caRay_0.5.png Shader_GlossyG_caRay_0.5.png
Is Shadow Ray Shader_GlossyB_shRay_0.5.png Shader_GlossyG_shRay_0.5.png
Is Diffuse Ray Shader_GlossyB_diRay_0.5.png Shader_GlossyG_diRay_0.5.png
Is Glossy Ray Shader_GlossyB_glRay_0.5.png Shader_GlossyG_glRay_0.5.png
Is Singular Ray Shader_GlossyB_siRay_0.5.png Shader_GlossyG_siRay_0.5.png
Is Reflection Ray Shader_GlossyB_reRay_0.5.png Shader_GlossyG_reRay_0.5.png
Is Transmission Ray Shader_GlossyB_trRay_0.5.png Shader_GlossyG_trRay_0.5.png

Roughness 1.0 Beckmann GGX
通常の World Shader_GlossyB_nomal1.png Shader_GlossyG_nomal1.png
Is Camera Ray Shader_GlossyB_caRay_1.png Shader_GlossyG_caRay_1.png
Is Shadow Ray Shader_GlossyB_shRay_1.png Shader_GlossyG_shRay_1.png
Is Diffuse Ray Shader_GlossyB_diRay_1.png Shader_GlossyG_diRay_1.png
Is Glossy Ray Shader_GlossyB_glRay_1.png Shader_GlossyG_glRay_1.png
Is Singular Ray Shader_GlossyB_siRay_1.png Shader_GlossyG_siRay_1.png
Is Reflection Ray Shader_GlossyB_reRay_1.png Shader_GlossyG_reRay_1.png
Is Transmission Ray Shader_GlossyB_trRay_1.png Shader_GlossyG_trRay_1.png

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 Shader_GlassB_nomal.png Shader_GlassG_nomal.png Shader_GlassS_nomal.png
Is Camera Ray Shader_GlassB_caRay.png Shader_GlassG_caRay.png Shader_GlassS_caRay.png
Is Shadow Ray Shader_GlassB_shRay.png Shader_GlassG_shRay.png Shader_GlassS_shRay.png
Is Diffuse Ray Shader_GlassB_diRay.png Shader_GlassG_diRay.png Shader_GlassS_diRay.png
Is Glossy Ray Shader_GlassB_glRay.png Shader_GlassG_glRay.png Shader_GlassS_glRay.png
Is Singular Ray Shader_GlassB_siRay.png Shader_GlassG_siRay.png Shader_GlassS_siRay.png
Is Reflection Ray Shader_GlassB_reRay.png Shader_GlassG_reRay.png Shader_GlassS_reRay.png
Is Transmission Ray Shader_GlassB_trRay.png Shader_GlassG_trRay.png Shader_GlassS_trRay.png

Roughness 0.5 Beckmann GGX
通常の World Shader_GlassB_nomal0.5.png Shader_GlassG_nomal0.5.png
Is Camera Ray Shader_GlassB_caRay_0.5.png Shader_GlassG_caRay_0.5.png
Is Shadow Ray Shader_GlassB_shRay_0.5.png Shader_GlassG_shRay_0.5.png
Is Diffuse Ray Shader_GlassB_diRay_0.5.png Shader_GlassG_diRay_0.5.png
Is Glossy Ray Shader_GlassB_glRay_0.5.png Shader_GlassG_glRay_0.5.png
Is Singular Ray Shader_GlassB_siRay_0.5.png Shader_GlassG_siRay_0.5.png
Is Reflection Ray Shader_GlassB_reRay_0.5.png Shader_GlassG_reRay_0.5.png
Is Transmission Ray Shader_GlassB_trRay_0.5.png Shader_GlassG_trRay_0.5.png

Roughness 1.0 Beckmann GGX
通常の World Shader_GlassB_nomal1.png Shader_GlassG_nomal1.png
Is Camera Ray Shader_GlassB_caRay_1.png Shader_GlassG_caRay_1.png
Is Shadow Ray Shader_GlassB_shRay_1.png Shader_GlassG_shRay_1.png
Is Diffuse Ray Shader_GlassB_diRay_1.png Shader_GlassG_diRay_1.png
Is Glossy Ray Shader_GlassB_glRay_1.png Shader_GlassG_glRay_1.png
Is Singular Ray Shader_GlassB_siRay_1.png Shader_GlassG_siRay_1.png
Is Reflection Ray Shader_GlassB_reRay_1.png Shader_GlassG_reRay_1.png
Is Transmission Ray Shader_GlassB_trRay_1.png Shader_GlassG_trRay_1.png

Translucent BSDF

  Hex:F7F7F7
通常の World Shader_Translucent_nomal.png
Is Camera Ray Shader_Translucent_caRay.png
Is Shadow Ray Shader_Translucent_shRay.png
Is Diffuse Ray Shader_Translucent_diRay.png
Is Glossy Ray Shader_Translucent_glRay.png
Is Singular Ray Shader_Translucent_siRay.png
Is Reflection Ray Shader_Translucent_reRay.png
Is Transmission Ray Shader_Translucent_trRay.png

Transparent BSDF

  Hex:F7F7F7
通常の World Shader_Transparent_nomal.png
Is Camera Ray Shader_Transparent_caRay.png
Is Shadow Ray Shader_Transparent_shRay.png
Is Diffuse Ray Shader_Transparent_diRay.png
Is Glossy Ray Shader_Transparent_glRay.png
Is Singular Ray Shader_Transparent_siRay.png
Is Reflection Ray Shader_Transparent_reRay.png
Is Transmission Ray Shader_Transparent_trRay.png

Velvet BSDF

  Sigma 1.0
通常の World Shader_Velvet_nomal.png
Is Camera Ray Shader_Velvet_caRay.png
Is Shadow Ray Shader_Velvet_shRay.png
Is Diffuse Ray Shader_Velvet_diRay.png
Is Glossy Ray Shader_Velvet_glRay.png
Is Singular Ray Shader_Velvet_siRay.png
Is Reflection Ray Shader_Velvet_reRay.png
Is Transmission Ray Shader_Velvet_trRay.png



コメントを投稿するには画像の文字を半角数字で入力してください。


画像認証

  • 最終更新:2012-10-19 17:46:40

このWIKIを編集するにはパスワード入力が必要です

認証パスワード