超雑訳 Screen Space Indirect Lighting with Visibility Bitmask

こんこよー。
Pocolです。
今日は,
[Therrien 2023] Olivier Therrien, Yannick Levesque, Guillaume Gilet, “Screen Space Indirect Lighting with Visibility Bitmask”,
を読んでみようと思います。
いつもながら,誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳と共に指摘して頂けると有難いです。


※図は,[Therrien 2023]より引用

Abstract

水平ベースの間接照明は、与えられた方向に沿ったサンプル間の水平角の差を解析的に積分することで、画面空間における拡散光のバウンスを効率的に推定することができます。他の水平ベースの手法と同様に、この手法では薄い表面の裏側を通過する光を適切にシミュレートすることができません。我々は、2つの水平角の代わりに、半球スライスの周りに一様に分布する\(N\)個のセクターのバイナリ状態(オクルード/アンオクルード)を表すビットフィールドを用いた、可視性ビットマスクの概念を提案します。これにより、水平線に基づく手法の効率を維持したまま、一定の厚さの表面の裏側を光が通過することができるようになります。また、1つ以上の可視コーンをサンプリングすることで、ベント法線よりも正確なアンビエントライティングを行うことができます。この手法は、ノイズを最小限に抑え、パフォーマンスのオーバーヘッドを低く抑えながら、アンビエントオクルージョン、間接拡散光、環境光のビジュアルクオリティを以前のスクリーンスペース手法と比較して向上させます。

1. Introduction

間接的な拡散照明は、リアルタイムで計算するのは困難です。スクリーン空間近似は、問題の次元を減らし、シーンの幾何学的な複雑さに関係なく実行コストを一定にすることができるため、魅力的です。最近のスクリーン空間グローバルイルミネーション(SSGI)実装では、スクリーン空間反射(SSR)[SKS11]と同様に、スクリーンピクセル上でレイマーチングを行って間接光を収集することがよくあります。このアプローチは、サーフェイスの半球全体にわたる放射照度の数値積分を意味するため、多くのノイズを生成する傾向があります。Horizon-Based Indirect Illumination (HBIL) [May18] は、Horizon-Based Ambient Occlusion (HBAO) [BSD08, Bav11] と Ground Truth Ambient Occlusion (GTAO) [JWPJ16] に基づき、サンプル間の水平角差の解析的積分を行いながらビューベクトル\(v\) (図2) を中心に一連の方向について数値積分を行うことで効率を向上させました。

※図は,[Therrien 2023]より引用

 これらの手法の基本的な原理は、離散的な深度バッファのような容易に利用できるスクリーン空間情報に依存して、各シェーディングサンプル周辺のシーン局所ジオメトリを推定することです。しかし、このような情報は本質的に離散的で不完全であるため、再構築する必要があります。これらの技術はすべて、局所的な形状による間接放射照度の変調であるアンビエントオクルージョンを、1層の深度バッファからスクリーン空間で評価し、ハイトフィールドとして扱うことでサーフェイスの厚みが無限であると仮定しています(図3参照)。これは場合によっては有効な仮定ですが、実際のジオメトリがどのようなものか分からないため、薄いサーフェイスの周囲にハローやオーバーダーケニングを発生させてしまいます(図4参照)。これらのアーティファクトを軽減するためにフォールオフヒューリスティックが使用されますが、大きなサンプリング半径を使用すると失敗します。

※図は,[Therrien 2023]より引用

※図は,[Therrien 2023]より引用

 我々の提案する方法は、深度バッファが厳密にハイトフィールドであるという仮定を否定し、サーフェイスの裏側を通過する光の挙動をモデル化します。さらに、性能を維持するために、複数の仰角を適切にサンプリングするために、ゼロから新しいレイを明示的にトレースすることは避けたいと考えています。これは、半球スライスを\(N_b\)個のセクタに離散化したもので、1回の水平線探索と同じ性能コストで\(N_b\)本の光線のトレースを近似的に行うことができるものです。

 単層深度バッファの一般的な制限として、オクルージョンサーフェスが表現されないため、オクルージョンやライティングが欠落することがあります。Deep G-Buffer [MMNL16]やMulti-layer SSRT [HBSS17]などのアプローチは、ピクセルごとに複数層のサンプルを保存することでこの問題を緩和し、背景サーフェイスについてより多くの情報を提供します。複数のレイヤーをレンダリングすることは非常に高価であるため、我々は1つのレイヤーに限定することを選択しました。このため、背景サーフェイスの不正確な推定によるアーティファクトは残りますが、各深度サンプルで一定の厚み\(t\)を可視ビットマスクで使用することで、水平ベースの技術と比較して、薄いサーフェイス周辺の品質が大幅に改善されます。本研究では、視認性ビットマスクを用いることで、SSRのようなトレースと比較して画像のノイズを大幅に削減できること、また、サーフェイスの裏側を通過する光を水平ベースの技術よりもはるかに正確に扱えることを示します。また、視認性ビットマスクを用いて環境光をサンプリングすることで、サーフェイス法線やベント法線に沿ってサンプリングする従来の方法よりも、より正確な環境推定ができることも示しています。
 本論文では、従来のSSGI手法に視認性ビットマスクを導入することで、水平サンプリングの効率とノイズ低減を維持しつつ、一定の厚みを持つサーフェイルの裏側を通過する光を扱うことに主眼を置いています。我々は、アンビエントオクルージョン、指向性アンビエントオクルージョン、間接拡散照明などのいくつかのSSGIアプリケーションを通じて、本手法の機能を実証します。

2. Previous Work

スクリーン空間情報からアンビエントオクルージョンや間接拡散照明を推定することは、よく知られたアイデアです。これは主に,深度バッファのランダムな点を各画素の周りの円形にサンプリングすることでアンビエントオクルージョンを近似する,画期的なScreen Space Ambient Occlusion法 [Mit07] に由来し,長年にわたって徹底的に拡張されてきました [Mit07, MOBH11, MML12]. これらの方法の重要なポイントは,高いレンダリング性能を維持しながら,さまざまなバッファ(幾何学的法線,深度…)に含まれる不完全な情報を使用して,サンプルの周囲の局所的なジオメトリを推定することです。

 局所的なジオメトリの再構成は、レンダリングパスの間にシーンからより多くの情報を収集することで改善することができます。Reflective Shadow Map(RSM)[DS05]は、基本的にライトの視点から生成されたGバッファを使用して、点光源から来る間接的な拡散照明を近似しています。この技法はコストがかかるため、実際には、同時に使用するライトの数が少ない場合に限られ、間接光のオクルージョンも考慮されていません。Deep Screen Space [NRS14] は、シーンのジオメトリを非構造化サーフェルに適応的にテッセレートし、AOやGIなどのさまざまなエフェクトのレンダリングに使用できます。これは、隠されたサーフェスや斜めのジオメトリのサンプリング不足といったスクリーンスペースの主な制限を回避しますが、計算コストが高く、サーフェス間の間接光のオクルージョンを処理することはできません。
