NVIDIA、DirectX 11世代最新ゲームグラフィックスの秘密を解説
「BF3」で採用された大局照明技術「Enlighten」とは?





NVIDIA Japan、デベロッパーテクノロジーエンジニア竹重雅也氏

 NVIDIA Japanは10月28日、プレスカンファレンスを開催し、DirectX 11に対応した最新ゲームグラフィックス技術について解説した。その中で11月2日発売予定の「バトルフィールド 3 (BF3)」(エレクトロニック・アーツ)で使われている大局照明技術「Enlighten」についても詳しい情報を聞くことができたので本稿でご紹介しよう。

 そもそもなぜNVIDIAがこういったグラフィックス技術を紹介するのか? もちろんDX11に対応した「GeForce」シリーズのプレゼンスを高めたいという動機が根底にあるが、それと同時に、キーとなる最新技術がNVIDIAのGPGPU処理系であるCUDAに対応しているという、ユーザー側にとっても無視できない事情がある。

 このミニカンファレンスでスピーチを行なったのは、NVIDIA Japanでデベロッパーテクノロジーエンジニアを勤める竹重雅也氏。最新技術のリサーチと業界への普及を任務とする立場から、エレクトロニック・アーツの最新タイトルである「Crysis 2」および「BF3」のグラフィックス技術を解説した。

【「やっぱりゲームはGeForce GTX キャンペーン」】
ちなみにNVIDIAでは「BF3」に合わせたキャンペーンを実施。「GeForce GTXを搭載したGeared for Gaming PC」を購入するとオリジナル迷彩パーカーがプレゼントされる。また、単品の「GeForce GTX 560」には「Batman: Arkham City」(英語版)がバンドル



■ DX11固有機能&パフォーマンスの底上げの両輪で進む最新技術

大型アップデートでDX11に対応した「Crysis 2」
「BF3」では当初からDX11を前提に開発されている

 まず竹重氏は、エレクトロニック・アーツおよびCrytekから6月末にリリースされた「Crysis 2」の大型アップデート「DirectX 11 Ultra Upgrade」について解説した。

 これは、もともとDirectX 9世代GPU向けに作られていた「Crysis 2」を本格的にDirectX 11に対応させるもの。テッセレーションを使った高詳細ジオメトリ表現、パララックス・オクルージョン・マッピングによる立体的なテクスチャ表現、ローカルリフレクション(局所反射)、高度なトーンマッピング、新水準の被写界深度とBOKEH(ボケ)表現、詳細な水面シミュレーション、距離によってぼやけ具合が変わる半影表現、SSDO、HDRモーションブラー、パーティクルモーションブラーといった、細かい技術の積み重ねで構成されている。

 竹重氏はその中で、実はすべての技術がDX11固有の機能というわけではないという事情を紹介。例えばテッセレーションはDX11固有だが、他のいくつかの表現についてはDX11非対応のGPUでも実装はできる。ではなぜこれらの表現がDX11世代GPU向けに実装されたのだろうか?

 その理由は、DX11対応GPUが持つパフォーマンス。旧世代のものよりもジオメトリセットアップの能力やシェーダー能力が大幅に向上しているため、増えた分のプロセッシングパワーを使って初めて、より進んだ表現を実用圏内のパフォーマンスで実行できるというわけだ。また、DirectComputeによって、CPUが苦手な映像処理を効率的にGPU処理に置き換えることができる点も大きい。

 例えば、視線角度に応じてテクセルの位置をずらし、凹凸を考慮して陰影付けも行なって地面のテクスチャを立体的に見せるパララックス・オクルージョン・マッピング。実は前作「Crysis」では最初から利用できたが、あまりにも重いため、「Crysis 2」のDX9版では取り除かれていた技術だ。

 その他、「Crysis 2」にはシーン内のあらゆる反射性のオブジェクトに近隣のオブジェクトが反射して見えるという、何回もの追加レンダリングが必要になる重い機能(ローカルリフレクション)や、やたら計算負荷の高い高品質の被写界深度表現とBOKEHフィルタなどが新搭載されている。これにより根本的なレベルで映像品質が向上しているのは、動画をご覧になっての通りだ。


【Crysis 2 DirectX 11 Ultra Upgrade トレーラー】



■ 「BF3」のポイントはリアルタイム大局照明技術「Enlighten」

