Approximating Dynamic Global Illumination in Image Space

by syoyo

ssdo.png
(image from “Approximating Dynamic Global Illumination in Image Space”)

Approximating Dynamic Global Illumination in Image Space
Tobias Ritschel, Thorsten Grosch, Hans-Peter Seidel
Proceedings ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D) 2009
http://www.uni-koblenz.de/~ritschel/

うぉっ! これはすげー!

– スクリーンスペースなのでジオメトリの複雑さと無縁
– 動的ジオメトリ可
– 前計算なし
– GPU に容易に実装可能

で近似的に GI (1 回の indirect diffuse) をリアルタイムでやってしまっています.

手法としては、基本的には既存研究である SSAO(Screen Space Ambient Occlusion) と似ています.
各シェーディング点において周りのピクセルに対してサンプリング点を生成してそのサンプリング点のオクルージョンをチェックして光の寄与を求めます.

論文では、スクリーンスペースでの Directional Occlusion と Indirect bounces の手法について解説し,
そしてそれらの手法に対して、よりアーティファクトを減らすためのテクニックを提案しています.

Directional Occlusion

ssdo_sample.png
(image from “Approximating Dynamic Global Illumination in Image Space”)

AO(ambient occlusion) では遮蔽率に応じてグレースケールでしか GI 効果を実現できないのですが、
DO(Directional Occlusion) では、サンプル点が見えれば(上図の左で点 C が該当)、
サンプル点が対応する方向からの環境マップの色を採用することでよりリアリスティックなシェーディングを可能にしています.
(手法としては遮蔽を求める計算自体は SSAO と基本的に同じなので、あとは環境マップをフェッチしてその色を寄与とするかどうかの違いだけ)

Indirect bounces

ssdo_indirect.png
(image from “Approximating Dynamic Global Illumination in Image Space”)

Indirect bounces では 1 回の間接反射を実現します. 2 パスの処理になっています.
1 パス目は DO による処理を行い、2 パス目では DO パスの結果を元にして、同じようにシェーディング点の周りのサンプル点からの寄与を求めます.
(2 番目の図の右側)

このとき, 周りのサンプル点は 1 回目の結果により直接光の結果をストアしているので、これを集めることで 1 回の間接反射が実現できるというわけです.

—-

さすがにオクルージョンが大きく変化するときはアーティファクトが見られますが、
(たとえば視点や物体が移動して見えない部分が見えるようになったり、見える部分が見えなくなったりするとき)
それ以外はもう十分すぎるほどのレンダリング品質だと思います.
(低周波数ライティング環境下における GI 効果という条件で、ではありますが)

効率的で、動的シーンでも OK な GI 手法が年とともに提案されて、どんどん GI が実用的になってきていると感じます.

Advertisements