最近では、SDAO(Stochastic-Depth Ambient Occlusion)[VSE21]が確率的深度マップの概念を導入し、ピクセルごとに複数のシーンレイヤーをランダムにキャプチャしています。この手法は隠蔽面の検出に有効ですが、HBAO [BSD08]と併用するため、薄いオブジェクトの周りが過剰に暗くなるのを防ぐことはできません。しかし,これらの方法は,局所的なジオメトリの再構成を改善する一方で,サンプル取得時(早期z最適化を見送る)と再構成時(複数のレイヤーを評価する必要がある)の両方で,単一レイヤーのアプローチよりも計算量が多くなります。

 単一層からの再構成の品質を向上させることは、広く研究されている難題です。Alchemy ambient obscurance [MOHB11]はSSAOと同様のアプローチに基づき、ロバスト性とアーティスティックコントロールを向上させ、フォローアップとしてScalable Ambient Obscurance (SAO) [MML12] も性能を向上させました。Horizon-Based技法 [BSD08, Bav11] は、ある方向に沿って標高をサンプリングすることで、ノイズの少ない高品質な結果を生成しますが、薄いサーフェイスでは過暗になる場合があります。例えば、LSAO(Line Sweep Ambient Obscurance)[Tim13]は、方位線に沿ったサンプル情報をGPU共有メモリにプリキャッシュし、同じサンプルを再利用して複数のピクセルをシェーディングするもので、性能向上に焦点を当てたいくつかの手法があります。さらに最近では、Ground Truth Ambient Occlusion [JWPJ16]が、パストレースされた参照と一致させ、マルチバウンスオクルージョン近似をサポートすることでHBAOの精度を向上させました。

 これらの技術は、局所的なジオメトリ再構成の利点を生かし、より高度な間接照明の特徴を提案するために導き出されました。Silvennoinen ら [ST16] は、LSAO をベースとした SSGI 実装により、リアルタイムでの間接照明のサポートを追加しました。この方法は、地平線の高さごとに1つのカラーサンプルしか取得されないため近似的であり、途中で発生した可能性のある部分的なオクルージョンを考慮に入れていません。Screen Space Ray Tracing Global Illumination (SSRTGI) [SVF17] のような他のSSGIバリエーションは、レイヒット位置でGIをサンプリングするSSRに似た技術を使用しています。しかし、この方法は、過剰にぼかすことなく除去することが困難な多くのノイズを導入する。HBILとして知られる他の技術(HBAOとGTAOに基づく)は、前のサンプルに対する相対的な角度差によってサンプルの寄与を重み付けすることによって、複数のサンプルから正確にGIを計算する方法を示しました。この方法では、視認円錐の範囲内で正確な結果が得られますが、深度バッファが高さフィールドであるという仮定に基づいており、サーフェイスの裏側を通過するような光の跳ね返りを考慮することはできません。

 最後に、ビットマスクソフトシャドウ(BMSS)[SS07]は、各ビットが光源上のサンプルポイントの可視性を追跡するビットフィールドを使用して、エリア光源の可視性を決定します。私たちの方法は、少し異なる問題を解決しますが、それでも深度マップからの表面形状推定に関する多くの類似点を共有し、ビットマスクを使用して同じ方法で重複するサンプルの可視性に対処しています。

3. Proposed Algorithm

このセクションでは、深度バッファを、それぞれ任意の厚さに関連付けられた非連結のサンプル集合として扱うことで、特に薄いサーフェイスの場合、局所形状の再構成の質を向上させる本手法の提案について紹介します。

3.1. Ambient Occlusion

アンビエントオクルージョン(AO)[ZIK98]は、グローバルイルミネーションの非物理的な照明近似で、シーンが均一な環境照明で照らされ、すべてのオブジェクトがオクルーダーであると仮定しています。スクリーン空間で効率的に計算でき、シーンにリアルな印象を与えることができるため、リアルタイムアプリケーションでは非常によく使われる効果です。これは、各サンプル周辺の半球における視認性関数\(V\)の推定値として表現することができます。

\begin{eqnarray}
AO = 1 – \frac{1}{\pi} \int_{\Omega} V (p, \omega) (n_p \cdot \omega) d \omega \tag{1}
\end{eqnarray}

半球のパラメータ化を用いることで、以下のように分解することができます。

\begin{eqnarray}
AO = 1 – \frac{1}{\pi} \int_{0}^{\pi} AO_2 (\phi) d\phi \tag{2}
\end{eqnarray}

そして,

\begin{eqnarray}
AO_2(\phi) = \int_0^{\pi} V(p, \theta, \phi) \cos \theta \sin \theta d\theta \tag{3}
\end{eqnarray}

 実際には、式2の積分は、数スライスにわたるモンテカルロ積分を用いて計算されます。GTAOやHBAOのような方法では、深度サンプリングによって2つの水平線\(\theta_1\)と\(\theta_2\)を推定することで、式3の解析的な解を提案します。

 提案アルゴリズムでは、GTAOの2つの水平角\(\theta_1\)と\(\theta_2\)を、半球スライスの周りに一様に分布する\(N_b\)個の視認セクタのバイナリ状態(オクルード/アンオクルード)を表す、サイズ\(N_b\)のビットフィールドに置き換えます。サンプルはビューベクトル\(v\)の両側で採取されますが、ビットフィールドは投影法線\(n\)を中心としたものとなっています。

\begin{eqnarray}
AO_2 (\phi_i) \approx \frac{1}{N_b} \sum_{j=1}^{N_b} V(\phi_i, \theta_j) \tag{4}
\end{eqnarray} 

