DirectX 10世代GPUの仕様公開!「GDC 2003」スペシャルレポート #1 | - 03/06 19:22 |
||||||||||
|
Text & Photo by トライゼット 西川善司 ■DirectX 10時代のGPUの仕様が明らかに 米国現地時間3月4日より,サンノゼで開幕した「GDC 2003」(Game Developer's Conference 2003)の「Advanced Visual Effects with Direct3D」のセッション内で,次期DirectX 10世代GPUの仕様の一部が明らかにされた。 ■「プログラマブル頂点シェーダ3.0」の仕様 まずは,この日公開された「プログラマブル頂点シェーダ3.0」の仕様をザッとご覧いただこう。 ・プログラムに利用できる命令数(≒プログラム容量)が,DirectX 9世代GPUの2倍となる512命令(以上)に拡張される。 ・GeForce FXのプログラマブル頂点シェーダ2.0+でサポートされている"頂点座標要素入れ替え","条件付き書き込みマスク","サブルーチンコール","条件分岐"などがすべて標準仕様として採り込まれる。 ・比較構文とプログラマブルな条件付き書き込み構文がサポートされ,より高度で構造的な頂点シェーダプログラムが実現可能となる。 上記の仕様はもちろんだが,中でも特に注目したいのが「プログラマブル頂点シェーダでテクスチャにアクセスできるようになる」という点だ。 DirectX 9世代GPUのRADEON9500/9700でも"凹凸を表現した頂点テクスチャ"をポリゴンに貼り付ける「頂点テクスチャマッピング」と呼ばれるテクノロジー,別名ディスプレースメントマッピング(D−MAP)をサポートしているが,DirectX 10世代GPUではこれをさらに進化させ,このプロセスをプログラマブルに実行する手段を提供する。より具体的にいえば,3Dオブジェクトの変形や加工を頂点シェーダによって自在に制御できるということだ。また,これまでゲームエンジンとしてCPU側で行っていた動的LOD(Level of Detail:視点からの距離に応じて3Dモデルのディテールを調整する技術)をGPU側でアクセラレートする機能が提供されることにもなる。 このように頂点シェーダ,ピクセルシェーダの区別なくテクスチャへのアクセスを可能にするアプローチは,さらに先の世代のGPUで実現されるといわれている"頂点シェーダとピクセルシェーダの仕様統合"へ向けての布石だといえる。 さて,「頂点テクスチャマッピング(D−MAP)」がDirectX 10世代GPUでサポートされるということは,DirectX 10世代GPUでも適応型テッセレータ(ポリゴンを状況に応じて分割するユニット)がDirectX 9から引き続きサポートされる(あるいは頂点シェーダユニットに適応型テッセレータが統合吸収される)ことを意味する。 ■プログラマブルピクセルシェーダの仕様 前述の通りプログラム容量は,DirectX 9世代GPUでは96命令だったのが,DirectX10世代では「最低でも512命令」と大幅に拡張される。また現行のDirectX 9世代GPUでは不可,あるいは限定的だった条件分岐命令などがサポートされ,頂点シェーダプログラム並みの構造的なピクセルシェーダプログラムが実現できるようになる。そしてGeForce FXなどではすでにサポートされている,"演算結果要素の自由な入れ替え"も標準仕様として導入されることとなったのだ。 また,より高度な陰影処理ができるように,トライアングル(ラスタライズ)セットアップ部から「面の向き(vFace)」や「画面上のXY座標(vPos.xy)」をピクセルシェーダが得られるようになる(写真中央)。木の葉や紙切れなどの"閉じていない"ポリゴンモデルの裏と表で光源処理やテクスチャリングを切り替える,などといったことが,より楽に行えるようになるわけだ。 フィルタリングやアンチエイリアス,テクセルの取り出し等のサンプリング処理の技法には「重心サンプリング」という新しい概念も導入される。これは「サンプリング対象領域の"重心"ともいえる適切な場所から代表値を取り出す機能」……と説明されたが,詳しい技法については解説されなかった。 プログラマブルピクセルシェーダ3.0の仕様に関しては,全体的にGeForce FXのプログラマブルピクセルシェーダ2.0+の仕様を標準化したようなイメージがある。 一方,プログラマブル頂点シェーダ3.0の仕様もおおむねの拡張方針は,GeForce FXの2.0+をベースにしているといっていいが,「頂点テクスチャをサポートする」(D−MAPをサポートする)ということから考えると,むしろRADEON9700系の発展型である,といったほうが適切かもしれない。 RADEON9500/9700では,すでに適応型テッセレータを搭載していることもあり,RADEONがDirectX 10世代になっても,この機能はなんのためらいもなく実装されることだろう。問題は将来のNVIDIA,GeForceファミリーがどうなるか,だ。 現行(?)のGeForce FXは,適応型テッセレータユニットを搭載しておらず,そしてディスプレースメントマッピングをサポートしていないのだ。NVIDIAは,GeForce FXのプログラマブルシェーダのポテンシャルを用いれば,同じ機能をシェーダプログラムで実現できると説明したことがあるが,その実例は未だに示されていない。 DirectX 10世代GPUとなる次期GeForce,NV35やNV40では,このフィーチャーにどのような形で対応してくるのかが注目される。 ---------------- さて今回印象的だったのが,このセッション内で示されたプレゼンテーションがすべて,マイクロソフトキャンパスに勤務するNVIDIA技術者とATI技術者の連名となっていた点だ。「NVIDIAの技術者が発表しているときに,その関連デモをATIの技術者がRADEON9700で動かす」といったような感動的な(?)シーンも見られ,世間で言われるところの「ATI対NVIDIA」の殺伐とした雰囲気を一切感じさせないほほえましいムードに包まれていたのがおかしかった。 ところで,その技術者同士が見せる仲むつまじさとは反対に,ATIは,GDC開幕日の翌日3月5日,「ATIが(NVIDIAを)ノックアウトする会」という"意味深な"新製品発表会を開いた。ここでは三つの新しいGPUが発表されている。この発表会の模様は追ってレポートする予定だ。(トライゼット 西川善司) (写真左)今日行われたすべのセッションが,このようにNVIDIA,ATI技術者の連名だった。ライバル同士が仲良く発表する光景は,ある意味,異様!? (写真中央)頂点シェーダユニットの出力フォーマットは,頂点シェーダ2.0では固定仕様だったが,3.0ではカスタマイズ可能となる (写真右)「GDC2003」の会場となったサンノゼコンベンションセンター |