【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

Game Developers Conference 2007現地レポート

西川善司の3Dゲームファンのための「次世代DirectX」講座
~GDC2007特別編~「DirectX 10.1」はどうなる?

「Microsoft Developer Day」の様子
3月5~9日開催

会場:Moscone Convention Center

 1月末、ついにWindows Vistaがリリースされ、DirectX10(Direct3D10)も同時にリリースとなった。こうして、PCのリアルタイム3Dグラフィックスの世界は、Direct3D 10世代、プログラマブルシェーダ4.0(Shader Model.4.0:SM4.0)の時代に突入したわけだが、GDC 2007の会期中に行なわれたスペシャルセッションコースの「Microsoft Developer Day」では早くも「DirectX 10.1」の仕様や、その先の「DirectX11」の姿までが語られることとなった。まずは「DirectX 10.1」の姿についてレポートしたい。


■ DirectX 10.1の基本コンセプト

 まず、DirectX 10.1の登場時期だが、これは現時点では未定。ただし、プラスされるバージョン番号が「0.1」ということからもわかるようにマイナーチェンジ版となり、間違いなくWindows Vista時代の間に提供が行なわれる。そのアップグレード方針としては

(1)さらなる映像品質の向上
(2)柔軟性の向上

 を掲げている。(1)は、そのリアルタイム生成3Dグラフィックスを、より実写ハイビジョン映像に近づけ、最近のハリウッドクラスのフルCGムービーに近づけられるようにするための機能向上に相当するという。Boyd氏はこれについて「CG映画の『シュレック』程度のクオリティにまではしたい」と補足している。(2)は、(大部改善されたが)まだ、依然と残されているプログラマビリティ面に関する制限の撤廃を指している。

DirectX 10.1のシナリオ DirectX 10.1の機能拡張方針


 それでは、具体的にどのような機能が実装されるのかを見ていくことにする。なお、まだ構想レベルであり、具体なプランとなっていない点には留意して頂きたい。

マイクロソフト、ソフトウェアアーキテクト、Windowsグラフィックス、Chas Boyd氏。同氏は3年ほど前、マイクロソフトを退社して自身のゲームスタジオ設立などを行なっていたが、最近、マイクロソフトの同一ポジションに復職した



■ マルチサンプル・アンチ・エリアシングをプログラマブル・アンチエイリアシングに拡張する

ちなみに、昨年のGeForce8800シリーズの発表会にて、NVIDIAは、この「プログラマブル・アンチエイリアシング」の必要性に懐疑的な意見を述べていたために、実際の仕様についてはこの先、二転三転する可能性がある
 最新GPUはローエンドモデルでさえもアンチエイリアス機能としてMSAAがサポートされている。“MSAA”は“Multi-Sampled Anti-Aliasing”の略。MSAAは1つのピクセルシェーダからの出力カラーを、アンチエイリアス処理に用いる全てのサブピクセルのカラーとして共有してしまう、いわば妥協型アンチエイリアス処理。

 例えば「4x MSAA」といった場合の“4x” MSAAでは1つのピクセルシェーダの出力カラーを“4”つのサブピクセルカラーとして扱ってしまい、深度値の処理などはちゃんと“4”サブピクセル分で処理する。負荷の高いピクセルシェーダの駆動を妥協しながら、ジャギーだけはそれなりに低減できる……という、現代のリアルタイム3Dグラフィックスのアンチエイリアス技術としてはデファクトスタンダード的なテクノロジーだ。

 DirectX 10.1ではこのMSAAにおいて、4xまでのサポートを最低要件とし、このMSAA処理の際のサブピクセルのサンプル位置をシェーダから任意設定できる仕組みを導入する。また、どのサンプル位置からの情報を起用するか、また、そのサンプル手法などもシェーダプログラムから制御できるようにする。これは、以前言われていた「プログラマブル・アンチエイリアシング」の概念に相当するものだ。


■ ブレンディング機能の強化

int16バッファはDirectX9.0世代から存在したバッファで、「HalfLife2」などが活用したこともある。未だにそのブレンディングのサポートがなされていないというのがむしろ驚き?
 DirectX 10では、シングルパスで最大8枚のバッファへの同時レンダリング(MRT:Multi-Rendering Target)が可能となった(DirectX9では4枚)。このMRTにより生成した各バッファ同士の合成(ブレンディング:Blending)手法を個別に設定できるような仕組みをDirectX 10.1には取り入れたいという。

 また、様々なフォーマットのバッファがレンダーターゲットとして利用できるようになったDirectX 10だが、比較的負荷も軽くダイナミックレンジも高い16ビット整数バッファ(int16バッファ)のブレンディングがやっとサポートされる。


■ DirectX 10.1、その他の拡張要素