リアルタイムの大局照明技術「Enlighten」

 続いて話題は「BF3」に移る。「BF3」で使われた最新のゲームエンジン「Frostbite 2」では、最新世代のPC環境に向けた様々なレンダリング技術が使われている。

 大スケールの戦場を描き出すための高度なLoD(レベル・オブ・ディティール)システム、高品位な被写界深度表現、近隣の爆発などのエフェクトを考慮して画面全体の雰囲気を変えるトーンマッピング、パーティクルに陰影付けも考慮して煙などを立体的に表現するボリューメトリック・スモーク、軽く高品位なアンチエイリアス技術であるFxAAなどなど。

 これらの技術の多くはポストエフェクトに属するグラフィックス処理だが、より根本的なレベルの処理もある。「BF3」の映像品質に貢献している大局照明技術である「Enlighten」がそれだ。

 Enlightenは英Geomericsが開発したミドルウェアで、ゲーム向けのリアルタイム大局照明ソリューション。最新世代のゲームでは大局照明の実装と活用が大きなトレンドとなっているが、現在みられるものはほとんどが非リアルタイムのソリューションであり、動的光源を扱えない。Enlightenでは動的光源も扱えるという点が大きなポイントになっている。

 動的光源が扱えるということは、朝、昼、夜といった時間変化にもそのまま対応できることを意味する。またEnlightenで扱われる光源の数は処理量を無視すればほぼ無制限で、移動する照明や爆発などの光源付きエフェクトもきちんと大局照明の中に組み込まれる。

【「BF3」における大局照明】
光源からの光が直接当たっていない場所は、従来はのっぺりとした表面になっていた。大局照明を用いると、そこに相互反射による間接光が及び、説得力のある陰影が表現される

【「GeForce LAN 6」における「BF3」大局照明技術の解説】

「Unreal Tournament」のMOD実装でのデモ
面の色がきちんと反射光に影響している

 このあたりは「Unreal Tournament」にMODとして実装されたバージョンで実演された。光源が太陽1つしかないシーンでも豊かなライティングが与えられるようになっている。直接光が当たらない場所に他の表面からの照り返し(相互反射)が及ぶためだ。従来のライティング技法では真っ暗になっていた部分にも、現実的で滑らかなディティールが見られるようになる。

 リアルタイム処理ということで非リアルタイム(焼き込み)系の大局照明技術に比べて簡素化されているかというとそうでもなく、照り返しの影響は表面の色もきちんと考慮したものになっている。例えば青いコンテナにスポットライトが当たると、その周囲に青い反射光が放射される様子が見て取れた。

 このような表現を可能にするため、Enlightenでは大別して2つのフェーズで処理が構成されている。シーン内の光学的な構造を解析してリアルタイム処理に向いたデータを作り出す事前計算フェーズと、実際のゲーム上で動くリアルタイムのライト伝播計算だ。その両方がNVIDIAのGPGPU処理系であるCUDAでも実装されているという。

 リアルタイムのライト伝播計算では、CUDAはマルチコアCPUに対して約5倍のパフォーマンスが出たという(開発当時の計測)。またゲーム開発者がシーンを仕上げる際に行なう事前計算処理ではCUDAを使ったレイトレーシングエンジンであるOptiXが使われ、CPUでは1コアあたり100万レイ/秒程度の速度だったものが、2,000万レイ/秒に向上したとのこと。これがシーンのロード時間の短縮や開発の効率性に貢献したという。

 というわけで、従来は非リアルタイム表現の筆頭であった大局照明技術も、DX11世代ではリアルタイム表現の世界となる。もちろん、事前計算を必要とするEnlightenの弱点としては「動的なシーン構造の変化に対応できない」という点があるため、完璧というわけではない。破壊オブジェクトの多い「BF3」でそれが実際にどう影響しているかは、みなさんの目で実際に見て欲しい。

【時間変化】
光源は太陽1つ。時間変化(太陽の傾き、色の変化)にも対応できている

【動的光源】
複数の光源や面光源にも対応できる。画像は面光源で「テトリス」を表現しているシーンと、50体のBOTが戦って大量の光源が出ているところ

【他のゲームでの採用例】
Enlightenは「BF3」以外のゲームでも使われている。同じ「Frostbite2」エンジンを用いている「Need for Speed: RUN」はもちろん、オンラインゲームである「EVE Online」ではステーション内部のグラフィックスに利用


(2011年 10月 31日)

[Reported by 佐藤カフジ]