2011年6月8日水曜日

SSDO Screen Space Directional Occlusion スクリーンスペース近似大域照明

http://www.mpi-inf.mpg.de/~ritschel/SSDO/

概要

リアルタイムで実現できる物理的に妥当な照明は、多くの場合近似を使って実現されています。
ひとつのポピュラーな例としてアンビエントオクルージョン(AO)があり、非常にシンプルでかつ効果的な実装は多くの製品で採用されています。
最近はスクリーンスペースでの近いジオメトリを使用したAOを近似する方法が採られています。

今回この論文で注目すべき点は、この手法が、スクリーンスペースで計算される遮蔽情報から、
例えば方向を考慮した影や間接的な色のにじみなど、より多くの影響を与える遮蔽情報を取得する為に使用することが出来ることです。

今回提案された手法は、スクリーンスペースで処理し従来のSSAOに比べてわずかなオーバーヘッドで直接光、単反射光を近似し、マクロ構造の過程をシミュレートするための別の手法と結合することができます。
そして、最悪のケースでも今回の手法を用いなかったSSAOと見た目的には同等になります。

この手法はスクリーンスペースでの処理になるため、ジオメトリ形状の複雑さに依存しません。
妥当な方向遮蔽と間接照明の効果はリアルタイムに、完全にランタイムで大規模なシーンを表現することが出来ます。

1はじめに

リアルタイムな大域照明は未だ、大規模で動的なシーンに於いて未解決の問題を持っています。
現在のところ十分なフレームレートを達成しているのは、近似を使う方法のみです。
そのような近似には、高速性と、実装の簡易さから映画やゲームなどに使われているAOがあります。

ただしAOは視界と照明を切り離しており、実際の照明の荒い近似のみをおこなっています。
AOは通常、空洞物の暗域を表現できますが、入射光の方向は無視されます。

今回Screen Space Directional Occlusion(SSDO)と名付けた、よりリアルな照明へ向けてSSAOを拡張しました。

本研究ではSSDOが
・どのように入射光の方向の集計を行うか
・どのように環境光の単反射を含むか
・どのように標準的なオブジェクトベースの大域照明の代わりをするか
・どのように少ない計算コストで済ませるか

の説明をしています。
構成は以下のとおりである。
まず、第2節で既存の動作を確認します。
第3節では、中央構造照明のAOの一般化を説明します。
第4節では、画質を向上させるための拡張機能について説明します。
第5節では完全なグローバルイルミネーションのシミュレーションと、本手法との統合が記載されています。
第6節で結果の提示。
第8章で結論づける前に第7章にて議論をしています。

2準備

物理的に妥当な照明は、全体の可視領域と照明の方向について計算をする時、 AOは可視領域と照明の2つの個別の積を積算します。
静的なシーンでは、AOは可視性を事前計算し、(頂点やテクスチャを使用して)表面上のスカラー場としてそれを保存することができます。

単純な乗算を使用した静的なAOと動的な照明の組み合わせは、高フレームレートで見た目に妥当な結果をもたらします。
AOフィールドの導入によってオブジェクトの並行移動、回転とアニメションキャラクターに特化した解決方法も存在します。

変形する面と間接光の反射は、Bunnell [2005]のディスクセットを使用したジオメトリの近似によって解決されます。
より堅牢なものはHoberock and Jia [2007]によって提示され、さらにChristensen [2008]によってポイントベースのアンビエントオクルージョンと相互反射に拡張されました。
Mendez et al. [2006]ジオメトリ周辺の平均アルベドを使用した単純な色にじみ効果を計算します。
この手法は表面の離散化もしくはレイトレーシングへのどちらかを使用しています。
これはゲームのような現在のインタラクティブなアプリケーションで使用される動的なジオメトリの量に比例して増大してしまいます。
したがって、最近の方法は代わりにスクリーンスペースの表面を使って近似された遮蔽を計算します。[Shanmugam and Arikan 2007; Mittring 2007; Bavoil et al. 2008; Filion and McNaughton 2008].

SSAOの好まれる点はその単純な実装とハイパフォーマンスにあります。
これは、出力が感覚的で、ポストプロセスとして処理され、追加データ(例えば、表面の定義、BVH、kD-trees、シャドウマップのような空間の表現に使われる構造)が必要なく、さまざまなタイプのジオメトリで動作します(例:ディスプレースメントや法線マップ、頂点またはジオメトリシェーダ、等値面の光線と平面の交点を求めるレイキャスティング)。
イメージ空間の手法はまた効率的に地下散乱をシミュレートすることができます。[Mertens et al. 2005].
同時にSSAOは様々な制限に対して近似を求められます。
これも今回の研究であり、後のセクションで詳しく説明します。

