Principled BSDF
BlendernのマニュアルにはPBRシェーダーとして知られるディズニーの原理モデルに基づき、Renderman、UEなどのソフトウェアとの互換性があります、とあります。このモデル自体はディズニーはSIGGRAPH 2012で紹介したDisney principled BRDFってのが始まりみたいですね。
- baseColor
- 物体表面の色
- subsurface
- 拡散反射とサブサーフェーススキャッタリング(表面下散乱)の間の調整値
- metallic
- 金属か非金属か。導電体、誘電体の区別とも説明されてるけど、電流を流すもの流さないものの区別とも言えますかね。金属側にした時は拡散反射成分を持たなくなります。
- specular
- 非金属の場合のスペキュラー反射の調整値。0の場合スペキュラー(直接反射)は消えると思いきや、入射角が90度に近くなるとその成分が現れる。フレネル効果がこれということらしい。
- specularTint
- 非金属の場合のスペキュラー反射の色。
- roughness
- 物体表面の粗さ(指で触った肌触りといったレベルの話ではなくミクロな表面の粗さみたい)。
- anisotropic
- スペキュラーの異方性の度合い。接線方向に対してスペキュラーの伸びる量を規定している模様。
- sheen
- 布表現なんかで使う値。入射角が90度付近での反射量?
- sheenTint
- Sheen成分とbaseColorをミックスする。
- clearcoat
- 一番上の層に追加されるスペキュラー層。
- clearcoatGloss
- クリアコートの光沢を調整。BlenderではClearcoat Weightかな?
以上が定義されているそうで、さらにDisney principled BSDFにより透過が加わったりその他拡張が加えられて今のBlenderのprincipled BSDFとなっている模様。
とかやってたのはとある素材集のFBXを読み込んだ時、付属するテクスチャのprincipled BSDFシェーダに繋がるポートがどうもわからんって感じだったから。SpecularのIOR Levelにささったテクスチャがありましてね。?って思うわけです。まあたぶん、Blenderが勘違いした結果だと思うのだけど、?って思う程度には理解してないなと思った次第。反省。
FBXはPBRマテリアルへの対応がされていないようで、そもそも制作者の意図した状態のマテリアルがBlenderで再現されるわけはないのだから、テクスチャは繋ぎ直しが基本なのだろうけどね。面倒なことです。PBRマテリアルに対応している汎用フォーマットとしてglTFやUSDがあるそうで、やはりこの辺に手を出していく必要があるなあと遅まきながら思っている今日この頃です。
<追記>せっかくなので復習。IOR。Index of Refrection。詳しくはウィキペディアでも見とけって思ったりはするけど、そこにはこう書かれてます。
真空中の光速を物質中の光速(より正確には位相速度)で割った値であり、物質中での光の進み方を記述する上での指標である。
というそのままのお話で、CG屋さんの間で広く共有されていると思われるガラスのIORは1.5だけど、これは新空中の光はガラス内の光より1.5倍ほど遅いと言えるんかね。その結果、光は物質間の境界で曲がり、角度がついて入射するとき透明な物質の向こうにある物の位置が実際の位置とはずれて見える、なんてことは現象としてはよく知られている通りです。
理論的にはこの辺はホイヘンスの原理から説明されるそうだけど、まあともあれ物質をまたぐと光は曲がる、と。
一方で光は物質を跨ぐところで反射もします。入射した光のうちどれだけ反射するかを示す値が反射率みたいだけど、それは屈折率から求められるということです。ってことで、CGソフトではIORを定義すれば透過と反射両方の挙動が求められる、ということみたいです。
ちなみに不透明なのに屈折率をどうやって測定しているのって思うわけですけど、測定方法がいくつかあるそうで、頭いい人たちはすごいなぁって思うわけです。</追記>
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |