家庭用ゲーム機の世界では、2005年末にマイクロソフトから同社の二世代目のゲーム機である「Xbox 360」が発売される。グラフィックステクノロジー的にはDirectX 9世代/SM3.0対応。そして、詳細は後述するが、Xbox 360-GPU(Xenos)は世界初の統合型シェーダアーキテクチャを採用しているのが特徴であった。Xbox 360-GPUはATI製で、意外なことに、同時期にATIがPC向けに発表したRadeon X1800シリーズとは設計が全く異なっている点が興味深い。ちなみに前出のVTF機能はRadeon X1x00シリーズ全体で未対応だが、Xbox 360-GPUの方は対応していた。

マイクロソフト「Xbox 360」

Xbox 360用ゲームソフト「Gears of War」(2006年、Microsoft)より。リアルタイム3Dゲームグラフィックスはここまで来た
Gears of War and the Crimson Omen are either registered trademarks or trademarks of Epic Games, Inc. in the United States and/or other countries. All rights reserved. (C)2007 Microsoft Corporation. All Rights reserved. Microsoft, the Microsoft Game Studios logo, Xbox, Xbox360, the Xbox logos, Xbox Live and the Xbox Live Logo are either registered trademarks or trademarks of Microsoft Corporation in the United States and /or other countries.

2006年末には、ソニーからも新ゲーム機である「プレイステーション3」(PS3)が発売される。PS3のGPUはNVIDIAが設計を担当し(製造はソニー他)、「RSX」という専用名称が与えられたが、基本設計はGeForce 7800シリーズとほぼ同一で、グラフィックステクノロジー的には競合Xbox 360と同世代のDirectX 9世代/SM3.0対応であった。

ソニー「プレイステーション3」

「MotorStorm」(SCE Europe)。グラフィックスだけでなく、物理シミュレーションのリアリティの高さも期待されたPS3のゲーム
MotorStorm TM (C)2006 Sony Computer Entertainment Europe. Published by Sony Computer Entertainment Inc. Developed by Evolution Studios. MotorStorm is a trademark of Sony Computer Entertainment Europe. All rights reserved.

新世代ゲーム機戦争では「Xbox 360対PS3」というの構図があったわけだが、実はさりげなく、ここでも「ATI対NVIDIA」の戦いが展開されていたのだ。いずれにせよ、二大最新ゲーム機のグラフィックスは共にプログラマブルシェーダ3.0アーキテクチャベースとなり、PCもゲーム機もSM3.0時代に突入したことになる。

なお、ゲームプラットフォームのもう一つの雄、任天堂は新世代ゲーム機として「wii」を投入するがグラフィックステクノロジー的には進化をほぼ断念する方針を採択した。

2007年~プログラマブルシェーダ4.0とDirectX 10時代の始まり

1年おきにDirectXのバージョン番号が更新されていた1990年代後期と異なり、DirectX 9は2002年から4年間、ほぼWindows XPのライフタイムの全体を占めることとなった。2006年後期にはATIがCPUメーカーのAMDに買収されるという事件が起きるが、振り返ってみれば、2000年以降のリアルタイム3Dグラフィックスの歴史は、実質的には「ATI対NVIDIA」の戦いの歴史だったといっていいだろう。

2007年、年が明けて早々にマイクロソフトは新しいOS「Windows Vista」を発表。これと同期して、新しいDirectXである「DirectX 10」が足かけ5年ぶりにリリースされる。

DirectX 10では、プログラマブルシェーダのバージョンは4.0に対応することとなった。

SM4.0では、SM3.0に対してさらなる命令セットの拡充が行われている。具体的には整数演算命令、二進論理演算命令などが追加され、よりCPU的な汎用プログラミングが行えるような機能強化が行われている。また、命令セット的には頂点シェーダとピクセルシェーダとの格差がなくなり、これをマイクロソフトは「コモンシェーダ」(common:共有型/汎用型)アーキテクチャと呼んでいる。

SM3.0とSM4.0の比較

同時テクスチャアクセス数もSM3.0時の16からSM4.0では128へと拡張されており、共通指数項Eを持つ新しいテクスチャフォーマットRGBE形式もサポートされ、リアルタイム(ゲーム)向きな低負荷なHDRレンダリングを可能としている。

そしてDirectX 10/SM4.0において最大のトピックといえるのが第三のプログラマブルシェーダ「ジオメトリシェーダ」(Geometry Shader)の新設だ。

これまで頂点次元のことを「ジオメトリ」と呼ぶことも多かったので、「ジオメトリシェーダ」は「頂点シェーダ」と同義に聞こえてしまいそうだが、頂点シェーダとは別のものになる。ただし、「取り扱う情報は頂点次元」という点においては頂点シェーダと同じだ。

ジオメトリシェーダの役割はプログラマブルに頂点を増減すること。正確には線分、ポリゴン、パーティクルのようなプリミティブ(Primitive)の増減までが行える。

そして頂点処理フェーズにジオメトリシェーダが追加されたことに呼応する形で、頂点シェーダやジオメトリシェーダの出力をビデオメモリ側に書き戻すメモリ出力機能「ストリーム出力」(Stream Output)の仕組みも新設されている。これにより、頂点処理フェーズにおいて「頂点シェーダ→ジオメトリシェーダ→頂点シェーダ……」というような再帰的な処理が可能となった。

ジオメトリシェーダとストリーム出力の組み合わせは、高度な3Dモデルの変形加工を可能にするに留まらず、GPUをCPU的な汎用処理目的で活用するGPGPU(General Purpose GPU)用途にも有用だとされ、その幅広い応用が期待されている。

DirectX 9/SM3.0におけるレンダリングパイプライン

DirectX 10/SM4.0におけるレンダリングパイプライン

(トライゼット西川善司)