論文"Image Space Photon Mapping"の概要

ACM SIGGRAPH/EuroGraphics High Performance Graphics 2009の論文"Image Space Photon Mapping"のを読んだので,
簡単に概要だけ説明させていただきます.

Image Space Photon Mappingは, Photon MappingによるGlobal Illuminationの計算を, 部分的にGPUによる計算を利用することでリアルタイムに行う手法です.

以下は, Image Space Photon Mappingは処理の流れです.

  1. Bounce Mapの構築(GPU) : LightごとのG-Bufferを構築してから, Bounce Mapを構築します. このBounce MapにはLightから放射され最初に表面から跳ね返ったPhotonの情報を蓄積されます. Bounce Mapの構築時には, 各ピクセル単位でBSDFの重点サンプリングの結果に基づきロシアンルーレットを行います.
  2. Photonの追跡(CPU) : LightごとのBounce Mapを元に, Photonの追跡をCPUによって計算します.
  3. 視点位置のG-Bufferの構築(GPU) : 直接光を計算するための視点位置からのG-Bufferを構築します.
  4. 直接光・間接光の計算(GPU) : 直接光 : 視点位置からのG-Bufferから計算します. 間接光 : 追跡したPhotonをPhoton Volume(正20面体)としてレンダリングしたときのフラグメントがこのPhotonの間接光の影響を受けます. 放射輝度の推定値の計算に使うカーネルは法線方向に押しつぶします. また, 放射輝度Loを推定する式は以下のようになります.


ここで,sは表面の位置座標, ωoはPhotonの出力方向, fはBRDF, nは表面の法線,ΦiはPhotonの放射束, κはカーネルの式で詳しくは論文を参考にして下さい.