半球スライスに沿って採取された各サンプルは、潜在的なオクルーダーを決定し、与えられたセクターの視認性関数\(V\)に影響を与えます。セクターのオクルードされた状態を決定するために、各サンプルを厚さ\(t\)を持つ局所的な薄いジオメトリとして考え、角度\(\theta_f\)と\(\theta_b\)の間でオクルードしているジオメトリとして機能させることにします。\(\theta_f\)はGTAOで使用される\(\theta\)と同等(サンプルで直接)、\(\theta_b\)はサンプルの厚さ\(t\)に依存します(図3)。提案するアルゴリズムでは、セクターがサンプルに半分覆われていることを必要とする周囲尺度を使用しました。アルゴリズム1の15~17行目の擬似コードは、サンプルの位置と厚みから(\(\theta_f\)、\(\theta_b\))を推論する方法を示しています。すべての隠蔽されたセクタが一度に設定されるため、このアルゴリズムは、任意のセクタ数に対して\(O(1)\)で実行されます。サンプルが半球の周りに適切に分布するように、コサイン空間から角度空間に角度を変換する必要があることに注意してください。

※図は,[Therrien 2023]より引用

 これにより、精度を犠牲にしながらも、高速な方向性オクルージョンと部分的な積分が可能になります。深度バッファでは、各画素の周囲の方位角を一定数取り、これらの方向に沿ってサンプリングして、半球スライスに積分できる(\(\theta_f\)、\(\theta_b\))の組を見つけます(図5参照)。GTAOと同様に、オクルージョン積分を空間的・時間的に分散させ、有効なサンプル数を増やします。

※図は,[Therrien 2023]より引用

 \(t\)の選択は、視覚的な忠実度に大きな影響を与えます。理想的には、オブジェクトのピクセルごとのサーフェイス厚みを\(t\)の値として使用したいところですが、残念ながら、これはリアルタイムで計算するにはコストがかかり、1層の深さバッファを使用して正確に知ることは不可能です。薄いオブジェクトの周りのオーバーオクルージョンのアーティファクトは、厚いオブジェクトの後ろのライトリークよりもずっと目立つので、私たちは小さな定数値を使用することを提案します。これは、大きなオブジェクトは通常、その背後にあるものを完全に覆い隠すため、ライトリークがまだもっともらしく見えるのに対し、薄いオブジェクトの周囲のオーバーオクルージョンは直接見えるからです(図6と7を参照)。固定されたワールドスペースの厚みを使用すると、カメラから遠いオブジェクトのオクルージョンを過剰に減衰させる可能性があるため、この効果に対抗するために、距離に応じて\(t\)を直線的に増加させるオプションを用意しています。これにより、カメラが移動したときにオクルージョンがわずかに変化しますが、ほとんど気にならない程度で、効果的に問題を解決することができます。各サンプルの正確な厚みを推定する効率的なヒューリスティックを見つけると、この方法の精度がさらに向上しますが、難しい問題であるため、今後の研究に委ねます。

※図は,[Therrien 2023]より引用

※図は,[Therrien 2023]より引用

 以下、アンビエントオクルージョン、指向性オクルージョンアンビエントライティング、間接拡散バウンスの実装において、上記のコアアルゴリズムの使用方法を説明します。

3.2. Directionally Occluded Ambient Lighting

リアルタイムアプリケーションにおけるアンビエントライティングは、通常、サーフェス法線を使用してサンプリングしますが、ライティングの方向オクルージョンを考慮していないため、結果が悪くなる傾向があります。スクリーン空間ベント法線 [KRES11]は、最大の非オクルージョン方向に向かってサンプリングすることでこの問題に対処していますが、ピクセルごとに1つのアンビエント方向に制限され、厚みを適切に扱うことができません。Visibilityビットマスクは、サーフェスの背後を通過する光を許容しながら、方向オクルージョンによって与えられた方向のアンビエント照明に重み付けすることによって、これを改善することができます。この目的のために、半球をアンビエントサンプル数と同じ数のサブ領域に分割し、各サブ領域の中心にサンプリング方向ベクトルを生成します。次に、アンビエントライティングをこのベクトルでサンプリングし、全セクター数に対する非オクルージョンセクターの量に照明強度を掛け合わせます(図8参照)。これにより、オクルージョンの方向性の変化に応じて、周囲の光の色が滑らかに変化するようにしました。

※図は,[Therrien 2023]より引用

3.3. Indirect Diffuse

