x

【連載第20回】あなたとわたしのPCゲーミングライフ!!


佐藤カフジの「PCゲーミング道場」


新世代の3DグラフィックステクノロジーDirectX 11研究
「ATI Radeon HD 5x00」シリーズを使ってその実力と可能性を検証する!


色々な意味で業界の「最先端」を走る、PCゲーミングの世界。当連載では、「PCゲームをもっと楽しく!」をコンセプ トに、古今東西のPCゲームシーンを盛り上げてくれるデバイスや各種ソフトウェアに注目。単なる製品の紹介にとどまらず、競合製品との比較や、新たな活用法、果ては改造まで、 様々なアプローチでゲーマーの皆さんに有益な情報をご提供していきたい。



 ■ ようやく対応ゲームが出現し始めた「DirectX 11」

連載第20回となる今回は、Windows 7時代のPCゲーミングで標準となる3Dグラフィックステクノロジーとなる「DirectX 11」にフォーカスした情報をお届けしよう

 2009年末。まだまだPCゲームの世界はDirectX 9世代の技術が主流だ。その理由として、その後継のDirectX 10がWindows Vistaでしか動作しなかったことが挙げられる。DirectX 10を採用すれば自然とWindows XPやDirectX 9世代のハードウェアが切り捨てられるため、ターゲットプラットフォームを狭めたくないというゲーム開発者の思いから、新しい世代への技術移行を踏みとどまらせていたということだ。

 そこで救世主のごとく登場したのが、Windows 7の発売と同時にデビューしたDirectX 11だ。DirectX 11はDirectX 10と同じくWindows XPをサポートしないが、そのかわりにDirectX 9、10世代のハードウェアでも動作するという後方互換性を備えており、古いハードウェアをがらくたにせずに済む。また、DirectX 11のメインプラットフォームであるWindows 7が新世代のゲーミングOSとして主流の地位に立つことが確実視されていることから、各ゲームデベロッパーのDirectX 11移行に対する積極度は高い。

 それに加えて、さらにDirectX 11への移行を後押しする要素がある。次世代のゲーミングシーンを睨んで導入された2つの機能、高度なテッセレーション機能と、GPUでの汎用演算を可能にする「DirectCompute」機能だ。これらの機能は、これまでのゲームとこれからのゲームを決定的に分かつほどの威力がある。詳しくは本稿でご紹介していこう。

 そのDirectX 11は、Windows 7の発売を通じて一般ユーザーの手に届いてから1カ月あまりが経過した。この間、ポツポツとDirectX 11対応タイトルが登場してきた。代表的なところとしてはCodemastersの最新ラリーゲームである「Colin McRae DiRT 2」。DirectX 11に対応するために発売日を延ばし、結果的にコンシューマーゲーム機版よりも遅れて登場することになったタイトルだが、現時点でDirectX 11の効果を体験するには最適な1本である。

 というわけで今回は、ようやく遊べるタイトルが登場してきたDirectX 11に目を向けて、この新しいテクノロジーがゲーマーに何を提供してくれるのか、段階を追ってご紹介していきたい。

【DirectX 11 対応タイトル例】
Colin McRae DiRT 2S.T.A.L.K.E.R Call of PripyatBattleForge: Renegade


■ 現時点で唯一のDirectX 11完全対応ハードウェア「Radeon HD 5x00」シリーズ

