logo-roadto3dcg
ヘッダー画像

Road to 3DCG

メモ | 物理ベースレンダリングをちゃんと勉強したい

2016-07-12

なんとなーくわかったつもりになっていた物理ベースレンダリングをきちんと理解したい。…物理の計算式とかはお手上げだけど。できる範囲で。

基礎知識

PBR In Practice | Marmoset 物理ベースレンダリングについての解説サイトでよく引用されているMarmosetのページ。以下は和訳されているブログ。

龍のTDコンバット♪~TDのための技術メモと実践ログ: Marmoset Toolbat2の「Basic Theory of Physically-Based Rendering」を訳してみた
龍のTDコンバット♪~TDのための技術メモと実践ログ: Marmoset Toolbat2の「Tutorial: Physically Based Rendering」を訳してみた

要するにどういうことなの

アーティストのためのPBR解説動画・日本語字幕あり。

2010 - s2012_pbs_physics_math_slides.pdf 上の動画で引用されているSIGGRAPH2012のスライド(p.39~p.43とか)。

フレネル反射率について - hanecci’s Blog 上記スライドの用語補足とか。

もっとわかりやすく

背景アーティストのぶろぐ: PBRの種類 MarmosetToolBag2とUnrealEngine4のパラメータの違い等。他の解説見て「スペキュラはもういらないと言ったり重要だと言ったり一体どっちなの…」と混乱してたので、こうやって順番に区別して説明していただけるとかなりわかりやすかった。

自分なりにまとめてみる

物理ベースなレンダリング&マテリアルのメリット
  • 見た目がきれい。言い換えると、きれいに感じる最適解を見つけやすい。
  • 自然に見えるのでファンタジー作品などでも違和感を与えにくい(例:ディズニー/ピクサー作品)。複数のものを並べたときや、背景とモデルを合わせたときの整合性が保てる。
  • 一貫性があるので再利用しやすい。制作環境を変えても流用しやすい。
  • パラメータを決定しやすく、作成が楽。既製のプリセットやマテリアルバンクなども利用可能。
使用するテクスチャマップ
  • BaseColor/Albedo - AOや反射などを除いた、素材自体の色味。
  • Metallic/Metalness - 金属←→非金属の度合い。
  • Glossiness←→Roughness - 材質の滑らかさ←→粗さを表現。
  • Cavity - 表面の細かい凹凸を表現。
  • Normal - 法線マップ。
作成ルール
  • エネルギー保存の法則を守る。DiffuseやReflectionなど、反射光の合計は入ってくる光の量を超えてはならない。ハイライトが明るいほど他が暗くなる。光が当たっている範囲が広いほど全体が暗くなる。
  • 材質によってフレネル特性が違う。金属は周縁部の反射よりも表面の反射のほうが多いのでフレネルの影響を感じにくい。
  • 表面の色とスペキュラの見え方について。非金属→アルベドの色が表面に見える(Diffuse)、スペキュラはアルベドの影響を受けず環境光に基づく。金属→Diffuseに頼らない、スペキュラにアルベド由来の色が乗る。
  • スペキュラの見え方でラフネスを表現。どのくらい光が乱反射するか。表面が粗いほど反射光にぼかしがかかる→エネルギー保存の法則により暗くなる。
  • 写真からアルベドを得るにはアンビエントオクルージョンを削除するか大きく減らす。PLフィルタでスペキュラを除外して撮影。カラーチャートを一緒に撮っておくと楽そう。
  • 正確な結果を出すためにリニア空間で計算する。
    (関連)Blender GlossyシェーダーのRoughnessを補正 Correcting Blenders Roughness Value

あとでチュートリアル実践編もまとめる。