後藤弘茂のWeekly海外ニュース

SCEIがPlayStation 3にOpenGL ES 2.0採用か




●SCEIがOpenGL ESを策定するKhronosに参加

Khronos GroupのNeil Trevett氏

 「ソニーはPlayStation 3にOpenGL ES 2.0を使うだろう。これは大きな変化だ。ソニーは伝統的に、彼ら独自のAPIを使ってきた。今回が、初めてのスタンダードAPIの採用となるだろう」と語るのはOpenGL ESを策定するKhronos Group(クロノス・グループ)のNeil Trevett氏(President, Khronos Group; Chairman, OpenGL ES Working Group; Senior Vice President, Market Development, 3Dlabs)。

 業界団体Khronosは、OpenGLの組み込み機器向け規格である「OpenGL ES」を昨年策定。OpenGL ES規格の発展の普及に務めてきた。Trevett氏は、そのOpenGL ESにとって、現在最も興味深い動きは、ソニー・コンピュータエンタテインメント(SCEI)がKhronosのContributing Membersに参加したことだと言う。

 「Microsoftは、PCとXBOXの(API)の親和性によって利益を得た。それがMicrosoftの最大のアドバンテージだった。ソニーはそのことに気がついたのだと思う。非常に多くのソフトウェア開発がOpenGL上、特にシェーダプログラマビリティの上で行われている。ソニーはそこから利益を得られるだろう」とTrevett氏はSCEIがKhronosに加わる理由を推測する。

 PlayStation 3がOpenGL ESを採用すれば、基本的には同じAPIを叩くプログラム、同じシェーダを、PlayStation 3と他のOpenGL ESプラットフォーム同士の間で走らせることができるようになる。当然、ソフトウェアの移植性は高まる。

 OpenGL ESは現在バージョン1.0で、非常に機能が限定されており、シェーダプログラマビリティもサポートされていない。しかし、今年の8月のCGカンファレンス「SIGGRAPH」では、拡張版のOpenGL ES 1.1が発表される見込みで、さらに2006年中盤に発表予定の次世代規格「OpenGL ES 2.0」の策定も平行して進められている。

OpenGL ESのロードマップ
PDFはこちら

●シェーダプログラミングをOpenGL ES 2.0でサポート

 OpenGL ES 2.0では、シェーダのサポートも加わる。つまり、DirectX 9やOpenGL 2.0と同様に、シェーダでプログラミングができるようになる。Trevett氏は「ソニーは加わったばかりだが、OpenGL ES 2.0の議論に熱心に参加している」と、SCEIの関心はシェーダにあることを示唆する。

 ある業界関係者は、その理由は、PlayStation 3のGPUである「メディアエンジン」がフルプログラマブルであるからと指摘する。PlayStation 3は、CPUにCellプロセッサ、GPUに相当するマルチメディアプロセッサとしてメディアエンジンと呼ばれるチップを搭載する。3Dグラフィックスパイプラインは、この2チップが分担すると推測される。

 PlayStation 2のGPUであるGraphics Synthesizerは、プログラム性を持たなかったが、メディアエンジンは高いプログラム性を持ち、シェーダプログラムを走らせることができると見られる。これは必然的な流れだ。というのは、グラフィックスハードはプログラマビリティを持たせない限り、CGムービーのようなクオリティのグラフィックスを実現できないからだ。そして、そのために、PlayStation 3では、シェーダプログラム用のAPIが必要となる。それを提供できるのがOpenGL ES 2.0というわけだ。

 OpenGL ES 2.0のスケジュールも、丁度PlayStation 3のスケジュールに合致している。OpenGL ES 2.0は今春から開発ステージにあり、2005年2月までに叩き台となるスペックが公開される見込みだ。正式な発表は、2005年夏のSIGGRAPHになると推測される。

 これをPlayStation 3のスケジュールと重ねると、ややずれ込むもののおよそのラインで一致する。PlayStation 3の開発ツールのバージョン1が提供されるのは来年のE3前。そして、秋の東京ゲームショウ(TGS)の時期にバージョン2が提供される予定となっている。SCEIが、OpenGL ES 2.0のスペックがある程度詰められた段階から実装を開始すると、バージョン2までにはそこそこのライブラリが提供できるだろう。