「Radeon HD 5870」(手前)と「Radeon HD 5970」(奥)
5870はシングルチップ、5970はデュアルチップ構成だ
HDMI端子を6つ装備するスペシャルバージョンではこんな環境も構築できる。画面解像度7,680×3,200というモンスター

 さてDirectX 11ベースで作られたゲームを楽しむためには、OSとしてWindows VistaあるいはWindows 7、そしてDirectX 9世代以降のグラフィックスカードがあればいい。注意したいのは、それはあくまで最低限の話だということだ。DirectX 9、10世代のグラフィックスカードでも確かにDirectX 11は動作するが、DirectX 11固有のフィーチャーは無効になったり、他の機能で代替されたりするため、フルに楽しめるわけではない。

 したがって、DirectX 11の旨味を最大限に得ようと思うなら、やはりDirectX 11をフルサポートするグラフィックスカードが必須となる。現時点でそのようなグラフィックスカードは、AMD/ATIの「Radeon HD 5x00」シリーズ(5700シリーズ、5800シリーズ、5900シリーズ)が唯一の存在だ。

 10月に発売されたばかりの「Radeon HD 5x00」シリーズには現在、「Radeon HD 5850」、「同 5870」、「同 5950」といったラインナップが用意されている。このシリーズのストロングポイントは、GDDR5による抜群のメモリ帯域幅で高解像度表示での使用に強いことや、最大6画面までのマルチモニター構成を実現可能なことなどが挙げられる。

 だがやはり最大のポイントは、膨大なシェーダーユニット数による高い“計算力”だろう。シングルチップのRadeon HD 5870で1,600基にもなる「Stream Processor(AMDによるシェーダーユニットの呼称)」は、最大2.72テラフロップスという一昔前のスーパーコンピューター並みのコンピューティングパワーを提供するのだ。

 DirectX 11世代のゲームでは、ただでさえ画面の“色塗り”に忙しいGPUが、さらなる仕事としてテッセレーションやDirectComputeによる論理演算を任されるわけで、パフォーマンス面の心配は大きい。だが、Radeon HD 5x00シリーズのパワーはそれを補って余りあるものがありそうだ。だからこそAMDはいの1番に「唯一のDirectX 11対応カード」と謳って本製品をプッシュしているわけである。

 筆者は今回のDirectX 11ゲームの検証にあたって、メインストリームモデルであるRadeon HD 5870とハイエンドモデルのRadeon HD 5970を使用した。ちなみにRadeon HD 5970は、ボードサイズが30cmを超えており、筆者のいずれのPCケースにも収まらなかったため、マザーボードを取り外して検証を行なったほどだ。読者の皆さんにおかれては、Radeon HD 5x00シリーズを購入する際はPCケース内部のスペースが十分にあるかをまずご確認していただきたいと思う。いや、本当にびっくりするほどデカい……。


9月末にAMDオフィスで行なわれたRadeon HD 5800シリーズの発表会より。DirectX 11にあたって必須機能となるDirectCompute、マルチスレッド対応、テッセレーション機能などといったフィーチャーを完全サポートすることが説明された。「ATI Eyefinity」という、最大6画面に対応するマルチスクリーン機能も組み込まれている


■ DirectX 11で可能になった、新たなグラフィックスの描画手法とは?

DirectX 11のグラフィックスパイプライン概念図

 DirectX 11タイトルの紹介に入る前に、DirectX 11そのものについて見ていこう。DirectX 11の基本的な設計としては、1世代前のDirectX 10を拡張した内容になっている。3Dグラフィックスを描く際にどのような順序で処理が行なわれるか、というものをグラフィックスパイプラインと呼ぶが、そこに注目してみると、DirectX 11で追加された処理ステージがそのまま、DirectX 11における目玉機能になっていることがわかる。

 右図がグラフィックスパイプラインの概念図だ。簡略化して細部を省略しているが、各ブロックは処理ステージとデータの流れを示している。このうち、DirectX 11にて追加された処理ステージは、「ハルシェーダー」、「テッセレーター」、「ドメインシェーダー」、そして「演算シェーダー」の4つだ。順を追ってその役割と機能を紹介していこう。


・高詳細な3D形状をGPU側で生成する「テッセレーター」

