本日は Blener2.8 の調査枠です。
Blender2.8のプリンシプルBSDF (Principled BSDF) の解説と使用例を記事にします。
本解説は主に以下のページを参考にしました。
cycles.wiki.fc2.com
プリンシプルBSDFとは
プリンシプルBSDFは "PBR" (Physically-Based Rendering : 物理ベースレンダリング) シェーダとして知られる Disney "principled" BRDF に基づいたシェーダです。
・Physically-Based Shading at Disney
https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf
Pixar の Renderman や Unreal Engine などの他のソフトウェアとの互換性を持ちます。
このシェーダには、さまざまな素材を作成するための複数の層が含まれています。
基本層は、拡散(diffuse)、金属(metal)、表面下散乱(subsurface scattering)、透過(transmission)です。
その表層には、鏡面(specular)、光沢(sheen)、クリアコート(clearcoat)があります。
各項目の解説と使用例
プリンシプルBSDFの各項目の解説と使用例を記述します。
新規のプリンシプルBSDFサーフェスのマテリアルを設定したスザンヌモデルで試していきます。
なお、使用例については全てレンダーエンジンに[Cycles]を利用しています。
サブサーフェス
拡散と表面下散乱の混合比 (0.0 - 1.0) を設定します。
値を[1.0]に近づけるほど、混合比が高くなります。物体が僅かに透過した表面下の色合いが濃くなります。
例えば生き物の場合、皮膚の下には血液の赤みがあるので、赤みがかったサブサーフェスを設定すると生物感が増します。
ベースカラーによる色設定と異なる点として、表面色が反射されない影の部分ほど色味が強くなる特徴があります。
サブサーフェス範囲
RGB チャンネルの平均散乱距離 (各 0.0 - 100.0) を設定します。
表面下の色合いが拡散される係数に当たり、上から順に赤、緑、青の係数になります。
デフォルトで赤みが強めに設定されているため、サブサーフェス色が白色でも赤みがかって見えています。
メタリック
誘電体(拡散および鏡面反射)と金属(複合フレネルを持つ完全鏡面反射)との混合比 (0.0 - 1.0) を設定します。
基本的には、誘電体のマテリアルは[0.0]にし、金属のマテリアルは[1.0]にして使用します。
サンプルでは[粗さ]の設定項目を[0.0]に設定しています。
粗さが[1.0]に近づくほど表面の鏡面反射が発生しなくなるため、カーボンのような見た目になります。
スペキュラー
誘電体の鏡面反射量 (0.0 - [1.0]) を設定します。
通常、最も一般的な表面(法線方向)反射率 0~8%の範囲で指定します。
サンプルは[粗さ]の設定項目を[0.0]に設定しています。
スペキュラーを[0.0]に設定しているため、鏡面反射が全く発生していません。
[1.0]に近づくほど、鏡面反射が減衰せずに発生します。
本項目は非金属の表現のために利用します。ほとんどの場合、デフォルト値の[0.5]で使用するのが一般的なようです。
metalness ワークフローでは非金属を正確に表現できない。非金属は少量の鏡面反射を含むからだ。 Blender のプリンシプルシェーダにあるスペキュラーはこの鏡面反射をコントロールするためにある。 プリンシプルシェーダのスペキュラーの0~1は鏡面反射率の0~8%に対応している。 スペキュラーの既定値である 0.5 は鏡面反射率の4%に対応する。 これはプラスチックの鏡面反射率で、ほとんどの非金属でこの値が推奨されている。 ダイアモンドのような鏡面反射率が8%を超える非金属も存在しているので、プリンシプルシェーダのスペキュラーは1を超える値を設定できる。
スペキュラーチント
かすめる反射は白く残したまま、鏡面反射にベースカラーを混ぜる割合 (0.0 - 1.0) を設定します。
通常の誘電体は無色の反射となるため、このパラメータは技術的・物理的には正しくありません。
複雑な表面構造のマテリアルを模造するために提供されています。
サンプルでは分かりやすくするため、[スペキュラー]を[1.0]に、ベースカラーを赤色にしています。
スペキュラーチントを[0.0]に戻したものが以下です。反射光の赤以外の色合いが先ほどと異なっていることが分かります。
粗さ
拡散および鏡面反射表面のマイクロファセットの粗さ (0.0 - 1.0) を設定します。
[0.0]に近づくほど鏡面反射する滑らかな質感に、[1.0]に近づくほど鏡面反射が拡散するザラついた質感になります。
異方性
鏡面反射の異方性量 (0.0 - 1.0) を設定します。
異方性は光の反射を一定方向に向ける効果です。[1.0]に近づくほど、鏡面反射の異方性が強くなり、光の反射に強弱が生まれます。
異方性の回転
異方性の方向を回転量 (0.0 - 1.0) を設定します。
[0.0]で[0 °]、[0.5]で[180°]、[1.0]で[360°]回転します。
シーン
布のような材質を表現するためのもので、縁近くの反射のようなソフトベルベットの量 (0.0 - 1.0) を設定します。
効果を分かりやすくするため、モデルの背後にライトを設置しました。[シーン]が[0.0]だと見た目が全て影になります。
このまま[シーン]を[1.0]に変更したものが以下です。
光が縁に沿って回り込み、うっすらと照らされているのが分かります。
シーンチント
シーンの反射色の白にベースカラーを混ぜる割合 (0.0 - 1.0) を設定します。
以下は先ほどの設定でベースカラーを赤色にして[シーンチント]を[0.0]にしたサンプルです。
回り込んだ光が光源の白色であることが分かります。
[シーンチント]を[1.0]にしたサンプルが以下です。
回り込んだ光がベースカラーの赤みがかった色合いになっていることが分かります。
クリアコート
最上層の追加する白い鏡面反射層 (0.0 - 1.0) を設定します。カーペイントやニスを塗った様な材質を表現できます。
例えば、[粗さ]を[1.0]にして[クリアコート]を[クリアコートの粗さ]の[0.0]で有効にすると表層の光が反射する表現になります。
クリアコートの粗さ
クリアコート鏡面反射の粗さ (0.0 - 1.0) を設定します。
粗さと同様に、[1.0]に近づくほど鏡面反射が拡散するザラついた質感になります。
伝播
透過の度合 (0.0 - 1.0) を設定します。
[0.0]で完全に不透明な面、[1.0]で完全にガラスのような透過となります。
伝播の粗さ
透過光の粗さ (0.0 - 1.0) を設定します。
[0.0]に近づくほど光が減衰しない透過に、[1.0]に近づくほど光が拡散する曇った透過になります。
IOR
透過用の屈折率 (0.0 - 1000.0) を設定します。デフォルト値の[1.450]はガラスの屈折率になります。
水の屈折率である[1.33]を設定すると、そのまま水のような透過の質感になります。
実際の物質の屈折率は以下が参考になります。
ww1.tiki.ne.jp
放射
物体から光を放射する光を設定します。
レンダリング時には周りの物体にも影響を及ぼし、光源のように作用します。
アルファ
純粋な透明度 (0.0 - 1.0) を設定します。
伝播と異なり、透過する光に屈折率は反映されません。