NVIDIAは28日、報道関係者に向け、PC用最新ゲームタイトルで用いられているグラフィック技術について解説を行なった。取り上げられたのは「Crysis 2」と「Battlefield 3」。これらのタイトルでは、DirectX 11などの最新技術や、PCの持つ高い処理能力、新たに開発されたソフトウェアアルゴリズムを活用することで、これまでと一線を画すグラフィックを実現している。
Crysis 2は、発売当初DirectX 10までの対応だったが、後に出たパッチによりDirectX 11に対応し、表現力や性能が向上した。これについては、動画を用いて説明されたので、下記の動画を参照して欲しい。
まず、テッセレーションとディスプレースメントマッピング。DirectX 11対応GPUはテッセレーション機能をハードウェアで実装したことで、近くにあるオブジェクトのポリゴンを分割し、頂点の情報をテクスチャから取得し、ジオメトリをよりリッチにできる。
テッセレーションにより、高品位なLoD(Level of Detail)を低負荷で実現 | ディスプレースメントマッピングを組み合わせて、岩壁の複雑な凹凸も表現 |
パララックスオクルージョンマッピングは、ノーマルマップに加え、視線方向の情報を加味することで、へこんだ部分の影がより暗くなるという効果が得られる。DirectX 11の技術ではないが、高い処理能力が必要となるので、DirectX 10世代ではハイエンド、11世代ではミドルレンジ以上のGPUが求められる。
パララックスオクルージョンによって凹凸による影を加え、立体感を増している |
HDR処理は5年ほど前からゲームにも実装されているが、Crysis 2ではトーンマップも加え、精度の高い計算を行なっているので、より高品位になっている。これも高い処理能力が必要になる。
HDRを使って、暗いところから明るいところを見た時の白飛びなどを表現 |
ともすれば見逃しがちだが、リアルタイムでのローカル反射も写実性向上に一役買っている。金属や液体などの光沢のある物質の表面を見ると、オブジェクトが映り込んでいるのに気付くだろう。
ローカル反射の例。ちょっと分かりづらいが、トラックのドアの下の黒い箱の部分に映り込みがある |
被写界深度も以前から実現されているが、その品位はピンからキリまでさまざまだという。Crysis 2は高精度の計算を行ない、ピントが合わずぼけたピクセルの色が周りと混ざり合わないようになっているほか、高輝度成分にぼけがきちんと適用されている。
被写界深度の表現 |
水の表現は、まだ動きやシェーディングに課題は多く、計算時間がいくらあっても足りないほどだというが、動画を見て分かる通り、Crysis 2ではその表現力はかなり高く、他の物体との干渉も見て取れる。
水面の表現はかなりリアルだが、物体と干渉した時の動きはまだぎこちなさが残る |
影の表現についてCrysis 2では、可変ペナンブラという手法を用い、影のエッジをぼやかしているが、そのぼけ方が、光の遮蔽物に近いところは少なく、そこから離れるほど大きくなるという、よりリアルな表現を実現している。また、カメラが見ている深度情報に加え法線情報を利用したSSDOという技術を使って、へこんだ部分の影を描写している。
影はエッジがぼけているだけでなく、ぼけ具合も可変 | |
光が入り込まないところをより暗くする表現も |
Crysis 2のモーションブラーは負荷の高いHDRを使いつつ、従来は別のパスを使っていたパーティクルにまで適用している。
モーションブラーはパーティクルにまで適用 |
Battlefield 3は、米国で発売直後(国内では数日後に発売)ということもあって、最初からDirectX 11を想定して開発されている。本作品でも、テッセレーションや被写界深度などを駆使しているが、その表現の写実性にもっとも大きく寄与しているのは、リアルタイムでのグローバルイルミネーション処理だという。
グローバルイルミネーションは日本語に訳すと広域照明となるが、具体的な内容は、直接光だけでなく、反射による間接光も含めたレンダリングを行なう技術である。グローバルイルミネーションによって、CGの写実性は格段に向上するが、光線源が無数に増えるので、その負荷も格段に高まってしまい、今まではリアルタイム処理できなかった。しかし、Battlefield 3では、英Geometricsの「Enlighten」というミドルウェアを使って、このグローバルイルミネーションを実現している。
Enlightenは、システムの性能に応じてシームレスに精度を変更できるが、NVIDIAのCUDAおよびOptiXにも対応しているのが特徴。具体的にCUDAは、光の伝搬計算に使われる。その計算結果はテクスチャとしてアプリケーションに返されるので、CUDAを使うと、CPU(メインメモリ)とのやりとりが不要となることもあって、Geometricsの検証によると、マルチコアCPUに比べてGPUで処理すると5倍程度高速化されるという。また、OptiXは、事前計算フェーズでレイトレーシングのテストを行なうが、これもCPU 1コアに対してGPUの方が最大20倍高速に処理できるという。
実際に会場で行なわれたデモでは、自然光のほかに照明が点在するマップの中を、50体のキャラが明かりを持って移動しても30fpsを維持する様子が紹介された。
Battlefield 3の写実性にはグローバルイルミネーションの実装が大きく寄与 | グローバルイルミネーションの有無による違い。左では奥からの太陽光が向かいのコンテナに反射している様子が表現されている |
こちらも左側では、直接光が届かない床の裏などにも反射光が当たり、その分明るくなっている | EnlightenはCUDAとOptiXに対応 |
【動画】グローバルイルミネーションの有無による違い |
【動画】Enlightenではパラメータ設定で朝昼晩すべてを表現可能 |
【動画】こちらもグローバルイルミネーションの有無による違い |
【動画】50体のボットを動かしたデモ |
(2011年 10月 31日)
[Reported by 若杉 紀彦]