「Heaven Benchmark」
実行画面。テッセレーションにより豊かなディティルを作り出す

 「ハルシェーダー」、「テッセレーター」、「ドメインシェーダー」の3つはテッセレーションのために付け加えられた処理ステージだ。テッセレーションとは、与えられた3D形状の各ポリゴンに対し、何らかのルールやデータに応じてさらに細かいポリゴンに分割して、形状の詳細度を上げる処理のことで、それを行う装置をテッセレーターという。Xbox 360やプレイステーション 3にも基本的なテッセレーターが搭載されているが、DirectX 11でサポートされるのは非常にプログラマブルで柔軟なものとなっているのが特徴だ。

 実際の処理順序としては、まずハルシェーダーで基本形状の各ポリゴンをどのように分割するか定めるパラメーターを作り(一般にはカメラ距離、画面解像度などから導かれる数値を使う)、続いて固定機能のテッセレーターで実際にポリゴンを分割する。続いて、分割されたポリゴンをドメインシェーダーにて適切に変位させ(一般にはディスプレースメントマップというテクスチャーを使う)、狙った詳細形状を導き出すという流れだ。テッセレーター自体は固定機能でGPUにハードコードされているのだが、その前後にあるハルシェーダーとドメインシェーダーがプログラマブルなので、ゲーム側の必要に応じて柔軟な処理ができるという仕組みである。

 テッセレーションのメリットは、莫大な頂点データをGPUに転送することなく、高詳細の3Dモデルを表示できることだ。これはCPUとGPUを結ぶPCI-Expressの限られたバス帯域を有効に使うため、今後のゲームシーンでは必須になると考えられている。また同時に、これまではアーティストが手作業でデータを作ることの多かったLOD処理を完全自動化でき、異なるLODモデルに切り替わる際に起こるポッピング現象も抑えられると、いいこと尽くめだ。

 この機能の効果をデモンストレーションする抜群のソフトウェアが、ロシアのデベロッパーUnigine Corpより「Heaven Benchmark」として公開されている。このベンチマークソフトではDirectX 11のテッセレーション機能を徹底的に活用しており、基礎モデルとしては単なる平面で構成された石畳が、テッセレーションにより無数のポリゴンに分割され、リアルな凹凸を構成する様子を見ることができる。建物の壁や屋根の表現も素晴らしく緻密だ。

 テッセレーションによる効果は画面写真を見てわかるとおり劇的である。ただし、「Heaven Benchmark」ではあまりにも多くの面分割を行なっているせいか、効果に比例してパフォーマンス面の犠牲が大きい。おおむね、テッセレーションありのフレームレートは、テッセレーションなしの場合に比べて半分以下になっていて、Radeon HD 5870のパワーですら、ちょっとゲームには辛い感じだ。このためフレームレートを重視する実際のゲームでは、もう少し限定的な使われ方が現実的になるだろう。


【テッセレーターなし】
こちらはテッセレーターなし、DirectX 10相当のレンダリングを行なうモードのスクリーンショット。表面には法線マップで陰影がつけられ、最低限の立体感が与えられている

【テッセレーターあり】
こちらはテッセレーターありの画面。ジオメトリ的なディティルが劇的に向上しているが、その分フレームレートの犠牲が払われる。テッセレーションを必要フレームレートに応じてスケールするようにすれば、実際のゲームでも大いに活用できそうだ


・全く新しいレンダリング手法を可能にする「DirectX演算シェーダー」

ATIによるDirectComputeを活用したデモ「Mecha Demo」。半透明描画の新しい手法を実装している
同じくATIによる「Ladybug Demo」。被写界深度効果をポストプロセス的な方法で実装している

 DirectX 11で追加されたもうひとつの機能が「DirectX Compute」。この機能はグラフィックスパイプラインに「ComputeShader(演算シェーダー)」という名前で組み込まれており、任意のデータ構造をGPU内に持って、様々な演算をレンダリング処理に組み込めるようになっている。

 極論すると、演算シェーダーの可能性は無限大だ。これまでの頂点シェーダーやピクセルシェーダーといった、目的が限定されたプログラマブル機能とは異なり、演算シェーダーは何をしようと自由なのである。ラスタライザーを無視してレンダリングターゲットにアクセスし、独自アルゴリズムでレイトレーシングをやってもいい、というほどなのだ。

 そういった自由度があるだけに、演算シェーダーを使って既存の3D表現を様々な方法で拡張することができる。ポテンシャルの一端を見ることができるのが、ATIが提供している技術デモアプリケーションだ。そのひとつ、「Mecha Demo」というデモでは、これまでプログラマーを悩ませてきた半透明ポリゴンの描画処理について、「order-independent-transparency(OIT: 描画順序に依存しない半透明描画)」という全く新しいアプローチを見ることができる。この手法では従来の半透明描画で必要とされていた「奥行き順にポリゴンをソートする」という重い処理が不要となり、高品位な半透明描画を高速に実現できる。

 もうひとつのデモ「Ladybug Demo」では、近年のゲームでよく使われる「被写界深度表現」(レンズフォーカスを再現する)のアルゴリズムに演算シェーダーを活用し、ポストプロセス的な手法で効果的な映像を作り出す方法が紹介されている。既存のゲームではレンズのボケ具合が近景、中景、遠景という段階的に変化するものが多いが、このデモでは極めてスムーズなボケ表現が実現されているのが見所だ。これらのデモはいずれもATIのダウンロードページにて入手可能だ。

 もちろん演算シェーダーの使い道はこれにとどまることなく、今後どんどん新たな活用法が発明されていくことだろう。新たなアルゴリズムが3Dグラフィックスの見た目をこれまでになく変えていく可能性を持つということで、演算シェーダーは非常にエキサイティングな機能なのだ。


