|
Game Developers Conference 2005現地レポートMicrosoft開発者向けカンファレンス開催 |
Microsoft Game Developer Dayのイメージイラスト。JAWSのパロディだ |
会場:Moscone West Convention Center
事前計算放射輝度伝達(PRT)技術の第一人者であるPeter Pike Sloan氏。彼がMicrosoftのDirectXチームに加わってから、DirectX SDKにPRT関連のサポートが積極的になった |
また、去年までは、「DirectX Day」という名称で開催されてきたのに対し、題字から「DirectX(あるいはDirect3D)」の文字が消えたのは、次世代WindowsであるLonghorn以降では、事実上DirectXという名前が用いられなくなる(Direct3DはWGF:Windows Graphics Foundationとなる)ということの早速の直接効果といったころか。
セッション内容は、「まさにオムニバス形式」といった感じで、「ゲームコントローラの存在意義について」といった内容から、「PIXと呼ばれるデバッギングツール」の話、最新開発スイートである「Visual Studio 2005」の紹介まで、と多岐にわたった。
もっとも、興味深かったのは最後の「The Next Step:DirectX Futures」と題された次世代DirectXのセッションだ。
■ DirectXはこれからも生き続ける
スライドでは「DirectX is Windows Graphics Foundation」という一文も掲げられ、次世代のDirectX(のDirect3D)がWGFそれ自身であることを強調した |
まず、語られたのは、「DirectXは生き続ける」という宣言めいたメッセージだ。
LonghornのグラフィックサブシステムはWGF1.0とWGF2.0で構成されることは先日レポートしたばかりだが、2004年のWinHEC以降、「Direct3DはWGFとなる」と宣言してしまったため、多くの人に「DirectXはなくなる」という誤解を与えてしまった。これを正す意味合いからこのような宣言をする羽目となったようだ。
あの「Halo2」の総データ量は4.2GB。データ量の肥大化はどこまで行くのか。Xbox2はHD DVDかBlu-Rayか。それとも現行DVDに留まるのか |
2004年は、「HalfLife2」、「Halo2」、「FarCry」、「Doom3」といった先進的なビジュアルを携えた3Dゲームが登場し、過去にないくらいの巨大なセールスを記録したが、開発期間も以前とは比べものにならないほど長期化し、開発コストも100万ドル(1億円)を超えるのが当たり前となった。
この開発コストの肥大化、長期化はゲームのデータ量にも大きな影響を与え、例えば「Halo2」はトータルで4.2GBとなり、CDメディアでは到底収まらず、まさにDVDメディアでなければならないデータ量となった。この流れはいっそう進み、次世代ゲーム機や次世代PCゲームへと継承されると見通す。具体的に「Blu-rayやHD-DVD」という次世代メディアを挙げ、ゲーム用のコンテンツデータもこうしたメディアに適合したデータ量になる……とBlythe氏は予測する。深読みすれば次世代Xboxもこうしたメディアに移行する可能性が高いということになるだろうか。
開発コストの肥大化、長期化についての特効薬はないにしても、MicrosoftのXNAフレームワークが、この症状を緩和する……というのがMicrosoftの思い描くシナリオになる。
■ ゲームにおいて、今やボトルネックとなっているのはGPUではなくCPU
ゲームはいまやCPUボトルネックの時代に突入したと宣言 |
複雑、高度化したゲームソフトの開発を推し進めていくとグラフィックスサブシステムよりも、CPUで動かすソフトウェアの方が、先にそのパフォーマンス限界に到達してしまうというのだ。
にわかには信じがたいという人も多いと思う。
現在のゲームでは「CPUがAIや物理、インターフェイス入力、その他の処理をしてGPUで描画……その繰り返し」という処理系になり、60fpsの場合ならば、GPUとCPUはほぼ並行に動作できていると仮定しても、各フレーム描画のインターバルである16.66msの間にそのAIや物理、インターフェイス入力、その他の処理を全て終えなければならない。
つまり、逆に言えば「16.66msの間にCPU担当の処理が終えていない場合、GPUがどんなに高速化されてもフレームレートは向上しない」わけで、それどころか、今や「GPUが次の描画処理をしたいのに、CPUが自分の処理が手一杯でGPUに描画させる用意ができていない」……という状況がすでに最先端ゲームでは起こってしまっているというのだ。
これを打開するための方策は2つある……とBlythe氏はいう。
CPUボトルネックを解消するための2つの法則。余談だが「all your core are belong to us」は、まさに祭り状態となった有名な日本製ゲームの間違い英語「all your base are belong to us」のパロディだ。会場からはこのスライドが出たときにクスクスと笑い声が。どのゲームか知りたい人はこのメッセージで検索してみよう |
2つは、「CPUがやってきた処理をGPUに押しつけちゃおう」というパラダイムシフトだ。わかりやすくいえば、CPUが手一杯ならば、その処理の一部をGPUにもやらせましょう……ということだ。
2005年後半に登場するATIやNVIDIAの次世代GPU、そしてXbox2などの次世代ゲーム機ではGPUのプログラマビリティがさらに向上し、ソフトウェア処理の観点からみてCPUとの機能差はなくなってくる。現在は3Dモデルの描画“前”の基本変移処理、たとえば関節を折り曲げた際のスキニングや形状変形のモーフィング処理/表情アニメーションはCPUで行なうことが多かったが、これはもはやGPUに任せることができるようになる。そして、さらにはGPUの並列性能、そして頂点バッファレンダリングや頂点テクスチャリングといった最新機能などを駆使すれば、局所的な物理処理はGPUに任せられる。
この2つの方策のうち、どちらが(あるいは両方が?)多く実際のゲームで採用されるかはわからないが、とにかくMicrosoftでは、次世代ゲーム(機)では、GPUはもちろんのこと、CPUの使い方がさらに重要となるという見通しを立てているのである。
■ “算術合成”の必要性~テクスチャは描かれたものを使うのではなくリアルタイム生成する方向へ?
現在のCPUやGPUの演算パワーとバス帯域は大きさにして示すとこんな感じ…という図 |
次世代ゲーム機の映像はハイビジョン解像度でレンダリングされることが前提となり、そのために高解像度化が余儀なくされる。具体的には従来の640×480から、1,920×1,080ドットや1,280×720ドットといった解像度に移行することを意味する。これは必然的にテクスチャの高解像度化へも結びつく。高解像度化は、メモリをより食いつぶすことにつながり、そして同時にメモリ帯域の消費にも繋がっていく。
新世代ゲームや次世代機では4,096×4,096テクセル解像度のテクスチャも当たり前のように使われる時代になると見通しが立つが、家庭用ゲーム機ではコスト的な問題からどうしても搭載メモリの容量が限定的になるため、高解像度テクスチャを好き放題使えるはずもない。またメモリ帯域はシステム全体でみんなで使い合う「限りある資源」なので、フレームバッファやテクスチャの取り扱いだけで、使い潰すわけにもいかない。
しかし、幸い、ここ数年のGPUの演算性能は素晴らしい勢いで向上してきているので、このすばらしく高性能な演算性能を駆使すれば、メモリ帯域やメモリ容量を節約していくことができるとBlythe氏は述べる。
どういうことかというと、具体的にいえば、テクスチャはあらかじめ用意された映像でなく、算術的にその都度合成してしまおうというのだ。
「プロシージャル」とは「手続き」の意。要するに計算して生成する…という意味合いになる |
これはどういうものなのか。
たとえば、木の板を表現する際、ポリゴンに木目の画像テクスチャを貼り付けるのが一番手っ取り早いが、木目の画像テクスチャが高解像度だったらメモリを多く占有するし、レンダリング解像度が高解像度だったら、多くのテクセルをテクスチャから取り出すことになり、メモリ帯域をたくさん消費してしまう。
そこで、プログラマブルシェーダで、木目を算術的に合成するプログラムを書き、関数の答えとしてポリゴンに貼り付けるテクセルを取り出せる仕組みにすれば、テクスチャをメモリに格納しておく必要性がなく、なおかつメモリ帯域も全く使わないで済む。また、この方法ならば、どんなにそのポリゴンがアップになっても、テクセルが大きく描画されてボケボケの描画になることもない。
木目の他、空の雲、植物の葉っぱ、煉瓦や岩肌といったものもフラクタル理論などを駆使して算術合成ができるといわれている。
当初は夢物語に近かったプロシージャルテクスチャの概念も、なおいっそう高性能化された今年登場のNVIDIAやATIの次世代PC用GPUや次世代ゲーム機用GPUでは、現実的に活用されていくだろうとBlythe氏は展望する。まぁ、そうならざるをえないというのが実際のところだとは思うが。
■ テッセレータはなぜWGF2.0で導入されなかったか
算術合成アプローチで、メモリ帯域やメモリ容量節約を行なえるのは、なにもテクスチャだけではない。ほかになにがあるのかといえば、それはジオメトリ構造そのものの算術生成だ。
ハイディテールな映像を作り出すには、高精細なポリゴンモデルが欠かせない。その頂点情報の格納には大量のメモリが必要であり、その頂点処理には多大なメモリ帯域が消費される。超多ポリゴンになってしまうのは、そのモデルを滑らかな曲線で構成しようとするためで、もし、この曲面が自動生成できるのであれば、3Dモデル自体は最低限の情報とその曲面を生成するための種となるパラメータだけで済み、これはメモリ使用量とメモリ帯域消費の大幅な節約になる。
この仕組みを実現するのが、WGF2.0ではその導入を見送られた「テッセレータ」だ。
テッセレータは算術的にポリゴンを自動分割する仕組みであり、関数に従ってポリゴンを分割したり、あるいは頂点テクスチャの内容に従ってポリゴンを分割して、実質的に粘土細工のように形状を変形させるような(ディスプレースメント・マッピング)ことができるユニットだ。
頂点テクスチャを組み替えるだけで任意の形状に3Dモデルを変形させることもできる。テッセレータは1つの3Dモデルから多彩なキャラクタ・バリエーションを生成する手段としても活用できる。これはメモリ占有量の節約に繋がる |
テッセレータ導入に向けての2つの方針。どちらが採択されるのか。時代の流れからしてプログラマビリティは絶対要素なので高確率で後者になると思われるが…… |
テッセレータが導入されるとLOD処理までもがGPUで処理できるようになる(かもしれない) |
現在は2パターンのテッセレータ導入形式が検討されており、それぞれ一長一短あることから、先に進めないようだ。
1つはGPUの固定機能としてテッセレータを導入するアイディアだ。丁度、今のGPUのラスタライザ(トライアングルセットアップ)ユニットのイメージのような「だれがどうやってもこうなる」ブロックとしてしまう方向性だ。これは非常に早いインプリメンテーションが可能で、仕様の標準化もたやすいが、その分汎用性や拡張性の面でマイナス面がある。
もう1つはプログラマブルシェーダのようなプログラマブル・テッセレータとするアイディアだ。こちらは汎用性や拡張性にすぐれ、テッセレータプログラムを入れ替えるだけで多様なテッセレーションに対応できる。しかし、自由度が高いだけに標準仕様が生まれにくく、最悪、結局誰にも使われないものになってしまう可能性も否定できない。
WGF2.0への導入も見送られ、なおかつこのタイミングでこうした議論を紹介することから、今年登場するNVIDIAやATIのGPUや、Xbox2などの次世代ゲーム機には、テッセレータが搭載されている可能性は低い。
ただ、その必要性は誰の目にも明かであり、近い将来、ほぼ間違いなく導入されるとみられる。その際には、視点からの距離に応じた適切なポリゴン分割がGPU側で処理されることになるため、LOD(Level of Detail;視点からの距離に応じて描画するポリゴン数を増減させる仕組み。今はCPUでやっている処理系のひとつ)をゲームエンジン側で面倒をみなくてよくなり、CPU負荷を減らす副次メリットまでもがもたらされる。
「CPUボトルネックの解消」と「GPUの演算性能を活用したメモリ帯域&使用容量節約」。とにもかくにも、この流れがMicrosoftの考える当面の次世代の形ということだ。
□Game Developers Conference(英語)のホームページ
http://www.gdconf.com/
□Game Developers Conference(日本語)のホームページ
http://japan.gdconf.com/
□Microsoftのホームページ
http://www.microsoft.com/japan/
(2005年3月9日)
[Reported by トライゼット西川善司]
GAME Watchホームページ |