MRが楽しい

MRやVRについて学習したことを書き残す

Blender2.8のプリンシプルBSDFの使い方を解説する

本日は Blener2.8 の調査枠です。
Blender2.8のプリンシプルBSDF (Principled BSDF) の解説と使用例を記事にします。
f:id:bluebirdofoz:20191005090842j:plain

本解説は主に以下のページを参考にしました。
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サーフェスのマテリアルを設定したスザンヌモデルで試していきます。
f:id:bluebirdofoz:20191005091014j:plain

なお、使用例については全てレンダーエンジンに[Cycles]を利用しています。

ベースカラー

拡散または金属面のベースカラーを設定します。
物体そのものの基本色を表現するために利用します。テクスチャを設定する事もできます。
f:id:bluebirdofoz:20191005091026j:plain

サブサーフェス

拡散と表面下散乱の混合比 (0.0 - 1.0) を設定します。
値を[1.0]に近づけるほど、混合比が高くなります。物体が僅かに透過した表面下の色合いが濃くなります。
f:id:bluebirdofoz:20191005091037j:plain

例えば生き物の場合、皮膚の下には血液の赤みがあるので、赤みがかったサブサーフェスを設定すると生物感が増します。
ベースカラーによる色設定と異なる点として、表面色が反射されない影の部分ほど色味が強くなる特徴があります。

サブサーフェス範囲

RGB チャンネルの平均散乱距離 (各 0.0 - 100.0) を設定します。
表面下の色合いが拡散される係数に当たり、上から順に赤、緑、青の係数になります。
f:id:bluebirdofoz:20191005091048j:plain

デフォルトで赤みが強めに設定されているため、サブサーフェス色が白色でも赤みがかって見えています。

サブサーフェス

表面下散乱のベースカラーを設定します。
表面下の色合いを変更するために利用します。サブサーフェスが[0.0]の場合、効果は表れません。
f:id:bluebirdofoz:20191005091101j:plain

メタリック

誘電体(拡散および鏡面反射)と金属(複合フレネルを持つ完全鏡面反射)との混合比 (0.0 - 1.0) を設定します。
基本的には、誘電体のマテリアルは[0.0]にし、金属のマテリアルは[1.0]にして使用します。
f:id:bluebirdofoz:20191005091113j:plain

サンプルでは[粗さ]の設定項目を[0.0]に設定しています。
粗さが[1.0]に近づくほど表面の鏡面反射が発生しなくなるため、カーボンのような見た目になります。
f:id:bluebirdofoz:20191005091127j:plain

スペキュラー

誘電体の鏡面反射量 (0.0 - [1.0]) を設定します。
通常、最も一般的な表面(法線方向)反射率 0~8%の範囲で指定します。
f:id:bluebirdofoz:20191005091140j:plain

サンプルは[粗さ]の設定項目を[0.0]に設定しています。
スペキュラーを[0.0]に設定しているため、鏡面反射が全く発生していません。
[1.0]に近づくほど、鏡面反射が減衰せずに発生します。
f:id:bluebirdofoz:20191005091150j:plain

本項目は非金属の表現のために利用します。ほとんどの場合、デフォルト値の[0.5]で使用するのが一般的なようです。

metalness ワークフローでは非金属を正確に表現できない。非金属は少量の鏡面反射を含むからだ。
Blender のプリンシプルシェーダにあるスペキュラーはこの鏡面反射をコントロールするためにある。
プリンシプルシェーダのスペキュラーの0~1は鏡面反射率の0~8%に対応している。
スペキュラーの既定値である 0.5 は鏡面反射率の4%に対応する。
これはプラスチックの鏡面反射率で、ほとんどの非金属でこの値が推奨されている。
ダイアモンドのような鏡面反射率が8%を超える非金属も存在しているので、プリンシプルシェーダのスペキュラーは1を超える値を設定できる。

dskjal.com

スペキュラーチント

かすめる反射は白く残したまま、鏡面反射にベースカラーを混ぜる割合 (0.0 - 1.0) を設定します。
通常の誘電体は無色の反射となるため、このパラメータは技術的・物理的には正しくありません。
複雑な表面構造のマテリアルを模造するために提供されています。
f:id:bluebirdofoz:20191005091208j:plain