AOは一般的な光伝播に対しては粗い近似値になります。
例えば、PRT [Lehtinen and Kautz 2003]の指向性遮蔽(DO)と相互反射をサポートし、
事前計算では、しばしば空間や方向の解像度増大の制限のために圧縮形式のデータを大量に格納する必要が出てきてしまいます。
我々のアプローチは、非常に小さいサーフェイスの詳細、全方位の解像度のどちらも解決することができます:"無周波数"AO、全周波数イメージベースの照明やポイントライトからシャープな影。

PRTは広い照明範囲とそれなりの複雑さの静的なジオメトリとうまく動作しますが、
SSAOは妥協のないシンプルさがゆえに実際のアプリケーションに適応されています。

要約すると私たちの研究は、あらかじめ計算されている、
以前は動的には不可能だった最終的なリアリティーに影響する指向性遮蔽と間接的反射の2つ両方の近似計算をリアルタイムに、よりリッチなジオメトリに対してSSAOプロセス[Shanmugam and Arikan 2007] を用いることで活用しています。

3 イメージベースの近接場光伝搬

画像空間の光伝搬を計算するために、本手法は位置と法線のフレームバッファ[Segovia et al. 2006]を入力として使用しています。
フレームバッファは直接光及び間接バウンスの2つのレンダリングパス使用して照明ピクセルを出力します。

DOを用いた指向性照明

通常のSSAOは隣接するピクセルから、最初の計算で可視値の平均を求めピクセルの色を決定します。
この遮蔽の値はすべての入射方向からくる非遮蔽照明を乗算して求めます。

遮蔽と照明の関連性の低くさを取り除く処理を行う方法を次のように提案します。

3次元上に法線nの座標Pのピクセルがあり
方向ωiのN個のサンプリングから算出される直接光輝度をLdirとし、
均一に⊿ω=2π/Nで半球状に分散していると定義したとき

Ldir(P) = Σ(i:1->N)ρ/πLin(ωi)V(ωi)cosθi⊿ω.

各サンプルは、入射輝度Linと可視ベクトルVとディフューズBRDFρ/πの積を計算します。
我々は、Linを効率的にポイントライトや環境マップから計算することができることを前提としています。
スクリーンスペースで遮蔽物を近似する事で可視ベクトルVの算出に、レイトレーシング計算の使用を回避します。
点Pから方向ωiのランダムな距離λi [0...rmax]にあるすべてのサンプルを算出します。
rmaxは任意に定義した半径です。
これは結果、Pを中心とする半球に内包するサンプリング点P + λiωiと法線n方向との組みとなります。
続いて、3次元の点として点P周辺での局所的なサンプリングポイントを生成します。
そのうちのいくつかは表面の上、またいくつかは下に位置します。
サンプリングポイントが隣接するジオメトリの表面より下にあるものはすべて遮蔽物として近似の可視性判定として扱われます。

Fig.2:左 指向性遮蔽による直接光 互いのサンプル点は遮蔽物かどうかのテストに使われる。上記の例では、点Pは方向Cからのみ照明される。
右 間接光 直接光がフレームバッファに置いた、小さい範囲が互いの遮蔽物として表面上に配置されたものであり、対象点の輝度として使われる
Fig. 2 (左) はサンプリングポイントABCDのN=4の例です。サンプル点ABDは表面の下に位置している為点Pの遮蔽物として分類される、サンプル点Cは表面の上に位置しているので可視点として分類されます。
サンプル点が表面の下に位置するかテストして、イメージ上に投影されます。

今3次元の位置情報はポジションバッファから取得でき、その点がジオメトリの表面上に投影されます(赤の矢印)。
もし、このジオメトリ表面への投影によって観測点からサンプル点への距離が減少すれば、サンプル点は表面の下に位置すると分類することが出来ます。
例えば Fig. 2において点ABDは観測点に近づいたので表面の下に位置し、点Cは観測点から遠ざかります。
SSAOと対照的に、すべての点から照明の計算をせずに見えている方向(サンプル点C)からのみにします。
特に入射光照明が違う方向から、違う色でやってくる場合、この指向性の情報は結果を大幅に向上させることが出来ると言うことになります。
Fig.3の通り、SSAOでは単純にグレーカラーで影を表示するだけですが、こちらは正しい色で影を表示することが出来ます。
Fig3

Fig3

間接反射
1つ前のパスで、直接光がフレームバッファに書き込んだ単反射のライト情報を含むことで以下のことが可能になる。

