ニュース
カプコン,DX10版「ロスト プラネット」のグラフィックスをアップデート。8月17日実装
■DX10ではビジュアル表現とパフォーマンスが向上
■ジオメトリシェーダを利用した新しいエフェクトが追加に
さて,今回のアップデートで追加されるのは,DirectX 10版ロスト プラネットのビジュアル表現およびパフォーマンスの向上だ。
まずビジュアル表現についてだが,カプコンの第二制作部 ソフトウェア制作室 プログラマーで,今回技術面の解説をしていただいた石田智史氏いわく,「DirectX 10ではビジュアルが劇的に変わるといわれていますが,実際には,“DirectX 10でできること”の大部分はDirectX 9でもできます」。
では,DirectX 10でしか実現できないことは何かというと,ジオメトリシェーダを利用したエフェクトと,GPGPU(※GPUに汎用計算をさせること)としての用途であり,ロスト プラネットでは前者を利用していると同氏。そして,製品版で実装されている以下のエフェクトについて,DirectX 10ネイティブのものを追加した改良版が,アップデートで実装されるという。
- モーションブラー
- 被写界深度
- ファーシェーダ
従来の2.5Dモーションブラーは,「シーン内の3Dキャラクターが,前回位置から現在位置までどう動いたか」の情報を基に頂点を引き延ばしてブラー処理を行う,頂点ベースの処理だった。
これに対して今回のアップデートで導入されるのは,ベロシティマップを参考にしてラインのジオメトリを生成し,それをアキュムレーションバッファに積み重ねて,ベースのイメージと合成する手法。テクスチャ(=ベロシティマップ)からジオメトリを生成するというのは,もちろんDirectX 9では不可能だ。
●被写界深度
それに対して今回の手法は,ピントのずれた範囲のドットを,距離に応じて実際の写真と同じように拡大して合成していくという手間のかかるものになっている。デプスマップ(Depth Maps,深度マップ)から,六角形の絞りの形をしたテクスチャを貼ったテクスチャをジオメトリシェーダで生成。それをアキュムレーションバッファに積み重ねていくイメージだ。
さてDirectX 10には,シェーダ内でどのビューポートにレンダリングするかを決定できる「マルチビューポートレンダリング」(Multi-Viewport Rendering)という機能がある。そこで今回のアップデートでは,「焦点よりも奥」「焦点よりも手前」のビューポートを用意。さらにそれぞれについて「強く動かす部分」のビューポートを設け,四つのビューポートに分けてレンダリングして最後に合成するという手法が採用されている。
これについて石田氏は次のように説明している。
「GeForce 8800を利用しても,ジオメトリシェーダで3頂点を超える頂点を生成すると,極端にパフォーマンスが落ちるんです。そこで,今回用いているジオメトリシェーダのフィーチャーは,すべて2か3頂点にしました。四角形のほうが効率はいいんですけど,実際にパフォーマンスを計測すると,三角形のほうが四角形より1.5倍くらい速い。3頂点というのが,現状のジオメトリシェーダの一つのポイントかなと思いますね。よく紹介されているようなDirectX 10のジオメトリシェーダのサンプルをゲームで使うのはまだ現実的じゃないかな,と」
●ファーシェーダ
従来の(DirectX 9ベースで行っていた)ファーは,テクスチャをレイヤー化して重ね,毛のように見せる「シェル」(Shell,外皮)技法を用いて実現していたが,DirectX 10ではジオメトリシェーダによって1本1本生成するため,より自然なファーになるというわけである。
今回追加された3要素は,すべてグラフィックスオプションの選択肢として新たに用意され,「DX10」という項目を選ぶと利用できるようになる。
また,ジオメトリシェーダとは直接関係ないが,これまでDirectX 9版では最高でも「中」までしか選べなかった「影の品質」は,DirectX 9でも「高」を選べるようになるとのこと。パッチ適用前の製品版における「高」は「DX10」と呼び名が変わる。「中」が9サンプル,「(高改め)DX10」が32サンプルなのは変わらずだが,新しく用意される「高」は16サンプルとなる。
現状の「高」はかなり負荷が高く,“重い”と評価されているが,「これは今回のアップデートでかなり改善していると思います」(石田氏)。
■新機能とドライバのアップデートで大幅に高速化
■「DirectX 10のほうがDirectX 9より速い」
また,現状の製品版ですでに導入されており,アンチエイリアシング(以下AA)を適用しない状態でのみ利用できる「深度バッファのリゾルブ」も併用すると,DirectX 9版と同じグラフィックス設定で比較したときに,20%程度の高速化を期待できるという。
国内外のさまざまなPCメディアが「DirectX 10はDirectX 9より遅い」というテスト結果を示しているため,意外に感じるかもしれない。だがロスト プラネットのパフォーマンスは,原稿執筆時点における最新のWindows Vista用公式グラフィックスドライバ「ForceWare 162.22」で,大幅に改善しているとのこと。
「『DirectX 10のほうが遅い』のは,古いドライバで検証しているからでしょう」と石田氏は述べる。氏によれば,Windows Vista用のForceWareは以前,AAが適用されていると階層Zバッファの高速化が効かない,カラー圧縮がまるで有効にならないなど,大きな問題があった。ロスト プラネットは雪や爆発といったエフェクトの描画量が多く,一般的なタイトルと比べてフィルレートを大量に要求するのだが,こういったクリティカルな部分が最適化されていなかったため,パフォーマンスが上がらなかった,というわけ。Release 162では,カプコンが認識していたForceWareのバグはすべて解決したそうだ。
「ロスト プラネットはNVIDIAにしか最適化していない」という声が上がっている件については,「コード自体は同じであり,ATI Radeonでパフォーマンスが上がらないのはドライバ(ATI Catalyst)のチューニングの差」という見解が示された。
チューニングつながり(?)では,Windows Vista&DirectX 10において,テクスチャ管理機構が十全に機能しておらず,「グラフィックスメモリの中にテクスチャデータがすべて収まりきらないと,パフォーマンスが大きく低下する」という。このため,「GeForce 8800 GTS」のグラフィックスメモリ640MB版と320MB版では,特定の局面で後者のパフォーマンスが極端に低下するとのことだ。すでに開発者向けにはパッチが出ており,年末の「Service Pack 1」で修正される見込みだが,それまでは「テクスチャ解像度」設定を下げて対応するといいかもしれない。
ところで体験版のPERFORMANCE TESTでは,AKの挙動が毎回けっこう変わっていることに気づいただろうか。これはより実際のゲームに近づけるための措置で,要は「仕様」。ただ,AIの挙動はより安定するよう,アップデートに当たって改良されているという。
……以上,グラフィックスとパフォーマンス周りの新要素を駆け足で紹介してきた。ゲームプレイに関するアップデートは別記事を参照してほしいが,こと技術的な部分に関していうと,Windows XP版のユーザーは少々肩すかし気味に感じるかもしれない。とはいえ,DirectX 10ネイティブ対応を謳うロスト プラネットにとって,DirectX 10ならではのエフェクト実装は非常に大きな意味があるのも確かだ。
「DirectX 10版の完成」とでもいえそうな今回のアップデート。Windows VistaでDirectX 10対応のグラフィックスカードを利用している人にとっては,待ちに待ったところといえるのではなかろうか。
ロスト プラネットで初めてSteamに触れた人は戸惑うかもしれないが,アップデートはSteamを介して自動的に行われるので,すでにインストールされているなら,8月17日を待つだけで大丈夫。GeForceファミリーのGPUを利用しているなら,ドライバのアップデートをお忘れなく。(佐々山薫郁)
- 関連タイトル:
ロスト プラネット エクストリーム コンディション
- この記事のURL:
Character Wayne by (C)Lee Byung Hun /BH Entertainment CO., LTD, RIGHTS RESERVED. (C)CAPCOM CO., LTD. 2006,2007 ALL RIGHTS RESERVED.