ページ

2010年3月22日月曜日

Almost Native Graphics Layer Engine(ANGLE)

既にご存知の方も多いと思いますが、先日Googleが「Almost Native Graphics Layer Engine(ANGLE)」というオープンソースプロジェクトを発表しました。これは「WebGL」をWindowsで使用する為の技術だそうです。いつもの如く素人の知識ですが、簡単に説明すると「WebGL」で使用されている3Dグラフィックス技術は「OpenGL ES 2.0」なので、Windowsがデフォルトで使用している3Dグラフィックス技術「Direct3D(DirectX)」では使用できません。

その為にWindowsではWebGLはハードウェア支援を受ける事ができずに満足出来る性能を得ることが出来ません。あんまりありがたくない訳ですね。そこでGoogleが中心となって、OpenGL ES 2.0をDirectX 9.0cのAPIコールに変換する中間層を作って互換性を取ろうという話が出て来たようです。

ここまで書くと、なんかあのプロジェクトに似ていますよね。そうです。Linuxでお馴染みの「WINE」です。WINEは逆にDirectXが無いLinuxのようなOSに対して、OpenGLを使った中間層を作って互換性を取っています。まぁWINEの場合はDirect3Dどころか、その上のDirectX、更に上のWindows APIとの互換性を取ろうとするプロジェクトなので、単純に比較は出来ませんけど。

まぁそんな感じでWINEと似ているなぁなんて思っていたら、公式サイト等でおもしろい記述を発見しました。何とGoogleやChromiumのメンバーの他に、「TransGaming」社のメンバーが関わっているらしいのです。TransGamingといってもあまり馴染みがありませんが、少し調べてみると、LinuxやMacでWindowsゲームをプレイ出来るようにする「Cedega」や「Cider」を開発している会社みたいですね。この技術のベースになっているのが「WINE」な訳です。やはり発想自体はWINEに近いみたいですね。技術的にも再利用できる部分が多いのかもしれません。

本来なら、ValveのSource Engineのように根本的な部分からOpenGLネイティブなモノに出来れば良いのでしょうが、Windowsで圧倒的優位に立っているDirect3Dを捨て去せる影響力は流石にGoogleにも無い訳ですし。あまりに強権的な態度に出れば、Microsoft自身がDirect3Dを使用したWebGL対抗技術を用意して、そちらをゴリ押ししてくる可能性もありますからね。というか、WebGLなんてWindowsから見たら特にメリットも無い訳で……。それこそWebDXみたいな技術の方が簡単でしょうし。

ただ、DirectX対OpenGLの時と違い、今回のWebGLについてはWindowsが圧倒的優位にいる訳ではないですからね。OpenGL ESという点からみても、主戦場はやはりモバイル。今のところは携帯電話でしょう。そうなると、圧倒的に強いのはAppleのiPhone。ちょっと(だいぶ?)離されて、GoogleのAndroidでしょうか?

更に言えばNokiaのMaemoやPalmのWebOS等もでしょうかね。このラインナップを見てもわかるように、全てのOSがOpenGL ESを使用している訳です。おまけにMicrosoftのモバイル部門は正直あまりパッとしていません。少なくとも主導権を握れる立場には無いですし。

遅まきながら、Microsoftも「Windows Phone 7」で、先代までの互換性を捨てて、XNA(Direct3D)を使用した環境を用意してきたようですけども。これによって、Windows、Xbox360、Windows Phone 7という「デスクトップ」、「ゲーム機(据え置き)」、「携帯機器(電話やゲーム機)」の3つの環境をXNAで統一出来るという理想的なシステムが完成する訳ですね。ただ、携帯機器に関しては少し遅かったかもしれません。

逆に言うと、GoogleやAppleにとってはいかに上手くOpenGL (ES)をオープンスタンダードからデファクトスタンダードへと成長させることが出来るかによって、これからの命運が分かれるのかもしれません。今のところかなり有利だと思いますけど。何故かというと、既に圧倒的シェアを握っている事と、肝心のWindows Phone 7のXNAがOpenGL ESと比べると弱いらしいので……。あくまで噂でですが。一番最後にリンクしている記事からの引用。

GDC 2010は、例年に増して、携帯電話を筆頭とした携帯ゲームプラットフォームに関しての話題が多かったわけだが、Epic Gamesも例に漏れず、この分野への進出を表明している。

