twaki’s blog

ゲーム開発に関する事を書くと思います。

PBRについて #3

引き続き、Frostbiteの資料を見ながら進めていきます。
関連する記事は PBRについて #0 にまとめています。

今回は Moving Frostbite to Physically Based Rendering 3.0 の 「3 Material」を見てみます。
この章は量が多めなので、何回かに分けて書こうと思います。

※メモみたいなものなので、言葉遣いは雑です。
※個人的な解釈なので間違ってる可能性はあります。
※間違っている箇所がありましたら、ご指摘頂けると助かります。


3.1 マテリアルモデル

3.1.1 外観

表面外観は、入射光と表面のマテリアル特性との間の相互作用に起因する。
現実の世界で観察可能なさまざまな外観は、単純な均一マテリアルから複雑な層状および異種マテリアルに至るまでかなり広い。(図4参照)

f:id:twaki:20180724220057j:plain:w400
図4:光と物質の相互作用の多様性を示す様々な表面様相

これらの異なる外観は、導電率、平均自由行程および吸収などの特定の固有の物理的特性によって分類することができる。
これらのマテリアル特性に基づいて、文献は、フルスペクトルの中で特定の範囲の外観を表すことができる様々なマテリアルモデルを公開している。
マテリアルモデルの文献は幅広く、様々なトレードオフと精度を備えた多くの異なるモデルが存在する。
BSDF(Bidirectional Scattering Distribution Function:双方向散乱分布関数)と呼ばれるマテリアルモデルは、反射部分(BRDF)と透過部分(BTDF)の2つの部分に分解することができる。
Frostbiteの資料では、反射部分、特に"標準(standard)"外観、すなわち私たちが日々の生活の中で遭遇する表面の大部分を表すことができるマテリアルモデルに焦点を当てている。
したがって、Frostbiteでは短い平均自由行程を持つ反射性、等方性、誘電体/導体表面に限定する。

f:id:twaki:20180724233435j:plain
図5:"標準"物質のスラブ(厚く平たい板)との光の相互作用。 左:軽い相互作用。 右:拡散反射項fdと鏡面反射項frとの相互作用のBSDFモデル

3.1.2 マテリアルモデル

この標準的なマテリアルモデルでは、表面応答(surface responce)fは、「拡散反射(diffuse)」(fd)と呼ばれる低周波数信号と「鏡面反射(specular)」(fr)と呼ばれる低周波から高周波数部分の2つの異なる項に分解されることがよくある。(図5参照)
境界面は、空気と物質の2つの媒質を分離する:
フラットな境界面からなる表面は、誘電体表面と導体表面の両方に対して フレネル法則 によって容易に表すことができる。
境界面が不規則である場合、図6を参照すると、これらのタイプの表面の光相互作用を特徴づけるために マイクロファセットベースのモデル がよく適合していることが文献に示されている。
マイクロファセットモデルは式1によって記述され、導出の詳細は こちら を参照する。

f:id:twaki:20180725000751j:plain

D項は、マイクロファセット分布(すなわち、NDF:正規分布関数)をモデル化する。
G項は、マイクロファセットのオクルージョン(シャドウマスキング)をモデル化する。
この定式化は拡散反射項fdと鏡面反射項frの両方に有効。
これらの2つの用語間の違いは、マイクロファセットBRDF fmにある。
鏡面反射項の場合、fmは完璧な鏡であり、従って、フレネル F 法則を用いてモデル化され、周知の次の式で導かれる。

f:id:twaki:20180725001636j:plain

D項は、図6に示すように、表面の外観において重要な役割を果たす。
文献[Wal+ ; Bur12]は、GGX分布のような「長いテール」のNDFが現実世界の表面を捕捉するのに優れていることを指摘している。
G項もまた、高いラフネス値にとって重要な役割を果たす。
Heitz [Hei14] は最近、スミスの可視性関数(visibility function)が正確なG項であることを示している。
Heitzはまた、文献ではスミスの可視性関数の近似バージョンを使用する傾向があり、マスキングシャドーイング関数より正確な形式は、ミクロ表面の高さに起因するマスキングとシャドーイングの間の相関をモデル化することを指摘している。(図3参照)
図7は、シンプルなスミス関数と高さ相関スミス関数の違いを示している。

f:id:twaki:20180725002919j:plain

f:id:twaki:20180725001301j:plain
図6:D項によってモデル化された異なる粗さの表面を示した図。 上:マイクロファセットとの軽い相互作用。 中:結果のBRDF frローブ。 下:球体の外観。

f:id:twaki:20180725003808j:plain
図7:黒い誘電体(上)とクロム金属(下)の球体におけるの無相関と相関のスミス可視性関数の比較。 高さ相関バージョンでは、高いラフネス値に対してわずかに多くのエネルギーが戻ってくることに注意する。

拡散反射項については、fmはランバートモデルに従い、式1は次のように単純化することができる。

f:id:twaki:20180725004934j:plain

最近まで、拡散反射項fdは単純なランバートモデルであると仮定されていた。
しかし、層状物質を除いて、拡散部分は鏡面反射項とコヒーレントである必要があり、表面の粗さ[Burley12] を考慮する必要がある(鏡面反射と拡散反射項は同じラフネス項を使用する必要がある)。(図8参照)
式4には分析解がない。
Orenら[ON94] は、この式の経験的近似を、ガウスNDF分布と、Oren-Nayarモデルとして知られているV-cavity G項を使用して見いだした。
モデルを正しくサポートするには、Gotanda[Got14] で説明されているように、式4をGGX NDFで等価近似する必要がある。
付録Bには、このような拡散モデルに関する分析の一部が詳述されているが、さらなる研究が必要である。

