拙訳
GGX+SmithマイクロサーフェスのためのPBRディフューズライティング
Titanfall 2の開発中に行ったGGXディフューズの研究
主なおみやげ
- GGX+Smithスペキュラと同じ仮定から導出される新しいディフューズ方程式
- GGX+Smithスペキュラのための新しい安価で良好なシャドウイング/マスキング関数
- シェーダ最適化のための新しい三角関数の公式
道すがらの面白い発見
- PBRスペキュラにおける""の理由は?
- Oren-Nayarディフューズにおける""とは?
- Smithのシャドウイング/マスキングの仮定
- Lambertの物理的解釈
- DisneyのBRDFの部分を解釈するのに役立つ
ちょっとした余談: 元々のモチベーション
- Titanfall 2はOren-Nayarディフューズを用いた
- 疑問: GGXのラフネスからOren-Nayarのラフネスを得るには?
- 発見: Orn-Nayarはまったく異なる仮定に由来する
ちょっとした余談: 元々のモチベーション
| Oren-Nayar | GGX+Smith |
|---|
| シャドウイング/マスキング | V型空洞 | Smith |
| 法線分布 | 球面ガウシアン | GGX |
| ラフネスパラメータ | | |
| 完全に平坦 | | |
| 法線の傾きの標準偏差 | | なら、なら |
ちょっとした余談: 元々のモチベーション
- Oren-NayarとSmith+GGXはマッチしない!
- 標準偏差ですらマッチできない
- ふむ…GGXの標準偏差は
- でミップマップ/フィルタするのがたぶん”最適”?
- 2つのGGX分布の合計はGGXではないので、“適切”にミップマップ/フィルタできない
本日のトークのロードマップ
- 一般的なマイクロファセットベースBRDF
- GGX+Smithマイクロファセットモデルによるディフューズのシミュレーション
- 他のディフューズBRDFとの比較
本日のトークのロードマップ
- 🟦一般的なマイクロファセットベースBRDF
- GGX+Smithマイクロファセットモデルによるディフューズのシミュレーション
- 他のディフューズBRDFとの比較
マイクロファセットBRDFのサブトピックマップ
- 一般的な形式
- そこからPBRスペキュラを得る方法
- ディフューズBRDFへの拡張
マイクロファセットBRDFのサブトピックマップ
- 🟦一般的な形式
- そこからPBRスペキュラを得る方法
- ディフューズBRDFへの拡張
マイクロファセットモデル
- 複雑な🟦マクロサーフェスBRDFを大量の単純な🟥マイクロファセットBRDFで平均する
- 基本的には単なるサブピクセルシェーダアンチエイジング
”一般的”なマイクロファセットベースBRDF
- 完全に一般的ではなく、ハイトフィールドを仮定する
- 編まれたもの、半円形のもの、空洞のあるものはない
一般的なマイクロファセットBRDF
一般的なマイクロファセットBRDF
-
一般的なマイクロファセットBRDF
-
- 個々のファセットが光に反応する方法
- すなわち、に集まるマイクロファセットBRDF
- 通常は理想的な鏡か理想的なディフューズ
一般的なマイクロファセットBRDF
-
- 法線の確率密度
- 配置(形状)ではなく、どんなファセット法線が存在するか
一般的なマイクロファセットBRDF
-
- マイクロファセットの実際の配置(形状)による遮蔽
- マイクロファセットが光と視線の両方から見える確率
マイクロファセットBRDF: 対
- 🟥は2方向から見える割合
- 🟦は1方向から見える割合
マイクロファセットBRDF: の特性
-
- 法線の確率密度
- 累積確率が近くでどれだけ素早く変化するか
- 範囲であり、ではない!
- その確率が0でないいずれかのに対して!
マイクロファセットBRDF: の特性
-
- すべてのマイクロファセットの総表面積
- 少しでもラフネスがあれば、常に1以上になる!
-
- 総面積を正規化するため、を用いてマイクロファセットをマクロサーフェスに射影する
一般的なマイクロファセットBRDF
-
- 光と視点の両方から見えるマイクロファセット法線がある確率密度
- すなわち、BRDFを用いる確率密度
一般的なマイクロファセットBRDF
-
- --- ファセットが光からどれだけ大きく見えるか
- --- ファセットが視点からどれだけ大きく見えるか
一般的なマイクロファセットBRDF
-
- マイクロファセット法線を1回だけバウンスしてに到達するからの光の確率密度
- 要件:
- 平坦なでのみ1になる --- いずれのラフネスでも暗くなりすぎる!
一般的なマイクロファセットBRDF
- 関連する要件:
- 任意の方向において、見えているマイクロファセットの総面積はマクロサーフェスの面積に等しい
マイクロファセットBRDFのサブトピックマップ
- 一般的な形式
- 🟦そこからPBRスペキュラを得る方法
- 🟦それと: はどこから来たのか?ではいけない理由は?
- ディフューズBRDFへの拡張
PBRスペキュラマイクロファセットBRDF
- マイクロファセットBRDFは完璧な鏡である
- すなわち、光はの場合にのみ反射する
- 数学的には、BRDFはスケールされたDiracのデルタである
PBRスペキュラマイクロファセットBRDF
- 純粋な鏡のBRDF:
- は大きさを用いるDiracのデルタである
- は我々が見つけなければならない正規化ファクターである
- 正規化済みBRDF:
- 任意の光と法線に対して、すべてのエネルギーは厳密に1つの視点に反射する
スペキュラBRDFの正規化
- 一般的な場合:
- 我々の場合:
- を評価するためにで積分しなければならないので、積分領域を変更するためにを見つける
スペキュラBRDFの正規化
- は、に対してがどれだけ早く変化するか、である
- これはPBRスペキュラの4を導入するだろう!
スペキュラBRDFの正規化
- を得るためにからを見つけたい
- まず、はを選び取るので、である
スペキュラBRDFの正規化
- 立体角を移動して…
スペキュラBRDFの正規化
- 立体角をに移動して…
スペキュラBRDFの正規化
- 立体角を移動して、スケールして…
- の球:
スペキュラBRDFの正規化
- 立体角を移動して、スケールして…
- の球:
- 単位球:
スペキュラBRDFの正規化
- 立体角を移動して、スケールして…
- の球:
- 単位球:
スペキュラBRDFの正規化
- 立体角を移動して、スケールして…
- の球:
- 単位球:
スペキュラBRDFの正規化
-
スペキュラBRDFの正規化
-
- かつなので、
- よって、完璧な鏡のBRDF:
スペキュラマイクロファセットBRDF
- 入射光のFresnel反射のみがスペキュラ反射を行う
- よって、最終的なスペキュラマイクロファセットBRDF:
スペキュラマイクロファセットBRDF
-
- の積分は、その積分記号を取り除いてをに置き換える、という操作を行う
- スペキュラBRDF:
マイクロファセットBRDFのサブトピックマップ
- 一般的な形式
- そこからPBRスペキュラを得る方法
- 🟦ディフューズBRDFへの拡張
ディフューズマイクロファセットBRDF
-
- Lambertianディフューズ:
- 積分を取り除くためのDiracのデルタがない ☹️
- GGX+Smithの閉形式の解がない ☹️☹️
ディフューズマイクロファセットBRDF
- 数値的に積分を解くので、良い近似を見つけたい
- 最大半分の光が失われる!
- 複数バウンスを無視できない…
- (完全なOren-Nayarは二次バウンスも含む)
直接のみ
アルベド:
{0.75, 0.5, 0.25}
直接と間接
アルベド:
{0.75, 0.5, 0.25}
間接のみ
アルベド:
{0.75, 0.5, 0.25}
並べて表示
アルベド:
{0.75, 0.5, 0.25}
適切なアルベドの重要性
上:
正しい
下:
アルベド x 0.5、
光 x 2
適切なアルベドの重要性
上:
正しい
下:
アルベド x 2、
光 x 0.5
本日のトークのロードマップ
- 🟥一般的なマイクロファセットベースBRDF
- GGX+Smithマイクロファセットモデルによるディフューズのシミュレーション
- 他のディフューズBRDFとの比較
本日のトークのロードマップ
- 一般的なマイクロファセットベースBRDF
- 🟦GGX+Smithマイクロファセットモデルによるディフューズのシミュレーション
- 他のディフューズBRDFとの比較
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 相関のない vs 高さ相関のある
- Smithのシャドウイング/マスキング
- 新しいSmith+GGXの近似
- Smithの偉大さと奇妙さ
- パストレーシング
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 🟦相関のない vs 高さ相関のある
- Smithのシャドウイング/マスキング
- 新しいSmith+GGXの近似
- Smithの偉大さと奇妙さ
- パストレーシング
高さ相関のある
- は個の方向からの幾何的な可視性である
- 相関がない場合:
- 現実的じゃない!点が高い位置にあるほど、との両方から見える可能性が大きくなる(低ければ、可能性は小さくなる)
- 依然として、実践では、驚くほど優秀である
高さ相関のある
- 相関のないはハイトフィールドで法線に当たる光を取り…
高さ相関のある
- …そして、その法線を持つ各マイクロファセットのいたるところに均等にばらまく
高さ相関のある
- これは光を小さくする傾向にあるので、その可視性を減少したり、スペキュラを暗くしたりする
高さ相関のある
- 相関のないの誤差は遮蔽に関係している
- サーフェスが粗くなるほど、誤差が大きくなる
- とがよりglancingであるほど、誤差が大きくなる
- および/またはならば誤差なし
相関のない vs 相関のある
高さ相関あり(下)は粗いサーフェスでのglancing反射を増幅する
黒のアルベド
光の強度 =
厳密 vs 近似の相関のある
近似(下)はかなり優秀だが、依然として中くらいの角度とラフネスでほんの少し暗くなりすぎている
厳密 vs 近似の相関のある
高さ相関のある 相関のない 差異
相関のある
- 角度相関も存在する
- のときに必要:
- 相関のない形式:
- Height correlated somewhere in between when
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 相関のない vs 高さ相関
- 🟦Smithのシャドウイング/マスキング
- 新しいSmith+GGXの近似
- Smithの偉大さと奇妙さ
- パストレーシング
Smithのシャドウイング/マスキング
- すべての法線が平等に遮蔽されると仮定する
- すなわち、とはに依存しない
- 可能な限り最もバランスの取れた仮定
Smithのシャドウイング/マスキング
- 正規化制約から導出できる:
- 確率的ハイトフィールドのレイトレーシングからも導出できる
Smithのシャドウイング/マスキング
- 超基本的なレイトレース導出:
- PDFによって2D平面にを射影する
- は等方的なので、PDFによる1Dスライスを用いる
- 傾きを持つレイがハイトフィールドをウォークしつつ、レイ-サーフェスのコリジョンのPDFを得るためにを用いる
- を得るためにコリジョンのPDFを用いる
Smithのシャドウイング/マスキング
極の法線、PDF
Smithのシャドウイング/マスキング
🟦2Dの傾き、PDF
🟦
極の法線、PDF
Smithのシャドウイング/マスキング
🟦2Dの傾き、PDF
🟥
🟩に対するすべての
🟦
極の法線、PDF
Smithのシャドウイング/マスキング
🟦2Dの傾き、PDF
🟥 1Dの傾き、PDF
🟩に対するすべての
🟦
極の法線、PDF
Smith: 任意の
Smith: 相関あり vs 相関なし
- 相関あり:
- 相関なし:
- またはに対して(すなわち、)でない限り、小さくなりすぎる
GGXのSmith:
- GGXでは:
GGXのSmith:
GGXのSmith:
-
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 相関のない vs 高さ相関のある
- Smithのシャドウイング/マスキング
- 🟦新しいSmith+GGXの近似
- Smithの偉大さと奇妙さ
- パストレーシング
Smith: 近似GGX
- の分母:
- 近似:
Smith: 近似GGX
- UnrealのSmithと同一と判明:
Smith: 近似GGX
- に対するこのを解いて、に接続する:
- の分子は完全なスペキュラBRDFでは打ち消される:
Smithの近似のコスト
- 分母のコストを比較する:
- : 約4サイクル
- : 約6サイクル
- コストはとの計算を除く
- 高さ相関のある形式は無視できる追加コストを持つ
Smithの近似のクオリティ
相関のない
近似
差の画像:
赤 = 相関
緑 = 近似
相関のある
近似
差の画像:
相関のない近似との比較
相関のある
厳密
差の画像:
相関のある近似との比較
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 相関のない vs 高さ相関のある
- Smithのシャドウイング/マスキング
- 新しいSmith+GGXの近似
- 🟦Smithの偉大さと奇妙さ
- パストレーシング
Smithのマイクロサーフェスのハイトフィールド
- 導出は幅が0に近いほとんど独立したスラブの1Dハイトフィールドも使う
- 突如としてハイトフィールドの下にあることのみを禁止する
Smithのマスキングが奇妙な理由
- レイトレーシング導出は異なる段階で矛盾する仮定を持つ:
- 次のにおける高さはこの高さから独立している
- ハイトフィールドは任意の微分可能な関数である
Smithのマスキングが奇妙な理由
- 計算曰く、可視性は非対称である: 下向きのレイは上向きのレイより同じハイトフィールド経路を生き延びる可能性が低い!
- はすべてのを積分するので、はのときより多くのの値にヒットする可能性がある
Smithのマスキングが素晴らしい理由
- すべてのファセットの法線が同じ可視割合を持つ所でははエネルギー保存則を満たす
- その他のを使わないではいくつかの方向で間違った可視面積を得る
- 可視面積が大きければ、反射が強くなるので、エネルギーを作る
- 可視面積が小さければ、反射が弱くなるので、エネルギーを吸収する
ディフューズシミュレーションのサブトピックマップ
- シャドウイング/マスキング関数 (, )
- 相関のない vs 高さ相関のある
- Smithのシャドウイング/マスキング
- 新しいSmith+GGXの近似
- Smithの偉大さと奇妙さ
- 🟦パストレーシング
パストレースによるディフューズの解法
- Smithの奇妙な点は現実のハイトフィールドがその仮定と一致するのを妨げる
- 連続的であり、かつ、非連続的であることは不可能である
- 数学モデルをレイトレースしなければならない
最初のレイトレース結果
- GGXスペキュラかLambertianディフューズを選ぶためのFresnel付きの単純なレイトレーサー
- 結果のBRDFは対称ではなかった!
- 何か間違ったかな?両部分は対称なBRDFなのに!
非対称なBRDFの原因
- 本質的には、マージされたBRDFを持っていた:
- Fresnel補間が非対称!
- 物理的にもっともらしい方法で直すには?
なぜLambertianディフューズなのか?
- Lambertianディフューズは何をシミュレートする?
- BRDF: すべての視点で同じ
- 放射輝度: 法線でより多くのフォトン
- から見える総表面積に対してでバランスを取る
- なぜコサインでエネルギーが減少するのか?答えは驚くほどわかりにくいけど、かなり単純!
Lambertianディフューズの説明
- BRDFはサーフェスに与えられるが、ディフューズ光は単に表面を通り過ぎる
- Lambertは内部の光がすべての方向に同じ密度を持つことを仮定する
- コサインでの減少は光方向に相対的なサーフェス角度に起因する
Lambertianディフューズの説明
- 方向ごとに🟥面積あたりの同じエネルギー
- 表面の方を向いた方向がより大きな🟦面積に投影される
- でスケールされる単位光あたりの面積
- でスケールされる面積あたりの光
Lambertianディフューズの説明
- 光は侵入し、周囲でバウンスし、脱出する
- 脱出方向は多数のバウンス事象の後に無作為である
- アルベドは周波数依存の吸収事象に起因する
対称なBRDFのためのディフューズ修正
- 侵入には反射/透過のためにFresnelを使う
- 脱出は常に透過すると仮定する
- 脱出にもFresnelが必要!
対称なBRDFのためのディフューズ修正
- 反射:
- 透過:
- Fresnelの法則は対称なので、視点からサーフェスに侵入する割合は視点に向かってサーフェスを脱出する割合に等しい
対称なBRDFのためのディフューズ修正
- 内部的に反射する光はずっと透過する機会を得続けるので、正規化する必要がある!
-
- 因子は正規化因子に吸収される
- はBRDFを正規化するのに必要になる
- とは半球上の積分に由来する
対称なBRDFのためのディフューズ修正
- 厳密に簡単に解ける:
- マージされたディフューズ+スペキュラマイクロファセットBRDF:
最後!
- パストレーシングシミュレーションに必要なすべてが揃ったので、最終的にどうなったかというと…
シミュレーション
スペキュラ付き
アルベド:
{0.75, 0.5, 0.25}
シミュレーション
ディフューズのみ
アルベド:
{0.75, 0.5, 0.25}
近似
ディフューズのみ
アルベド:
{0.75, 0.5, 0.25}
GGXディフューズ近似
余談: 有用なシェーダ恒等式
-
余談: 有用なシェーダ恒等式
- を求めなくてもとは求められる!
| 計算 | サイクル | レジスタ |
|---|
| を得る | 13 | 4 |
| からを得る | 16 | 4 |
| からとを得る | 19 | 4 |
| 恒等式からを得る | 7* | 2 |
| 恒等式からとを得る | 8* | 2 |
* が計算済みでない場合、その分の+3サイクルが加わる
余談: 有用なシェーダ恒等式
-
- (による)
本日のトークのロードマップ
- 一般的なマイクロファセットベースBRDF
- GGX+Smithマイクロファセットモデルによるディフューズのシミュレーション
- 🟦他のディフューズBRDFとの比較
でも、まずは…
- DisneyのBRDFスライスをサクッと理解するのが良い
DisneyのBRDFスライス
- BRDFは2つの極ベクトルの4D関数である
- 以前は、光線と視線のベクトル:
- 以後は、半角と差分:
- 等方的なBRDFではに一切依存しない
- への依存はしばしば無視できる
DisneyのBRDFスライスの直観
- 各行は光線と視線の組である()
- 左から右へはスペキュラハイライトの中心から離れることでの減衰を示す()
照らされた球での間違った色の例
明るい線は球で使われる行を強調する
明るい線はを強調する
は反時計回りに増加する
球上でのの振る舞い
DisneyのBRDFスライス
- 様々な恒等式:
-
- BRDFは主にとの関数である!
BRDFを比較する準備はほぼ完了!
新しいモデル
↑
タイトルはどのディフューズモデルが示されるかを表す。
このintroは新しいモデルを用いる。
新しいモデル
←このパネルは前の例と同様の照らされた球を示す。
新しいモデル
←一致するBRDFスライスがここに示される
←(相関のない)
←
0から1へのを持つ同様の完全なBRDFだが、Paul DebevecのHDR環境プロブで照らされる
↗ uffizi
→ grace
↘ campus
Lambert
Disney
Oren-Nayar、
新しいモデル
新しいモデル(ハイブリッド)
SmoothはDisneyのを用いるので、のときはDisneyと同様になる。
新しいモデル(安価)
SmoothはLambertを使用
Lambert
Disney
新しいモデル
Lambert
Disney
新しいモデル
Lambert
Disney
新しいモデル
スペシャルサンクス
- Mark Cerny
- Chad Barb、Xin Liu、Steve Marton
- この研究に素晴らしいアイデア/フィードバックをくれたRespawnの同僚のエンジニア(いつも通りに)
選抜した参考文献
- [Heitz 2014Heitz, E. 2014. Understanding the masking-shadowing function in microfacet-based brdfs. Journal of Computer Graphics Techniques (JCGT) 3, 2, 48–107. http://jcgt.org/published/0003/02/03/.]
- [Walter et al. 2007Walter, B., Marschner, S. R., Li, H. and Torrance, K. E. 2007. Microfacet models for refraction through rough surfaces. Proceedings of the 18th eurographics conference on rendering techniques 195–206. 10.2312/EGWR/EGSR07/195-206. https://www.graphics.cornell.edu/~bjw/microfacetbsdf.pdf.]
- [Burley 2012Burley, B. 2012. Physically-Based Shading at Disney. Practical Physically Based Shading in Film and Game Production course. ACM SIGGRAPH. https://disneyanimation.com/publications/physically-based-shading-at-disney/.]
- [Karis 2013Karis, B. 2013. Real Shading in Unreal Engine 4. Physically Based Shading in Theory and Practice course. ACM SIGGRAPH. https://blog.selfshadow.com/publications/s2013-shading-course/.]
- [Shirley et al. 1997Shirley, P., Smits, B., Hu, H. and Lafortune, E. 1997. A practitioners' assessment of light reflection models. Proceedings the fifth pacific conference on computer graphics and applications 40–49. 10.1109/PCCGA.1997.626170.]
- [Ashikmin et al. 2000Ashikmin, M., Premože, S. and Shirley, P. 2000. A microfacet-based BRDF generator. Proceedings of the 27th annual conference on computer graphics and interactive techniques 65–74. 10.1145/344779.344814. https://dl.acm.org/doi/pdf/10.1145/344779.344814.]
- [Oren and Nayar 1994Oren, M. and Nayar, S. K. 1994. Generalization of Lambert's reflectance model. Proceedings of the 21st annual conference on computer graphics and interactive techniques 239–246. 10.1145/192161.192213. https://cave.cs.columbia.edu/Statics/publications/pdfs/Oren_SIGGRAPH94.pdf.]
付録
- 以下はレイトレーシング定式化からのSmithのシャドウイング/マスキングに対する導出のまとめであり、パストレーシングを実際に行うのにそれを使う方法である。これは私が先のプレゼンテーションに含まれる結果を得た方法である。
- これはかなり仰々しい数式である。なので、トークより付録にあるほうがふさわしい。聞き手が導出を読むのは難しいし、聴くのはもっと難しい!こういうのは自身のペースで進めることができるほうが良いし、必要に応じて振り返って見直しできるほうが良い。
- 最終警告: これらの付録スライドはそんなに推敲しなかった(例えば、図が完全に欠落していたり)。それでも、この情報と導出は由来を理解するのが好きな人やSmithのシャドウイング/マスキングの導出を理解したい人には有用だろう。
解法 --- パストレーシング
- 光の方向でマイクロサーフェスにフォトンを放つ
- これらのフォトンがどの視線方向に現れるかを確認する
- これはディフューズとスペキュラの相互作用をモデル化させる
- だが、はじめに、マイクロサーフェスをレイトレースできるようにしなければならない
- マイクロサーフェスは法線分布関数とシャドウイング/マスキング関数によって暗黙的に定義される
- から導出されるは基本的にレイトレーシングである
- なので、Smithのが動作する方法を理解する必要がある