【Mecha Demo】


【Ladybug Demo】



■ 現時点でDirectX 11を試せるゲームタイトル。効果のほどは?

 というわけで大変インパクトのあるDirectX 11だが、やはり実際のゲームで使われないことには意味がない。その点では、対応ゲームがなかなか出てこなかったDirectX 10に比べ、DirectX 11ではより早いペースで対応ゲームが登場しつつあるのだ。

 そもそもDirectX 10に比べ、DirectX 11は移行の容易さが格段に違う。DirectX 10のときは、ひとつ前のDirectX 9から設計が大きく変わったために移植するだけでも大変で、各デベロッパーとも大変な苦労を強いられていた。だがDirectX 11は、ひとつ前のDirectX 10とプログラミング要素が似ており、極端な話DirectX 10対応のソースコードにちょっとした置換処理をするだけでDirectX 11版が出来上がってしまうのである。

 もちろん、DirectX 11で導入された新規要素を活用するためにはそれなりの開発努力が必要になる。そのため一言に「DirectX 11対応!」といっても、単にDirectX10のプログラムをDirectX 11用にビルドしただけなのか、それとも新規要素をふんだんに利用しているのか、触ってみないことにはわからない。特に現段階ではタイトルによってその内容に大きなバラツキが出てきそうだ。そのことを確認するべく、現在リリースされているDirectX 11対応ゲームタイトルの様子を見てみよう。


・初のDirectX 11本格対応タイトル「Colin McRae DiRT 2」

「DiRT 2」。素晴らしいクオリティのオフロードレースゲームだ
水面の波打ちがリアルに表現される
旗とか群集といったものは、高速で流れていく風景の一部にすぎないため、違いがよくわからないのが正直な感想

 プレイステーション 3とXbox 360版に遅れること数カ月。Codemastersより12月5日にリリースされたPC版「Colin McRae DiRT 2」は、DirectX 11に対応するためだけに当初予定よりも発売を延期したという経緯がある。その甲斐あって本作には、DirectX 11を活用したいくつかの機能が盛り込まれている。

 CodemastersがYouTubeで公開している技術デモ動画によれば、本作のDirectX 11版で実装されている機能は「Cloth Tessellation(布のテッセレーション)」、「Hardware Instanced Tessellated Croud(ハードウェアで増殖させた、テッセレーションを施された群集)」、「Tessellated Water(テッセレーションされた水面)」、「Enhanced Lighting and Post Processing(向上したライティングとポストプロセッシング)」というふうになっている。

 やはりテッセレーションの活用が中心になっているようだが、見た目の違いとして大きいのは水面の表現だ。DirectX 10モードでは平面テクスチャに波動シミュレーションを施したノーマルマップを貼り付けているという感じになっているところ、DirectX 11で動作させると、テッセレーターにより水面が細かいグリッドに分割され、そこに波動シミュレーションによるディスプレースメントマッピングを適用し、ジオメトリ的な凹凸を与える、という作りになっている。要するに水面がきちんと立体的にざわめくというわけだ。

 残念ながら布のテッセレーション(旗に使われている)、群集のテッセレーション(人々がハイポリゴンになる)あたりは、ゲーム的に大きく表示されることがほとんどないため、言われて良く見てギリギリわかるくらいの違いでしかない。最後のライティングとポストプロセッシングの向上については、被写界深度表現、反射光の溢れといった質感に違いを見ることができる。こちらも言われてみないと気づかないレベルだが、実際プレイしてみるとゲーム画面から伝わってくる違いはしっかりと感じられ、一定の効果がある。

 ちなみに本作をDirectX 11で動作させた場合と、そうでない場合のフレームレートはほぼ同等程度。パフォーマンス上の犠牲を払うことなくDirectX 11による表現を導入した点は高く評価できる。なぜならレースゲームでフレームレートが低下することは、即ゲーム性の低下につながるからだ。さすがはレースゲームの老舗Codemasters。大事なところはきちんと守っているわけである。