サンプルでは分かりやすくするため、[スペキュラー]を[1.0]に、ベースカラーを赤色にしています。
スペキュラーチントを[0.0]に戻したものが以下です。反射光の赤以外の色合いが先ほどと異なっていることが分かります。
f:id:bluebirdofoz:20191005091225j:plain

粗さ

拡散および鏡面反射表面のマイクロファセットの粗さ (0.0 - 1.0) を設定します。
[0.0]に近づくほど鏡面反射する滑らかな質感に、[1.0]に近づくほど鏡面反射が拡散するザラついた質感になります。
f:id:bluebirdofoz:20191005091238j:plain

異方性

鏡面反射の異方性量 (0.0 - 1.0) を設定します。
異方性は光の反射を一定方向に向ける効果です。[1.0]に近づくほど、鏡面反射の異方性が強くなり、光の反射に強弱が生まれます。
f:id:bluebirdofoz:20191005091248j:plain

異方性の回転

異方性の方向を回転量 (0.0 - 1.0) を設定します。
[0.0]で[0 °]、[0.5]で[180°]、[1.0]で[360°]回転します。
f:id:bluebirdofoz:20191005091300j:plain

シーン

布のような材質を表現するためのもので、縁近くの反射のようなソフトベルベットの量 (0.0 - 1.0) を設定します。
効果を分かりやすくするため、モデルの背後にライトを設置しました。[シーン]が[0.0]だと見た目が全て影になります。
f:id:bluebirdofoz:20191005091310j:plain

このまま[シーン]を[1.0]に変更したものが以下です。
光が縁に沿って回り込み、うっすらと照らされているのが分かります。
f:id:bluebirdofoz:20191005091319j:plain

シーンチント

シーンの反射色の白にベースカラーを混ぜる割合 (0.0 - 1.0) を設定します。
以下は先ほどの設定でベースカラーを赤色にして[シーンチント]を[0.0]にしたサンプルです。
回り込んだ光が光源の白色であることが分かります。
f:id:bluebirdofoz:20191005091332j:plain

[シーンチント]を[1.0]にしたサンプルが以下です。
回り込んだ光がベースカラーの赤みがかった色合いになっていることが分かります。
f:id:bluebirdofoz:20191005091344j:plain

クリアコート

最上層の追加する白い鏡面反射層 (0.0 - 1.0) を設定します。カーペイントやニスを塗った様な材質を表現できます。
例えば、[粗さ]を[1.0]にして[クリアコート]を[クリアコートの粗さ]の[0.0]で有効にすると表層の光が反射する表現になります。
f:id:bluebirdofoz:20191005091354j:plain

クリアコートの粗さ

クリアコート鏡面反射の粗さ (0.0 - 1.0) を設定します。
粗さと同様に、[1.0]に近づくほど鏡面反射が拡散するザラついた質感になります。
f:id:bluebirdofoz:20191005091404j:plain

伝播

透過の度合 (0.0 - 1.0) を設定します。
[0.0]で完全に不透明な面、[1.0]で完全にガラスのような透過となります。
f:id:bluebirdofoz:20191005091415j:plain

伝播の粗さ

透過光の粗さ (0.0 - 1.0) を設定します。
[0.0]に近づくほど光が減衰しない透過に、[1.0]に近づくほど光が拡散する曇った透過になります。
f:id:bluebirdofoz:20191005091426j:plain

IOR

透過用の屈折率 (0.0 - 1000.0) を設定します。デフォルト値の[1.450]はガラスの屈折率になります。
水の屈折率である[1.33]を設定すると、そのまま水のような透過の質感になります。
f:id:bluebirdofoz:20191005091438j:plain

実際の物質の屈折率は以下が参考になります。
ww1.tiki.ne.jp

放射

物体から光を放射する光を設定します。
レンダリング時には周りの物体にも影響を及ぼし、光源のように作用します。
f:id:bluebirdofoz:20191005091457j:plain

アルファ

純粋な透明度 (0.0 - 1.0) を設定します。
伝播と異なり、透過する光に屈折率は反映されません。
f:id:bluebirdofoz:20191005091508j:plain

ノーマル/クリアコート法線/タンジェント

ノーマルは基本層の法線を制御します。
クリアコート法線はクリアコート(Clearcoat)層の法線を制御します。
タンジェントは異方性(Anisotropic)層のタンジェントを制御します。
f:id:bluebirdofoz:20191005091518j:plain

これらの項目設定には画像ファイルなどを利用します。