SIGGRAPH Asia 2008 の "Imperfect Shadow Maps for Efficient Computation of Indirect Illumination" の概要

  • "Imperfect Shadow Maps for Efficient Computation of Indirect Illumination". Tobias Ritschel, Thorsten Grosch, Min H. Kim, Hans-Peter Seidel, Carsten Dachsbacher, Jan Kautz. ACM Trans. Graph. 27(5) (Proceedings SIGGRAPH Asia 2008), 2008.

"Reflective Shadow Maps"の概要 - OLD hanecci’s blog : 旧 はねっちブログ といった方法では, 光源から放出してシーンの表面に当たって反射する光を, 表面上に配置された小さい多数の Virtual Point Light とみなして, それから受ける間接光の照明計算をするのですが, Virtual Point Light の可視性までは考慮していないです.

そこで, この論文では Virtual Point Light の可視性も考慮するために, Virtual Point Light の視点位置から, 点で表現したシーンを GPU によって Depth Buffer に深度情報をレンダリングすることで, 低解像度(128x128 など) の Shadow Map を作って利用するというアプローチをとっています.

点で表現したシーンの作り方についてですが, この論文では, 三角形の面積と比例した確率に基づいて選択した三角形上のランダムな点を選択することを繰り返すことで作成しています.
そして, 点で表現したシーンの Depth Buffer へのレンダリングは, VPL からの位置に比例した面積を持たせた splat を描画することで行います.

ランダム性を持つ点で表現したシーンをレンダリングして Depth Buffer を作っても, 穴が空いたりしているので, 平均化処理などを行って穴を埋める処理を行います. こうして, 大まかな深度情報を持つ低解像度の Shadow Map (Imperfect Shadow Map) を作ります. 間接光はシーン上で緩やかに変化する性質を持っているので, 間接光として働く VPL の可視性を判定するぐらいなら, 低解像度で深度情報が多少不正確な Imperfect Shadow Map でもちゃんと役割を果たすみたいです.