goo blog サービス終了のお知らせ 

日々適当

hibitekitou

Principled BSDF

cg |2024-02-20

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を定義すれば透過と反射両方の挙動が求められる、ということみたいです。
ちなみに不透明なのに屈折率をどうやって測定しているのって思うわけですけど、測定方法がいくつかあるそうで、頭いい人たちはすごいなぁって思うわけです。</追記>

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。