遮蔽物として扱われる各サンプル点(ABD)に対応するピクセルカラーLpixelは表面上に配置される単位面の発光輝度として使用される。(Fig2右)
ここで発光単位面の裏側からの色漏れを避けるために発光側の法線を考慮する。

ジオメトリ周囲の付加輝度は以下の式で近似できます。

Lind(P) = Σ(i:1->N)ρ/πLpixel(1-V(ωi))(As cosθsi cosθri)/di^2

diは点Pと遮蔽物iとの距離(diは特異点問題を避けるために1でクランプする)
θsiとθriはそれぞれ発光者(sender)と受光者(receiver)の法線と透過方向の角度です。
Asは発光者単位面に関連する領域です。
単位面領域の前提値として半球内の平面を想定しています。
基礎円はN個の領域に分割されているので、As=πr^2max/Nの領域をお互いにカバーします。
半球内の斜面の分布に応じて、実際の値は高くすることが出来ます。
このパラメータを色にじみ強度の手動のコントロールとしてに使うことが出来ます。
例として、fig2において単位平面Aは裏を向いているために間接光計算は何も寄与していません。
単位平面Cは点Pの半球の反対側にありますのでこれもまた関与しません。
単位平面BCは点Pに対して間接光の発光者となります。
Fig3は間接光の反射を標示しています。

細部の実装
従来のSSAO [Shanmugam and Arikan 2007] は同様の手順と計算コストがかかります。
今回の手法は可視判定に相当するシェーディングモデルを判断する為により多くの計算を必要とします。
今回は太陽光のような既知の重要な光源には、スクリーンスペースでの手法ではなく、代わりにジオメトリの距離から影をキャプチャーするシャドウマップを適応する追加のサンプルを使います。  
N個の事前計算された食い違いの少ないサンプルλiωiのセットM個を格納するためにMxNのテクスチャを使います。
各ピクセルは実行時にMセット外の一つを使っています。
最後のパスでノイズを取り除くために微細なジオメトリブラー[Segovia et al. 2006]を適応します。
これはピクセルあたりのサンプルのリダクションによって提案されています。

4 マルチピクセル
Fig.4
スクリーンスペースでの処理なので、すべての遮蔽物や間接光源が見えているわけではありません。
Fig.4の例は間接照明の光源が遮蔽されていくにつれて、色のにじみがフェードアウトしていくのを示しています。
それらは、付属のビデオのとおり見た目にひどくがっかりするような見た目ではありません。しかし、実際の結果とは違っているのです。
この差異を減らす措置として、そのような照明結果を克服する2つのアプローチ、深度値の剥離と追加カメラを提示します

単一深度の限界
Fig.5
スクリーンスペースでの可視判定問題(左):可視判定のサンプル点Aは投映位置が観測位置に近いため遮蔽物として分類されます。サンプル点Bは表面の上にあるので、対応する方向は閉鎖されていても点Pはこの方向から誤って照明されてしまいます。
解決法(右): 2つのレイヤーを使用して深度乖離します。サンプル点Aは第一第二深度値の間にいないため可視と分類することが出来ます。B方向からのサンプル点を増やすことで、遮蔽物を見つける事が出来ます。
前のセクションで提示した遮蔽物テストは近似です。単一のフレームバッファでは、最初の深度値のみ知ることができ、遮蔽されたジオメトリ情報は失われてしまいます。
Fig. 5(左)に示すように、サンプリング点はそれゆえに間違って判断されます。
いくつかの状況では、入射光を乖離判定してしまったり、本来遮蔽されるべき方向を可視判定してしまういます。
サンプル点Bの遮蔽判定ミスは、この方向のサンプル点を増やすことよって訂正することが出来ますが、サンプル点Aの乖離(そして、反射光の入射位置を近くしてしまう)は単一の深度値z1の背後のシーンについての情報が無い為に単一の視点からでは訂正することができません。

深度値の剥離
剥離深度[Everitt 2001]は、nレンダリングパスのあとに互いにフレームバッファへ単一の深度値nが書き込まれます。
これは、このシーンに関してより多くの情報を持つことで遮蔽物判定を改善する猶予があります。
もしサンプル点が第一深度z1の背後にあるならば、そのまま判定せずに、第二の深度値z2の前にあるかテストをする。

第一第二深度はオブジェクトの表面と裏面にそれぞれ対応し、2つの集合管ジオメトリを使用する場合、2つの面の間のサンプルはこのオブジェクトの内側にしなければならない。(Fig.5右)
複雑さの高い深度のシーンのすべての影を再構築する為には、第3、第4深度値と連続する深度値のすべての組みは同じ方法で評価しなければならない[Lischinski and Rappoport 1998]

0 件のコメント:

コメントを投稿