間接拡散照明とは、近くのサーフェイスで光が跳ね返ることです。スクリーン空間であっても、正確に計算するのは慣例的にコストがかかります。HBILはそれを効率的に行うことができますが、サーフェスの背後を通過する光を考慮することができません。図9は、視認性ビットマスクを使用して、より優れた厚み処理でこの効果を計算した方法を示しています。サンプルはスライス方向に沿って取られ、照明の寄与を推定するために、いくつの非オクルードセクターがカバーされているかを(\(O(1)\)で)検出しました。次に、これらのセクタをオクルード状態に設定し(これも\(O(1)\)で)、後続のサンプルからの光の部分的または全体的なオクルードを処理します。可視セクタが多ければ多いほど、照明とオクルージョンの推定がより正確になります。32セクタが良い品質を与え、ビットフィールドが1つの符号なし整数にうまく収まることが観察されました。

※図は,[Therrien 2023]より引用

 アルゴリズム1の23行目の擬似コードは、現在のサンプルによるオクルードゾーンの数を用いて、サンプルの照明寄与がどのように実装されるかを示しています。1つ以上のセクターがカバーされている場合、サンプルは照明に寄与し、ライトバッファはサンプルの位置でサンプリングされます。そして,\(n \cdot l\)と\(n_l \cdot l\)が計算され,光強度の重み付けに使用されます。さらに,全セクタ数に対するオクルードされたセクタ数で重み付けされます。

4. Results and evaluation

このモードでは、間接拡散を使用するよりも、視認性ビットマスクの特性を識別する方がはるかに簡単だからです。図10のレンダリングは、UnityのGTAO実装を拡張したもので、2つの水平角\(\theta_1\)と\(\theta_2\)が単一の可視ビットマスクで置き換えられています。

※図は,[Therrien 2023]より引用

 既存の水平線ベースの手法の上に我々の手法を実装することがいかに簡単であるか、また、このたった1つの修正によって、レイトレースされたリファレンスと比較して視覚的品質を劇的に向上させることができるかを強調しています。Lumberyard Bistroシーンが選ばれたのは、水平線ベースのテクニックでは通常問題となる、薄くて浅いサーフェスが多く含まれているためですが、視認性ビットマスクによって改善されます。すべてのベンチマークは、複数フレームにわたってジッタリングされたピクセルあたり1半球スライスを使用します。

 半径パラメータ(図10)は、ワールド単位でスクリーンに合わせた半球の半径です。より広い半球は、スクリーンのより広い領域をカバーし、より遠くまでオクルージョンを投げかけます。単一コーン近似は、薄いオブジェクトで囲まれた領域でオクルージョンが多すぎる傾向があるため、半径が広いとGTAOでは問題があります。それほど薄くないオブジェクトの周りでも、半径が広いと、細かいディテールを捉えられないぼやけたオクルージョンの塊になりがちです。対照的に、我々の方法(全く同じサンプルを使用)は、サーフェイスの背後に光を通過させることができ、過剰なオクルージョンを回避し、多くの小さなディテールをキャプチャします。

 図11は、ほとんどのオブジェクトがフェンスの後ろにある、GTAOにとってさらに難しいケースを示している。光は通り過ぎる代わりに鉄格子の陰に閉じ込められ、多くのオーバーオクルージョンを引き起こします。我々の方法は、この状況をはるかにうまく処理することができます。広い半径を使用すると、GTAOはオブジェクトの周りにハローを発生させる傾向があります(図4)。私たちの方法ではこの問題はなく、より幾何学的で正常なディテールを捉えることができます。

※図は,[Therrien 2023]より引用

 サンプル数(図10)は、水平線一辺に沿った深度バッファのフェッチ数を示します。したがって、1つのスライスに対して、実際に取得されるサンプル数はその2倍になります。半径が広くなると画面上のサンプルがまばらになるため、同じサンプリング密度を維持するためには、半径が広いほどサンプル数を増やすのが一般的です。サンプリング密度が低いと、潜在的なオクルーダーを見逃す可能性が高くなります(特に画面上で薄い場合)。サンプル数の増加はパフォーマンスに大きな影響を与えるため、トレードオフの関係にあります。

 性能は主に、採取したサンプルの数と効果の半径に依存します。半径が広いとキャッシュミスの発生確率が高くなり(サンプルがキャッシュに存在しない)、結果的に性能が低下する可能性があります。この手法の実行時間は、サンプル数に対してリニアにスケールする傾向があります。表1は、水平線ベースのGTAO実装と、視認性ビットマスクを使用した我々の手法の性能を比較したものです。どちらの手法もサンプリングパスとノイズ除去パスで構成されています。サンプリングパスの結果のみが表に含まれています。ノイズ除去パスのコストは1080pで0.3msと一定です。私たちの方法がパフォーマンスに与える影響は0.01~0.02ミリ秒程度で、1サンプルあたり約15GPU命令の固定ALUオーバーヘッドであることがわかります。半径を大きくすると、実行帯域幅が制限されるため、このオーバーヘッドがマスクされます。