【Colin McRae DiRT 2】
上段がDirectX 10ハードウェア(GeForce GTX 285)によるスクリーンショットで、下段がDirectX 11ハードウェア(Radeon HD 5870)によるスクリーンショット。水面表現、ライティング効果、被写界深度表現といった面で違いを感じることができる。DirectX 11で導入された各種エフェクトによるフレームレート低下などの弊害はほぼ見られず、画質の向上分だけオトクという内容だ


・「S.T.A.L.K.E.R Call of Pripyat」

DirectX 11対応のベンチマークが公開されている。製品版はいまのところ欧州の一部でリリースされているが、日本では入手困難。北米版のリリースを待ちたい
実行中の様子。筆者環境でフレームレートは30~60をキープ

 ウクライナのGSC Game Worldが開発する「S.T.A.L.K.E.R」シリーズの最新作、「Call of Pripyat」はDirectX 11に完全対応するのがひとつのウリになっているタイトルだ。現時点ではヨーロッパのいくつかの地域で発売しているものの、北米を含む他の地域では2010年2月の発売が予定されている。今回はパッケージ版を入手することが叶わなかったので、DirectX 11のパフォーマンスを見ることのできるベンチマークデモにて動作を確認した。

 本作のDirectX 11対応については、テッセレーションを多用していると伝えられている。だが、ベンチマークデモ版においては違いのわかるシーンが含まれておらず、DirectX 11モードとDirectX 10モードにおける描画品質の違いはほとんど感じられない。よく見てわかる違いとしては、DirectX 11では影のエッジが距離に応じて柔らかくなる表現(半影)が取り入れられている、という程度だ。

 このベンチーマークでは体感することができないのだが、肝心のテッセレーションは製品版のキャラクターモデルに適用されている。ただ、元のキャラクターモデルが十分に高詳細であることから、ビジュアル的なインパクトはいまひとつであるようだ。それにもかかわらず、テッセレーション使用時は非使用時に比べてフレームレートが半分程度に下がるといい、パフォーマンス面で大きな犠牲が払われてしまうようだ。

 DirectX 11自体、リリースされて間もない技術であるだけに、対応ゲームでの応用効果が限定的になるのは致し方ないところなのかもしれない。ひとまずは「間違い探しレベル」以上の違いを見せ付けられるゲームが出てきてほしいものだ。


【Call of Pripyat Benchmark】
上段はDirectX 10でのスクリーンショット、下段はDirectX 11でのスクリーンショット。風景を中心としたベンチマークデモでは画質的な違いはほぼ感じられない


・「BattleForge: Renegade」