推定されるPS3とOpenGL ES 2.0のスケジュール
PDFはこちら

●PlayStation 2の失敗を繰り返さないため?

 同氏は、SCEIの変化は、ライブラリの複雑化によるものだと説明する。

 「彼らは、PlayStation 2では(ライブラリを提供しなかったため)デベロッパから多くの不満を受けた。もはや1社だけでAPIを作るのは無理だ。非常に膨大な労力が必要となるからだ。しかし、OpenGL ESなら、OpenGLで10年かけて枯れたAPIをそのまま採用できる」

 SCEIは、PlayStation 2では当初はほとんど何もライブラリを提供しなかった。そのため、ゲームデベロッパは、自社でライブラリを開発しなければならなかった。PlayStation 2のタイトル開発の労力を押し上げたのは、このライブラリの不在だった。Trevett氏は、SCEIがその轍を踏まないように、PlayStation 3でOpenGL ES 2.0採用に踏み切るだろうと推測している。

 SCEIがPlayStationでやったように、自社でAPIセットをゼロから策定しようとすると、今では膨大な労力が必要となる。OpenGLで実証済みのOpenGL ESを採用すれば、少なくともその労力は軽減できる。開発者側にとっても、OpenGLで親しんでいるAPIが採用されることは、大きな利点がある。

 SCEIのこの動きによって、次のゲーム機戦争はAPI戦争になる様相も呈してきた。つまり、DirectXのMicrosoft対OpenGL ESのSCEIという構図だ。これは、Microsoftの策定するAPI対業界標準のAPIという、PC業界ではお馴染みに図式でもある。

 「ソニーがオープンスタンダードAPIに加わったというのは、業界にとっていい兆候だ。オープンスタンダードへの流れに弾みがつくと期待している」とTrevett氏は言う。

 ちなみに、OpenGL ESはロイヤリティフリーで提供されており、現在55社以上が参加している。

●API策定の幅を広げるKhronos

 SCEIはなぜOpenGLではなく、OpenGL ESを採用するのか。現在のOpenGL ES 1.0は、基本的にはOpenGL 1.3のサブセットで、非常に機能は限定されている。例えば、PC向けGPUではごく当たり前のキューブマップがサポートされていなかったりする。しかし、これは既存の組み込み向けハードに合わせた仕様であり、Khronosの目的は機能限定版を作ることではないという。

 特に、OpenGL ESの最初のフォーカスは携帯電話であり、GPUを搭載せず、アプリケーションプロセッサ(ARM系が多い)でソフトウェア処理できることを前提としていた。そのため、機能を限定していた。

 つまり、Khronosの目的は、組み込みハードに合わせたAPIセットを提供することで、ターゲットデバイスとハードの進化に応じてAPIもどんどん拡張して行く予定だ。つまり、ワークステーション向けに開発されたOpenGLから、余計なAPIをそぎ落とし、リアルタイム3Dグラフィックスに特化させ、さらに組み込みハード向けに特殊なフィーチャを加える方向へと進化するのがOpenGL ESというわけだ。そして、SCEIが加わったことで、OpenGL ESのフォーカス自体が変わって行くと見られる。

 また、SCEIがKhronosに加わった理由は、OpenGL ES以外の部分にもあるのかもしれない。というのは、Khronosは3DグラフィックスAPIだけでなく、もっと広汎なマルチメディアローレベルAPIセットを策定しようとしているからだ。

 Khronosは、現在4つのAPIプロジェクトを進めている。3DグラフィックスのOpenGL ESの他に、ビデオAPIの「OpenML」、2DベクタグラフィックスAPIの「OpenVG」、マルチメディアコンピューティングプリミティブAPIの「OpenMAX」。つまり、KhronosはOpenGLを組み込み向けに特化させた仕様を作るだけでなく、APIセットを横に広げて包括的なマルチメディアAPIセットに拡張しようとしているように見える。