キューブマップの階層構造の導入
 複数のテクスチャを配列構造として扱う仕組みはDirectX 10でも導入されている。例えば6枚のテクスチャ配列をキューブマップ(6面体構造のテクスチャ。全方位の環境マップテクスチャなどとして活用することが多い)として定義するといった活用ができるわけだが、DirectX 10.1では、これをさらに拡張して、キューブマップ自体を配列構造に定義できるような仕組みを導入する。

 言うなれば「テクスチャ配列の階層構造のサポート」を行なうということだ。

DirectX 10.1ではマイナーレベルの機能拡張が中心に行なわれる予定
 冒頭で記した(2)柔軟性の向上に関係した、プログラマビリティの向上に関連したマイナーレベルの拡張もいろいろと図られる。1つは各シェーダで取り扱えるベクタレジスタの量を順当に増加させるというもの。HLSLのような高級シェーダ言語でのプログラミングが大前提の今世代ではプログラマレベルではあまり気にする必要のない要素なのだが、内部的に向上した方がパフォーマンス的には有利になるし、組み込み系など、一部の用途では未だにシェーダをアセンブリで書くケースなどもあるので、そうした用途においてはダイレクトにプログラマビリティの向上へと繋がる。

 この他、現在は16ビット浮動小数点(FP16)テクスチャまでしか対応していないテクスチャフィルタリングを、DirectX 10.1では32ビット浮動小数点テクスチャ(FP32)まで、サポートを拡張する。また、CPU命令セットに近い多様な命令や、より高い演算精度に対応させる計画もほのめかされた。特に天文学などの科学技術計算では平常的に活用される、倍精度の64ビット浮動小数点(FP64)のGPUでのサポートは比較的強めなリクエストが多方面からなされているようだ。


■ DirectX 10.1の位置付け

 DirectX 10.1は基本的には、DirectX 10のリファイン版という位置づけになり、開発者にとっても、アプリケーションユーザーにとっても、大きな混乱はないはずだ。DirectX 10での実装が間に合わなかった部分についての遅ればせながらのフルスペック実装がDirectX 10.1という風に考えて問題ない。

 今回のセッションで多くは語られなかったが、Windows Vistaには新しいドライバモデルとしてWDDM(Windows Display Driver Model)が提供されている。これはGPUの仮想化を実現するものだが、DirectX 10.1では、この仮想化もさらに推し進められ、現行のWDDM1.0/2.0から2.1へとアップデートされる。1.0と2.0の違いはGPUのマルチスレッディングをノンプリエンプティブな次元(各スレッドが自発的にスレッド切換を行なう)で実現するか、プリエンプティブな次元(ハードウェア的にコンテクストスイッチが行なわれ、時分割実行が行なわれる)で実現するかの違いに相当する。DirectX 10.1からサポートされるWDDM2.1では、このプリエンプティブなマルチスレッディングの粒度をより細かくするもので、グラフィックス以外の用途にGPUを活用するGPGPU用途と、グラフィックス処理とをスムーズに並行実行することに、より現実味が高まることになる。

 今後、GPUは、AMDなどが計画しているCPUとの統合計画などもあるため、その動向は激しく動くことが予想されているが、少なくともDirectX 10.1の時代までは、現行テクノロジーの順当な進化が行なわれると見ていい。なお、今回のGDC 2007のタイミングで、AMD(ATI)は新RADEON(X2800と仮称されている)を発表する予定であったが、これが正式に延期となった。GDC 2007のスポンサードセッションでは、この新RADEONに関連したセッションも予定されていたのだが、実際に足を運んでみると「キャンセル」されてしまっていた。

 筆者の掴んでいる情報では、新RADEONの発表は、4月下旬以降になるということで、パフォーマンス的には競合GeForce8800シリーズのパフォーマンスを大きく上回るモンスターになるらしい。ただし、NVIDIA側は、これに合わせてGeForce8800シリーズのマイナーチェンジ・パフォーマンスアップ版(8900?)をカウンターパンチとして用意していると聞く。DirectX 10世代GPUのATI対NVIDIAの直接対決は、GDC 2007ではなく、もう少し先のことになりそうだ。こうした現状を考えるとDirectX 10.1の登場はさらに先のことになることだろう。

□Game Developers Conference(英語)のホームページ
http://www.gdconf.com/
□Game Developers Conference(日本語)のホームページ
http://japan.gdconf.com/
□関連情報
【3月7日】サンフランシスコにてGame Developers Conference 2007が開催
史上最大規模での開催。任天堂とSCEのキーノートに期待
http://game.watch.impress.co.jp/docs/20070306/gdc2007.htm
【2006年3月22日】Game Developers Conference 2006がサンノゼにて開催
任天堂、SCEの基調講演と日本人セッションに注目
http://game.watch.impress.co.jp/docs/20060322/gdc2006.htm
【2006年3月】Game Developers Conference 2006 記事リンク集
http://game.watch.impress.co.jp/docs/20060324/gdclink.htm

(2007年3月9日)

[Reported by トライゼット西川善司]



Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c)2007 Impress Watch Corporation, an Impress Group company. All rights reserved.