Assassin's Creed 4 の Global Illumination "Deferred radiance transfer volumes" のメモ

概要

  • アサシンクリード4 のグローバル・イルミネーションに関する情報です.
  • 使っている手法は FarCry3 とほぼ同じ "Deferred radiance transfer volumes" らしいです.
  • 開発元が FarCry3 と同じ Ubisoft Montreal だからそうなのかもと思いました.
  • "Deferred radiance transfer volumes" については既に Ubisoft Montreal が GDC2012 で発表をしています.
  • (追記): という内容を Twitter に書いたら, Ubisoft Montreal の開発者からツッコミがありました. 3 人中 2 人はそうだよと言っていて, もう 1 人は実際には FarCry3 とは少し変えているよと言っていました. 近々, 詳しい内容についての発表があるらしいです.


FarCry3 の "Deferred radiance transfer volumes" について

  • 内容としては, 地形に対してある一定間隔でプローブを配置し, そのプローブが周囲から受ける反射の情報を SH に焼きこんでおきます.

  • ランタイムではカメラから見えるこのプローブの情報を 3d volume texture に挿し込んで, 画面上のピクセルに相当する反射情報を SH として取得します.

  • 最後に, ライティングの情報を SH として表現したものと, この反射情報の SH の係数同士を乗算して間接光を求めます.
  • さらにあるプローブの位置にあるライトによって, 他のプローブがどういうライティングの影響を受けるか? の情報も保存しておけば, ポイントライトが与える間接光も求めることができます. (Local Radiance Transfer)


Asassin's Creed 4 の "Deferred radiance transfer volumes" について

  • 下の Ubisoft Talks AC4 Tech" DSO Gaming のリンクにより詳しい情報が書いてありましたので以下に直訳します.
  • どうやら, NavMesh を使って数千のプローブをワールド中に自動配置しているようです.
  • そして, 各プローブごとに 1 日のうちの 8 個の異なる時間帯でプローブのイラディアンスをベイクしておきます.
  • この計算はビルドマシンの GPU で行っているので, 1 分で 数千のプローブをベイクすることができます.
  • ランタイムでは, 時間帯とワールド座標と気候に応じてプローブのデータを補間して利用します.
  • この太陽光のバウンスによる間接光は AO や空によるライティングと組み合わせて利用しています.
  • このシステムは現世代機と次世代機の両方で動作します.
  • 一応, 下に原文を貼り付けておきます.
DSOGaming: Can you share more details about your Global Illumination solution?

LP: Our Global Illumination is based on previous work 
that was done internally at Ubisoft (deferred radiance transfer volumes),
but we improved it greatly. Using the navmesh, we automatically populate our world with thousands of probes. 
For each probe, we then compute the irradiance for 8 different time of the day. 
Those computations are done on the build machine GPU, 
so they are really fast: we can compute thousands of probes per minute.
At runtime, on the player machine, 
we then interpolate these data to get the proper bounce lighting for a given time of day, 
world position and weather.  This bounce sun lighting is then combined with 
ambient occlusion and sky lighting to achieve a full indirect lighting and a Global Illumination solution.
This system works on both current gen and next gen.