※表は,[Therrien 2023]より引用

 画質に影響を与えるもう一つのパラメータは、可視セクタの数である。セクタ数が少なすぎると、特に薄いオブジェクトの周りにバンディングのアーティファクトが現れることがあります。提案された実装では、アーチファクトがほとんど見えなくなる閾値を超えたため、32の可視セクタを使用しました。さらに、1つの符号なし整数にうまく収まるため、GPUで良好なパフォーマンスが得られます。対照的に、128ビットのバージョンは4つの符号なし整数を必要とし、ベクトル命令を使用するため、コンパイラができる命令パッキング量が制限され、性能に悪影響を与えます。32セクタに比べて128セクタでは、約5~10%の性能オーバーヘッドが観測されました。

4.2. Directionally Occluded Ambient Lighting

このサブセクションでは、異なるアンビエントサンプリング戦略を比較し、それらがどのようにライティングとオクルージョンの結果に劇的な影響を与えるかを示します。図12は、左側に平均的な法線、右側に各戦略の結果としてのアンビエントライティングを示しています。ほとんどの3Dアプリケーションでは、アンビエントライティングはサーフェス法線の方向にサンプリングされます。このアプローチは、いくつかのライトがある方向でオクルードされる可能性があるという事実を考慮しておらず、シーンのジオメトリによってアンビエントライティングが急激に変化する傾向があります。より良いアプローチは、近傍のオクルージョンに応じて変調されるピクセルごとのスクリーン空間のベント法線を使用することです。これは入射光の方向を指し、より滑らかな結果を与えます。しかし、複数の光の方向を扱うことはできず、薄いオブジェクトに囲まれたサーフェイスのアンビエントライティングを誤って表現してしまいます。

※図は,[Therrien 2023]より引用

 我々のアプローチは、視認性ビットマスクを使用して、オクルードされていない方向の各半球スライスに沿って複数のサンプルを取得します。そうすることで、周囲の光がサーフェスの背後を通過し、多方向からのスムーズなライティングが可能になります。また、各アンビエントサンプルは、その特定の方向のオクルージョンに応じて重み付けされていることも見逃せません。もしアンビエントカラーが単純に平均化され、アンビエントオクルージョンが掛け合わされたとしたら、照明のカラーバリエーションの多くが失われていたでしょう。

4.3. Indirect Diffuse

このサブセクションでは、アルゴリズムの間接的な拡散部分の視覚的な品質と性能を見ていきます。深度バッファのサンプリングに加え,HDR ライトバッファとスクリーンスペース法線バッファもサンプリングします。ライトバッファには(シャドウを含む)直接照明のみが含まれます。図13は、シングルバウンスとマルチバウンスの間接拡散照明のパストレーシングのリファレンスと私たちの結果を比較したものです。左の壁の太陽から来る直接照明は、レンガの壁でバウンスし、レンガの壁を照らし、間接的な影を落としています。マルチバウンスでは、光は左の壁で跳ね返り、壁の影の部分を照らすことさえできます。マルチプルバウンスは、次のフレームの入力として使用されるライトバッファに間接照明を注入することによって実装されます。マルチバウンスを使用する場合、光強度を適切にバランスさせる必要があります。そうしないと、フィードバックループが発生し、時間の経過とともに照明が蓄積される可能性があります。このアルゴリズムは、シーン全体のジオメトリとは対照的に、スクリーンピクセルに対してのみ動作するため、結果はパストレースされた参照と完全に一致することはできません。スクリーン空間法と共に、我々の手法の1つの大きな欠点は、直接光がスクリーンから離れると間接照明が消えてしまうことです。

