10月28日、NVIDIAがゲームの高画質化技術についての技術説明会を開催した。DirectX11対応の「Crysis2」と「Battlefield 3」を題材に、どのような技術が採用され、画質を向上させているかを解説した。
「Crysis2」で進化したグラフィックス
「Crysis2」で採用されたエンジン「CryEngine3」で、ゲームのグラフィックスは大きく進化した。まずは、その「Crysis2」でどのような進化を遂げたのかをおさらいし、次の項目でさらなる進化を遂げた「Battlefield 3」の高画質化のメカニズムを紹介していこう。
「Battlefield 3」で適用された
グローバルイルミネーション
これまで、太陽光のように空間すべてを照らす広大な光源は、演算が多すぎてPCに極端に負荷をかける処理だった。これまではオフラインレンダリングで何時間もかけて計算していたのだが、「Battlefield 3」ではこのグローバルイルミネーションをリアルタイムで実現している。
それではゲームで、グローバルイルミネーションがどのように活用されているのかを見てみよう。
グローバルイルミネーションが適用されていない上の画像の右半分は、太陽光が直接当たらない部分が暗くなっているのに対し、左半分はコンテナに反射した太陽光が、別のコンテナの面を明るくしているのがわかる。
さらに、手前のコンテナは赤と黄色に染まっている。これは反射した面の色の影響を反映しているからだ。
上の画像の左半分では、地面や近くの物体に反射した光が、フロアーの天井面(桟橋の底部)を明るく照らしているのがわかる。さらに1階のタンク周辺は、(ややわかりにくいが)奥に行くにつれて影が濃くなっている。対して右半分の画像は、直接光が当たる部分のみ明るくなっており、影に濃淡の差がない。
太陽光のリアルタイム演算を可能とした
Enlighten(エンライテン)
光は物体にぶつかると反射するため、その反射光の演算も含めると膨大なものになる。ましてやそれが太陽光のように無限の光源を持つものならなおさらだ。
「Battlefield 3」では、グローバルイルミネーション専用のミドルウェア「Enlighten」を導入し、太陽光を通常の光源と同じように使え、かつリアルタイムで計算できるようになった。