f:id:twaki:20180725010217j:plain
図8は、鏡面反射BRDF fm(左)と拡散反射BRDF fm(右)を有する拡散反射項fdの両方についての鏡面反射fr項のマイクロスケールでの相互作用の図を示す。

Burley[Bur12] は、実世界の表面観測で構築された別の拡散モデルを提示した。(式5参照)
このモデルは実証的なものだが、MERLデータベースのマテリアルの主な特徴を再現できる。 この理由から、またその単純さのために、Frostbiteでこのモデルを使用することを選択した。
この拡散反射項は、マテリアルのラフネスを考慮に入れ、グレージングアングル(斜面角)である程度の逆反射を生成する。

f:id:twaki:20180725010728j:plain

3.1.3 エネルギー保存

エネルギー保存は、受け取ったエネルギーより多くのエネルギーを加えないために考慮する必要がある。
さらに、光が拡散反射項よりも鏡面反射項によって散乱される傾向があるグレージングアングル(斜面角)での挙動を正しく処理することができる。
Frostbiteでは、計算を単純に保ち、半球上の一定の照明のために一定の方向の全反射率を与える半球方向の反射率がFrostbiteのBRDF(拡散反射+鏡面反射 項)全体に対して1未満であることを保証することによって、エネルギーの保存のみを保証することを選択した。

f:id:twaki:20180726003640j:plain

Frostbiteの鏡面反射モデルと拡散反射モデルとの間の直接的でない関係のために適切な誘導を行うことは容易ではない(鏡面反射と拡散反射の両方の用語がマイクロファセットモデルに基づく場合については付録Cを参照)。
ディズニー拡散反射モデルの1つの重要な注意点は、エネルギー保存の欠如。
図9の(a)は、ディズニー拡散反射モデルの半球方向の反射率を示す。
結果として得られる反射率の値が1を超えているため、このBRDFがエネルギー保存ではないことが明確に分かる。

f:id:twaki:20180726005949j:plain
図9:様々なビューアングルとラフネスに対するディズニー拡散BRDFの半球反射率のプロット。 左:元の反射率。これは1を超えることがある。 中:新しい再正規化反射率の値。 右:鏡面反射と拡散反射の組み合わせ。

Frostbiteでは、再帰反射特性を維持しながら、エネルギーの利得を補うために少し修正した。
リスト1は、再正規化係数を使ったディズニー評価関数を示している。
図9の(c)は、frの鏡面反射マイクロファセットモデルとfdのディズニー拡散反射モデルとからなる、完全なfの半球方向の反射率を示す。
1に完全には等しくないが、それは十分に近い。
図10はオリジナルのディズニー拡散反射項とその正規化バージョンを比較している。

f:id:twaki:20180729133120j:plain
リスト1:エネルギーの再正規化を伴うディズニーの拡散反射BRDFコード。linearRoughnessは、知覚的な線形の粗さ。(3.2.1項参照)

3.1.4 形状特性

鏡面反射マイクロファセットベースのBRDFは、しばしば無視されるが、最終的な外観に強い影響を及ぼす特定の特性を有する。
特に2つの現象が重要。
Half-angle parameterization
このパラメータ化は、垂直入射角で等方性から斜め角に異方性に向かうBRDF形状の非線形変換を意味する。 (この部分の詳細については、4.9節を参照。)
Off-specular
BRDFローブは、反射されたビュー方向(ミラー方向とも呼ばれる)の周囲に中心が置かれていることが多いと考えられる。
しかし、<n・l>とシャドウマスキング項Gのため、BRDFローブはラフネスが増加すると法線方向にシフトする。(図11を参照)
このシフトは"Off-specular peak"と呼ばれ、表面の粗い外観で重要な役割を果たす。

f:id:twaki:20180729164146j:plain
図10:上:ディズニー拡散反射項とランバート拡散反射項との比較。 下:オリジナルのディズニー拡散反射項とFrostbiteが導入した再正規化バージョンの比較。

f:id:twaki:20180729144651j:plain
図11:様々なビューアングルに対するBRDFローブ形状の例。支配的なローブ方向( dominant lobe direction)は、グレージングビューアングルではミラー方向Rと一直線でないが、その代わりに方向Mとなる。上段:α = 0.4。下段:α= 0.8。

"Off-specular peak"は、高いラフネス値に対して大きな差異をもたらす可能性がある。
この重要な特徴を考慮するために、Frostbiteは、エリアライトおよびイメージベースドライティング評価中に使用されるこの支配的な方向(dominant direction)をモデル化しようとした。
(エリアライトおよびイメージベースドライティングはセクション4.7、4.9を参照。)

3.1.5 Frostbiteの標準モデル

要約すると、Frostbiteの"標準"マテリアルモデルは、他のゲームエンジンで使用されているものに近い[Kar13; NP13; Bur12]。
これは、

鏡面反射項 fr
スミス相関可視性関数(Smith correlated visibility function)およびGGX NDFを用いた鏡面反射マイクロファセットモデル。(式2を参照)
拡散反射項 fd
エネルギー再正規化されたディズニー拡散反射項

である。

両方の要素について、照明を統合する際に、支配的な方向の補正(off-specular peak handling)を適用する。
これらのモデルを操作するためのパラメータについては、次のセクションで説明する。 Frostbiteはまた、クリアコートや表面化散乱(サブサーフェイス・スキャタリング)を伴うマテリアルなど、他のタイプのマテリアルもサポートしているが、本書では標準マテリアルモデルのみに焦点を当てる。

f:id:twaki:20180729163244j:plain
リスト2:BSDF評価コード


参考資料

Moving Frostbite to Physically Based Rendering 3.0

Moving Frostbite to Physically Based Rendering

 超雑訳 Moving Frostbite to Physically Based Rendering 2.0