「BattleForge」。クリーチャーを召喚できるカードでデッキを作り、オンラインで対戦・協力プレイをするという基本プレイ無料のオンラインゲームだ。グラフィックスはあまり凝っておらず、旧世代のPCでもグリグリ動く

 最後にご紹介する「Battle Forge: Renegade」は、米Electronic Artsがサービスを行なうオンラインのカードゲーム+リアルタイムストラテジーゲーム。基本プレイ料金無料というタイトルであり、英語さえ苦にならなければ日本からもプレイに参加することができる。

 その無料で遊べるゲームである本作がDirectX 11に対応した、というので実際に試してみたのだが、結論から先に言うと何がどうDirectX 11に対応しているのかよくわからなかった。本作のゲームタイプは「WarCraft III」のような見下ろし型のストラテジーゲームであり、ごらんのとおりグラフィックス的にはそれほど凝っている感じはない。

 一応、ゲーム中のレンダリングオプションで「DirectX 9」、「DirectX 10」、「DirectX 11」のレンダラーを切り替えることができるものの、映像面に現われる違いは全くないか、ほぼない。はっきりしない言い方をするのも、本作がDirectX 11で具体的に何をしているのか、技術的な情報がないためだ。各モードでフレームレートの劇的な違いなども確認できなかったため、特に「DirectX 11だからこうだ」といったインプレッションを持つことができなかった。

 DirectX 11対応とはいえ得にグラフィックスに凝らないゲームがあってもおかしくはない。DirectX 11の目玉であるDirectComputeは、グラフィックスだけでなくAIやその他の処理にも応用できる、極めて汎用的な技術だからだ。それが「BattleForge」で試みられているかどうかは別にして。


「BattleForge」のゲームそのものは、カードゲームとストラテジーゲームの良いとこどりという興味深い内容に仕上がっている。現時点で日本語版のサービスは行なわれておらず、その予定もないようだが、英語に抵抗がなければhttp://www.battleforge.com/en/home/にアクセスしてプレイしてみよう


■ 高いポテンシャルを秘めるDirectX 11。だが現時点での活用は限定的
  個性的な応用を見せてくれるゲームタイトルを期待

 まとめとしてはDirectX 11によってもたらされた2大機能であるテッセレーションとDirectComputeは、現時点ではプレーヤーに明確な違いを見せるほどには活用されていない、というのが冷静な見方といえるだろう。

 気がかりなのは、テッセレーションを多用した際の負荷が高すぎることだ。Radeon HD 5870のパワーをもってしても、かなりのフレームレート低下が見られるというのが実情で、快適なプレイに足りるパフォーマンスを維持するためには「DiRT 2」のように極めて限定的な使用にとどめるか、あるいは他のタイトルのように全く使用しないという選択肢しかなさそうだ。

 となればまず、本当に面白い応用はDirectComputeの方でまず見られるのではないだろうか。前述したように、DirectComputeは非常に柔軟な技術だ。グラフィックスの描画手法を従来よりも高速化したり、根本的なレベルで変える力も秘めているし、あるいはグラフィックス以外の面、例えばAIなどに応用するという可能性も十分にある(ある種のAIアルゴリズムはGPU上で高速に実行できる)。

 だがあくまで、そういった応用を考えるのはゲームデベロッパーの仕事であり、ゲーム体験に寄与する使い方を見つけるためには研究の蓄積が必要だ。そのためには時間もかかるだろう。期が熟すのは半年後か1年後か、いずれにしてもまだもうしばらく時間が必要そうだ。

 ひとまず現時点では、PCゲームファンがあわててDirectX 11対応タイトル狙いでRadeon HD 5x00シリーズを購入する必然性は薄い。ただし、パフォーマンス的には非常に優れており、なおかつDirectX 9から11までフルカバーしているため、グラフィックスカードの買い換えを考えている向きには当然有力な選択肢のひとつとなるだろう。

 今後、DirectX 11が3DグラフィックスAPIとして主流になるかどうかは対応タイトル次第というところがあるが、AMD最大のライバルであるNVIDIAは、2010年にDirectX 11世代のGPU「Fermi」の投入を予定している。NVIDIAの新しいアーキテクチャーを使ったグラフィックスカードでは、テッセレーションのパフォーマンスなどで違った傾向が見られるかもしれないし、両者による競合が起これば、対応タイトルも自然と充実してくるだろう。筆者としては、来年以降のタイトルのより一層の充実に期待したいところだ。



(2009年 12月 22日)

[Reported by 佐藤カフジ ]