※図は,[Therrien 2023]より引用

 採取したサンプルの数は品質に大きな影響を与える。サンプリング密度が低すぎると、バンディング・アーティファクトが発生する可能性があります。この問題を軽減するために、図14に示すように、サンプリング方向に沿ってサンプルをジッターさせます。

※図は,[Therrien 2023]より引用

 図16は、SSRのようなトレースと、視認性ビットマスクに基づく我々の方法でシーンをサンプリングしたときに発生するノイズの量を比較したものです。どちらの手法も最大サンプル数は同じですが、視認性ビットマスクの手法の方がノイズが少ないです。SSRのレイは(ヒットが発見されたときに)最大1回の累積操作を行っている。対照的に、可視性ビットマスクアプローチは、現在のピクセルから可視である各サンプルを累積します。

※図は,[Therrien 2023]より引用

 このアルゴリズムは、サンプリングするたびにHDRライトバッファとスクリーンスペースのノーマルバッファをサンプリングする必要があるため、帯域幅を消費します。これらのサンプルの位置は相関していないため、キャッシングが損なわれます。表2は、サンプリングパラメータを変えて、アルゴリズムの間接拡散部分の性能を比較したものです。対応するレンダリングを図 15 に示します。フル解像度とは、最終的なレンダリング解像度のすべての ピクセルに対してシェーダが実行されることを意味し、ハーフ解像度とは、半分のサイズ(4 分の 1 のピクセル数)の画面でシェーダが実行されることを意味します。画像は、エイリアシングを避けるために、古典的なバイラテラル・アップサンプラーでアップスケールされます。ハーフ解像度でのレンダリングははるかに効率的(約4倍)ですが、画像にちらつきが生じたり、結果がぼやけたりする可能性があります。

※図は,[Therrien 2023]より引用

※表は,[Therrien 2023]より引用

5. Conclusion and future work

HBAOに依存するこれまでのスクリーン空間GI法は、深度バッファが厳密には高さフィールドであるという仮定のため、厚みを扱うことができません。SSRトレーシングに基づく他の技法は、サーフェスの後ろや上を通過することになる多くのレイを浪費し、何にも当たらずにスクリーンから出るため、多くのノイズが発生します。対照的に、私たちの手法は、水平ベースの手法のサンプリング効率を組み合わせると同時に、途中で厚みを適切に処理する能力を保持しています。提案するアルゴリズムは理解しやすく、最新のGPUで実装することができ、軽度のパフォーマンスオーバーヘッドだけで、水平ベースの手法に統合することができます。さらに、この手法は、環境光を統合する際にオクルージョンの指向性を考慮することで、アンビエントライトのサンプリングを改善するためにも使用できます。

 アルゴリズムのレイトレーシング部分が厚みを適切に処理していても、深度バッファの単一レイヤーを操作しているため、実際のオブジェクトの厚みは不明です。私たちは、オプションで距離に応じて直線的に増加する一定の厚み値に頼らざるを得ません。ピクセルごとにもっともらしい厚みを与える厚みヒューリスティックは、非常に薄いオブジェクトの周りのオクルージョンリークや、非常に厚いオブジェクトの後ろのライトリークを改善するのに役立ち、将来の研究で探求するのは興味深いでしょう。性能レベルでは、SSGIはGPUの帯域幅を非常に要求し、キャッシュをうまく利用しないため、高価なアルゴリズムになる可能性があります。LSAOのようなキャッシング手法を使用すれば、これを改善できる可能性があります。最後に、一般的な環境光源は、静的(一定色、ライトプローブ)であるか、実行時に更新するのにコストがかかります。将来的には、低周波の環境放射照度を動的に近似する方法を研究するかもしれません。

6. Acknowledgements and data statements

本稿の再編集を指導してくれたDeepti Joshi(CDRIN)とPeter Shirley(NVIDIA)に感謝します。また、今回の研究を積極的に支援してくれた他の同僚、Antoine Fortin(CDRIN)、Oliver Leclerc(CDRIN)、Steven Pigeon(UQAR)、Vahe Vardanyan(CDRIN)にも感謝したい。ほとんどのモデルはアマゾンのランバヤードのビストロのシーンからです。本研究の一部は、ケベック州(カナダ)の助成金 “Programme d’aide à la recherche
et au transfert (PART)”によって行われています。今回の研究では、データセットの生成や分析が行われなかったため、本論文ではデータ共有は適用されません。

References