イベント
[GDC 2017]NVIDIAが推進する次世代GIは,ライトフィールドを使って「手軽に完全なGIレンダリングを実現する」
リアルタイムグラフィックスでは,周囲の情報を上下左右360度全周で記録するものとして「プローブ」(Probe)という球体を利用することが多い。
ただし,プローブは概念的なものであって,ゲーム内に直接表示されることはない。あくまでも,当該位置における情報を記録したものだ。
プローブにもいくつか種類があるのだが,たとえばライトプローブ(Light Probe)は,その位置に入ってくるすべての角度からの光の情報を記録したものというイメージになる。その光の情報に従って陰影を付ければ,間接光などを反映した,極めて自然な仕上がりにできる。ゲーム開発の現場では,そういったものを空間に一定間隔で設置しておいて,途中の地点では近くのプローブの情報を補間しつつ使用するというのが一般的だ。
ライトプローブに記録されているのは事前計算による陰影なので,光源が動くなどすると使えないのだが,それを補うシステムを入れてあることが多い。
ライトプローブデータの作成には,360度撮影できるカメラで現実世界の光源情報を取り込んだり,ゲームなどではプローブ位置から全周をレンダリングしたりして,その画像をキューブマップや球面調和関数に保存のうえ,光源情報として使うというのが一般的だ。
イレイディアンスプローブ(Irradiance Probe,放射されてくる光を記録したプローブ)も,反射光を扱うなど精度が上がっているものの,実態はほぼライトプローブと同じと思っていいだろう。
さて,比較的低負荷でリアルな光源情報を得られるライトプローブは,最近のリアル系ゲームでは欠かせない存在なのだが,弱点も持っている。
先ほど,周りのプローブの情報と補間して陰影を作ると書いたが,たとえば「部屋の中にあるプローブ最寄りのプローブが,部屋の外にある」とすると,部屋の中なのに日差しが入り込んだりすることがあるのだ。なので,事前に遮蔽物の位置である程度フィルタリングしておくことが一般的だが,それでも漏れてくる光があったり,プローブが物体内に入っていると不自然な影ができたりする。
ということで,今回のトピック,1つめはその改良である。
そもそもどんな光が漏れていたのかというと,点光源だという。最近よく使われるバリアンスシャドウマップ(Variance Shadow Maps,以下 VSM)法では,デプス値の平均と分散の2つのモーメントを利用しているが,VSMで使われるチェビシェフの不等式では適用範囲が狭いのだそうだ。
今回のIrradiance Probeでもチェビシェフの不等式で可視判定をしているが,コサインで重み付けされた球の4分の1(90度)の幅で処理を行っているため,エッジを逃さないということらしい。
そのレンダリング結果は以下のとおりである。
プローブが物体内でも問題なく動いていることを見ても分かるように,プローブの配置を気にしなくても正確な結果が出てくることがメリットの1つでもある。従来は,手作業でちゃんと見えるように位置を調整する必要があったのだから,この違いは大きい。
ライトフィールド(Light Field)は,光の方向や半径なども含め,「光の全情報を記録したもの」となる。
前提の話をしておくと,リフレクションプローブは,鏡面反射したときに映り込むであろう情報を記録したプローブである。
「周りにある光の情報」という意味ではライトプローブとリフレクションプローブはだいたい同じ仕組みだが,前者の場合,明るさは大雑把でもまったく問題ないため,思い切って情報量を落としてしまうことが可能であり,そういう実装が一般的だ。それに対して後者は,あまり情報を落とすわけにはいかないという違いがある。
それなら,光の情報量という観点において究極とも言えるライトフィールドプローブを使ってしまおうというのが,2つめのトピックである。
説明によると,ライトフィールドには,イレイディアンスプローブのような光の輻射とその方向,輻射の距離になる。これらの情報を使い,プローブの内部だけでレイトレーシングを完成させるのだそうだ。
ライトフィールドを使うと,イレイディアンスプローブと同様,プローブの配置に気を遣わずとも,正確な描写が得られるようになるという。
ライトフィールドプローブは研究途上で,現時点では,「GeForce GTX 1080」と使ったときに4〜10msの処理時間がかかるとのことだ。
60fps時の1フレームが16.7msであることを考えると,60fps動作は難しそうだが,30fpsなら問題ないだろう。40〜50fpsで非常に正確なGIレンダリングが行われるようになるのであれば,すでに実用性があると言ってもよいのかもしれない。
今後,さらにアルゴリズムが進化し,同時にハードウェアが高速化していけば,ゲームでも使えるようになっていくはずだ。まさに次世代のレンダリング技術といえる講演であった。
GDC 2017記事一覧
- この記事のURL: