超雑訳 Fast Product Importance Sampling of Environment Maps

こんにちわ、Pocolです。
今日は…
[Estevez 2018] Alejandro Conty Estevez, Pascal Lecocq, “Fast Product Importance Sampling of Environment Maps”, SIGGRAPH 2018 Talks.
を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,指摘して頂ける場合は正しい翻訳例とともに指摘して頂けるとありがたいです。


1 OVERVIEW

環境マップは、現実のシーンから取り込んだ環境光の状態を再現するために、何十年も前からプロダクションのパストレースで使用されています。しかし、放射輝度積分の確率的サンプリングは、BSDFと環境の両方が互いに整列していない強いピークを持つことがあるため、非常にチャレンジングです。環境とBSDFの間の多重重要度サンプリング(MIS)は、各推定子を再重み付けすることで分散を減らす一般的な方法ですが、それでも無駄なサンプルが発生する可能性があります。プロダクトインポータンスサンプリングは、BSDFと環境マップの積から構築された確率分布を用いてサンプルを抽出し、分散を減らす効果的な方法です。我々の知る限り、最も実用的なプロダクトサンプリング技術[Clarberg and Akenine-Möller 2008]は、数百のBSDFサンプルからその場で構築される疎な四分木によってBSDFを近似するため、プロダクションレンダリングにはまだ比較的高価です。フィルムレンダリングで使用されるマルチローブモデルの高い複雑性のために,このコストは法外なものになる可能性があります。
 我々は、安価なBSDFプロキシ表現を導入し、四分木をより単純な球の2レベル集計に置き換えることでこの問題に対処します。これにより、余分なメモリを使用することなく、プロダクトインポータンスサンプリングが可能になります。環境マップと安価なBSDFプロキシの積は、環境の重要度マップの上位レベルに相当する非常に小さな\(12 \times 12\)のテーブルで評価されます。この結果は、高解像度重要度マップの関連部分のみをサンプリングした累積分布関数(CDF)です。本番シーンにおいて、ほとんど性能上のペナルティを受けることなく、重要な分散が減少することを示します。

2 TWO-LEVEL IMPORTANCE TABLE

このアプローチは、方向性の球を表すテーブルを2階層にしたものです。極付近での歪みを避けるために、面積保存型の球面パラメータ化 [Clarberg 2008] (図2) を用いています。これにより、テーブルのセルがすべて球面上で同じ立体角を持つようになり、テーブルのセルがより有効に活用されるようになります。これは、重要度テーブルの上位、低解像度レベルでは特に重要です。

※図は,[Estevez 2018]より引用

 下位レベルは、マップの細かい部分を高解像度で捉えます。トップレベルのセルには、それぞれ独立した高解像度のテーブルが用意されています。これらのテーブルのそれぞれは球のサブセクションをカバーし、それらの領域に向かってのみ光線を生成するために使用することができます(同時に、環境マップのその部分のサンプリングが重要であることに変わりはありません)。上位レベルは球全体をカバーし、粗い解像度を使用します。まず粗いマップからサンプルを選び、次に選んだセルに対応する高解像度テーブルから別のサンプルを選ぶことで、方向の球面上のサンプルを描画します。
 この表現の主な利点は、上位レベルのCDFはシェーディングポイントごとにその場で再構築できるほど粗いのに対し、下位レベルはレンダー全体に対して事前に計算されていることです。これは,[Subr and Arvo 2007]のようにサーフェイス法線の関数としてサンプルを操縦する能力を与えますが,BSDFを使用することもできます。

※図は,[Estevez 2018]より引用

3 BSDF PROXY REPRESENTATION

BSDFの重要な特徴を捉えられるような方法で、\(12 \times 12\)の粗いCDFの各セルの値を素早く計算する必要があります。複雑なマテリアルの表現には複数のローブ評価が必要なため、BSDFの直接評価は非常に高価になる可能性があります。
 BSDFのプロキシは、このプロセスをスピードアップさせます。BSDF のローブのほとんどが、法線、反対側の法線、反射光線、屈折光線という 4 つの異なるベクトルを中心に回転しているという事実を利用します。これらの方向はすべてマクロサーフェス法線から暗黙の了解となっており、保存する必要はなく、その重みと平均ラフネスのみが保存されます。IOR (屈折した光線の位置を示す) と共に、複雑な BSDF を表現するために合計 7 個のfloatが必要です。
 反射・屈折方向には簡略化したGGX分布を適用し、実行速度を上げるためにハーフベクトル変換は無視します。ローブは\(w / (\alpha^2 ( \cos^2 \theta + ( \sin^2 \theta ) / \alpha^2 )^2)\)として評価され、ここで\(w\)はローブに蓄積された総重み、\(\alpha\)は反射・屈折方向のハーフ変換ヤコビアンの平方根でスケーリングしたラフネスの加重平均です。つまり、\(\alpha’ = \alpha_r \sqrt{4 | N \cdot \omega_o|}\)と\({\alpha’}_t = \alpha_t (| N \cdot T | \eta + | N \cdot \omega_o|) / \sqrt{| N \cdot T | \eta^2}\)です。拡散と半透明の成分については、単純な\(\pm \cos \theta\)の項で十分です。
 BSDFのプロキシはあくまで近似値なので、ロバスト性を高めるためにはやはりMISに頼らざるを得ません。BSDFの重要度サンプリングには常に完全なBSDF表現を使用し、例えばBSDFが高い異方性や非常に低いラフネスを示す場合のフォールバックを提供します。

4 PRODUCT IMPORTANCE SAMPLING

サーフェスシェーダの実行後、ライティングが始まる前に、返却されたBSDFは我々の簡易プロキシに重みが蓄積されます。図 4 は、4 つのローブ方向のそれぞれを使用して、粗い テーブルの各セルに向かう角度を取得する方法を示してい ます。

※図は,[Estevez 2018]より引用

 \(12 \times 12\) の CDF テーブルは、環境マップの重要度と BSDF プロキシの積を各セルについて推定することで構築されています。評価にはセルの中心を考慮するのではなく、セルを囲むセーフティコーンの中でローブ軸に最も近い方向を選択します。これにより、BSDFプロキシ評価を最大化し、ローブフォールオフに近い領域でサンプルを生成することを強制しています。また、常に正しい半球の方向を提供することで、部分可視化計算を簡略化することができます。このステップは、SIMD intrinsicsを使用して簡単にベクトル化することができます。

5 RESULTS

図5に、環境マップの重要度とBSDFのナイーブMISサンプリングとの比較を示す。これは、シーンとシェーディングの複雑さが製品ケースに近づくにつれて消えていき、分散の減少によって十分に正当化されるものです。

※図は,[Estevez 2018]より引用

REFERENCES

  • Petrik Clarberg. 2008. Fast Equal-Area Mapping of the (Hemi)Sphere using SIMD.
    Journal of Graphics Tools 13, 3 (2008), 53–68.
  • Petrik Clarberg and Tomas Akenine-Möller. 2008. Practical Product Importance Sampling
    for Direct Illumination. Computer Graphics Forum (Proceedings of Eurographics)
    27, 2 (2008).
  • Kartic Subr and James Arvo. 2007. Steerable Importance Sampling. In Proceedings of the
    2007 IEEE Symposium on Interactive Ray Tracing (RT ’07). IEEE Computer Society,
    Washington, DC, USA, 133–140. DOI:http://dx.doi.org/10.1109/RT.2007.4342601