会期中、iPhone版の「UE3」が公開されたことは、大きなセンセーションを呼んだが、真相としては、「UE3がiPhoneに移植された」のではなく、「UE3のグラフィックスエンジンがOpenGL/ES2.0への対応を果たした」ということのようだ。

開発を担当したJosh Adams氏によれば、「開発は自分も含めてわずか2人で行なった。開発がスタートしたのは2009年10月から。『UE3』で開発したプロジェクトであれば、システムのメモリ容量が十分で、OpenGL/ES2.0ベースの携帯機器向けGPUが搭載されていれば、このモバイル版『UE3』上で動かすことができる」とのこと。

今回のGDCでは、iPhone版「UE3」とは別にNVIDIAの組み込み向けGPUのTEGRA2版の「UE3」も同時に公開されたが、これは両者同じOpenGL/ES2.0ベースのGPUを搭載しており、根本的には同じモノだ。ただ、それぞれのGPUがサポートしているシェーダー機能の限界が異なるため、ターゲットGPUに合わせた最適化(というよりもスペックダウン?)を行なっている。iPhoneとTEGRA2でいえば、 TEGRA2の方がGPU世代が新しいため、表現力はTEGRA2版の方が上になる。

さて、携帯ゲームプラットフォームと言えば、今回のGDCでは、露出度が高かったWindows Phone 7についても気になるわけだが、Windows Phone 7版の「UE3」の登場もあり得るのだろうか。

「『UE3』は美しい先進グラフィックスがウリであり、プログラマブルシェーダーが動かないプラットフォームへの移植は難しい。 Windows Phone 7で利用できるグラフィックスフィーチャーは非常に限定的であるため、『UE3』のプラットフォームとしては適さないと言わざるを得ない」(Adams 氏)。

Windows Phone 7で提供されるグラフィックス機能はプログラマブルシェーダーは非サポートであり、ポリゴンに適用できるテクスチャも2枚までという大きな制約がある。 iPhoneと比較するとGPU世代のギャップが大きく、「UE3」を動作させるのが無理というのもやむなしといったところか。
長くなったので終了しますが、携帯機器だけでなくデスクトップやゲーム機(据え置き)の分野でもOpenGLのようなオープンスタンダードがデファクトスタンダードになってくれれば、私のような捻くれ者には楽しいのですけどね。その為にも、ValveのSteamのLinux移行計画(妄想)や、UbuntuのようなLinuxデスクトップが更に普及してくれるとおもしろいのですけどね。

#追記
Unreal Engine3がPalmのWebOSで動作しているビデオがあったので貼り付けておきます。iPhone以外にも移植されているのですね。ただ肝心のPalm自体が最近ヤバいらしい……。WebOSの評判を聞くと、かなりいい出来らしいので勿体無いですよね。残念。

#YouTube
Unreal Engine 3 también llegará a webOS - YouTube
http://youtu.be/78PnvJ8jPHs



#外部リンク
angleproject - Project Hosting on Google Code
http://code.google.com/p/angleproject/

米Google、Webブラウザに向けてOpenGL互換環境を提供する3Dグラフィックエンジンを発表 - SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/10/03/19/034216

WebGL - Wikipedia
http://ja.wikipedia.org/wiki/WebGL

WineD3D builds for win32
http://www.nongnu.org/wined3d/

TransGaming Inc.
http://transgaming.com/

CedegaとLinux: Windows用ゲームをLinuxでプレイする - SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/06/08/01/0611215

4Gamer.net — ゲームをテレビで楽しもう。TransGaming,Intelと共同でゲームのオンデマンド配信へ
http://61.215.215.33/games/000/G000000/20090929030/

マイクロソフト、Windows Phone 7で3D XNAゲームをデモ -- Engadget Japanese
http://japanese.engadget.com/2010/03/09/windows-phone-7-3d-xna/

マイクロソフト、「XNA Game Studio 4.0」で「Windows Phone 7」をサポートへ - ZDNetニュース:ITpro
http://itpro.nikkeibp.co.jp/article/MAG/20100311/345671/

西川善司の3Dゲームファンのための定点観測「Unreal Engine3」講座 -GAME Watch
http://game.watch.impress.co.jp/docs/series/3dcg/20100315_354865.html

0 件のコメント:

コメントを投稿