ディジタルメディアプロフェッショナル(本社: 東京都武蔵野市、代表取締役C.E.O. 山本達夫、以下DMP)は、任天堂の新携帯ゲーム機「ニンテンドー3DS」に同社の3DグラフィックスIPコア「PICA200」が採用されたことを発表した。
非プログラマブルシェーダアーキテクチャを採用するPICA200の利点とは?
PICA200は、元々は「ULTRAY2000」として発表されたGPUコアアーキテクチャがベースになっており、ULTRAY2000を携帯機器向けに機能面でシェイプアップしたものがPICA200だ。
PICA200の基準仕様はOpenGL/ES1.1ベースであり、これは、PCでいうところのDirectX6~7世代のGPUと同世代程度の機能と言うことになる。しかし、PICA200では、OpenGL ES 1.1がサポートする基本機能に加え、1.1拡張パック(1.1 Extension Pack)がサポートする拡張グラフィックス機能にも対応する。拡張パックとはOpenGL ESの仕様を策定するKhronosグループが"準"標準としてサポートする機能だ。
PICA200では、これに加えてさらにDMPオリジナルの独自グラフィックス機能であるDMP拡張機能も提供される。この拡張機能部分には「MAESTRO」という名前が付けられており、ここが、いわゆる、高度なグラフィックス表現のライブラリ部分になっている。
GPUのモダンな進化の方向性は、プログラマブルシェーダアーキテクチャの採用だったはず。しかし、PICA200では、プログラマブルシェーダには対応せず、ハードウェアベースの固定機能シェーダエフェクトを充実化させるアプローチでGPUの機能を増築していくアプローチをとっている。これは時代に逆行しているように見えるかも知れない。
プログラマブルシェーダは3Dグラフィックスの様々な処理系をソフトウェア実装することができる自由度を得た反面、GPUコアにCPU並の高度なソフトウェア実効ロジックを実装する必要が出てきてしまい、そのために要求トランジスタ数が増え、消費電力と発熱量が増加してしまう。
汎用、あるいは多目的な3Dグラフィックス処理においては、このアーキテクチャは強力だが、用途が限定している場合には、オーバースペックなものになってしまう。
特に携帯機器、組み込み用途では、必要な機能はそれほど多くはない。そこで、求められる用途に応じて、GPUに必要なハードウェア機能を増減させて提供するようにしたのがPICA200というソリューションだ。
ニンテンドー3DSの場合は、ゲーム機なので、多様なグラフィックス表現が求められる。よって、本来であればプログラマブルシェーダアーキテクチャの方が、開発側の立場からすれば表現自由度が高くなる分、歓迎されるはずだ。
しかし、携帯ゲーム機としての熱設計予算、消費電力予算を先出しにしてスペックを詰めていった場合、プログラマブルシェーダアーキテクチャを採用するよりは、ゲーム表現に必要な定番機能をハードウェア実装で最適化した固定機能シェーダで整備した方がトータルな表現力が高くなる……と判断されたのだろう。
ちなみに、直前まで3DSへの採用のウワサがあったNVIDIAの「Tegra 2」は、GeForce 7300系コアをベースにした、プログラマブルシェーダアーキテクチャベースの組み込み機器向けGPUであった。
なお、PICA200はIPコアなので、クライアントの意向で仕様を決められる。つまり、ニンテンドー3DSの場合は、任天堂の意向で、MAESTRO部分のスペック(機能ラインナップ)を色々と決められるのだ。
筆者が2006年取材した当時の第二世代MAESTRO(MAESTRO-2G)では、既に映り込み表現を行うための環境マップ、微細凹凸表現を行うための法線マップ、ソフトシャドウ機能、そして素材テクスチャを算術合成するためのプロシージャルテクスチャ生成機能までがラインナップされていた。また、DirectX 11でやっと搭載されたテッセレーションステージも、MAESTRO-2Gには実装されており、非プログラマブルシェーダアーキテクチャとは言っても、GPUそれ自身の表現能力はかなり高いモノを持っていた。
任天堂が3DSのために、DMPが抱えるMAESTROの機能メニューからどのような表現をオーダーしたかは現時点では不明だが、今後、徐々に明らかになっていくことだろう。
(トライゼット西川善司)