●SCEIが求めるのは包括的なマルチメディアAPI?

 OpenVGは2DベクターグラフィックスのためのAPIで、MacromediaのFLASHのような2Dベクターアプリケーションのためのものだ。OpenVGを使えばFLASHをグラフィックスチップなどでハードウェアアクセラレートすることが可能になる。PCではFLASHはCPU上で走るが、組み込み機器の場合はCPUが非力な場合が多い。OpenVGは、そうしたハードでも、FLASHのようなアプリケーションが快適に使えるようにする。

 しかし、ゲーム機を考えた場合、より重要なのはOpenMAXの方だ。OpenMAXは、よりローレベルのコンピューティングプリミティブを提供するAPIセットだ。PCのような標準がない組み込み機器の世界では、マルチメディアアプリケーションやライブラリは、多様なハードウェアに合わせて開発しなければならない。OpenMAXはそうした問題を解決する。

 OpenMAXでは、異なるハードウェアでも共通したライブラリが使えるように共通化したAPIを提供する。ビデオコーデック、オーディオエンジン、静止画像コーデック、さらに物理シミュレーションエンジンのようなライブラリを、異なるハードに容易に移植できるようにする。「多くのメディアAPIが必要で、さらにその数はどんどん増えている。それに対して共通のAPIを提供し、ソフトウェアの移植を容易にする」とTrevett氏は言う。

 といっても、Khronosが各種ライブラリそのものを提供するわけではない。ライブラリ自体の提供はサードパーティに任せる。「重要なのは、我々がコーデック(エンジン)自体を作ろうとしているのではないことだ。MPEG4と競合するつもりはない。あくまでも、ライブラリのためのローレベルのAPIに特化する」(Trevett氏)。

 そのため、OpenMAXではハードウェアを抽象化する、ローレベルのプリミティブレイヤAPIを提供する。これは、ハードを抽象化するレイヤーで、Intelが自社プラットフォーム向けに提供しているプリミティブレイヤ「Intel Integrated Performance Primitives(IPP)」と似たようなスタイルになる。IntelのIPPは、IA-32、IA-64、StrongARM、XScale、そして自社DSPに対応する。それに対して、OpenMAXはKhronosメンバーのデバイスの間でクロスプラットフォームになる。

 OpenMAXでは、OSやアプリケーション側か各種マルチメディアライブラリを使うためのAPIも規定する。そのため、上位のソフトウェア層からは、どのハードでもライブラリでも、同じAPIでアクセスできるようになる。

OpenMAXの構造
PDFはこちら

 こうしたOpenMAXの構造は、Microsoftが次世代ゲームプログラミングフレームワークとして打ち出した「XNA」とも類似性がある。XNAでは、ゲームエンジンやライブラリ自体を提供するのではなく、APIやデータセットを策定することで、ゲームデベロッパがライブラリを簡単に利用できるようにする。

 SCEIは、今年5月のE3でPlayStation 3向けに広汎なミドルウエア群を提供することを明らかにしている。また、ある業界関係者は、SCEIが海外のミドルウエアベンダともPlayStation 3で接触を持ち始めたという。もし、SCEIがOpenMAXを採用し、Cell/メディアエンジン向けに最適化したOpenMAXのプリミティブレイヤを提供するなら、各種ライブラリの移植は容易になる。もちろん、OpenMAXが普及することが前提だが、OpenMAXが成功すれば、SCEIも少ない労力で多くのミドルウエアベンダーの協力を得られるようになる。

 こうしてみると、SCEIがKhronosに加わった目的は、OpenGL ESに限らないと推測される。もし、3Dグラフィックスでスタンダードを採用するなら、他のAPIでもスタンダードを採用しない理由はないだろう。特に、PlayStation 3のようにローレベルのプログラミングが非常に難しいハードでは、ローレベルのコンピューティングプリミティブの充実はカギとなる。

□関連記事
【7月14日】【海外】PlayStation 3は来年3月頃にプレミア公開、E3で正式公開
http://pc.watch.impress.co.jp/docs/2004/0714/kaigai102.htm

(2004年7月29日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright (c) 2004 Impress Corporation All rights reserved.