OpenGL ES 2.0リリースへ

OpenGLの組み込み向けサブセット版が「OpenGL ES」だ。なお、ESはEmbedded Systemsの略となっている。

OpenGL ESはOpenGLの組み込み向けサブセット版

OpenGLとOpenGL ESとの関係

組み込み機器向け、と一口に言ってもゲーム機、携帯電話、カーナビなど、そのサポート局面が広いため、OpenGL ESは実は2005年より、その各組み込み機器に必要な機能レベルに応じていくつかのバージョンに分けられて提供される方針が取られている。

まず、メインストリームともいえる、携帯電話、PDA向きのOpenGL ESは1.xファミリーとして提供される。これは、固定パイプライングラフィックス向けのAPIになっており、最新版は2004年にリリースされたOpenGL ES 1.1だ。OpenGL ES 1.1は一大センセーションとなったアップルの「iPhone」にも採用されたことでも注目を集めている。

実際、業界での普及/浸透も進んでおり、調子もよいことから、2007年、2008年はOpenGL ES 1.xは1.1のまま続投が決まった。不用意に機能を拡張してバージョンを上げて混乱を招く必要ないという判断だ。これは実は、2005年、2006年も同じ判断がされているので、今年も同じ判断がなされたという解釈でいい。

OpenGL ESは1.1と2.0の二本柱構成。携帯電話のような限定された3Dグラフィックス機能向けには1.1、ゲーム機などのプログラマブルシェーダアーキテクチャ向けには2.0を提供していく

「OpenGL ESは進化をやめたのか」というとそういうことではない。

OpenGL ESはプレイステーション3(PS3)の開発キットにも採用されたことが話題を呼んだが、そうしたPS3のようなプログラマブルシェーダアーキテクチャのGPUを搭載した組み込み機器向けのOpenGL ESも提供される。

それが「OpenGL ES 2.0」だ。

OpenGL ES 2.0はOpenGL ES 1.1とは別物で、互換性は基本的にはなく、完全にプログラマブルシェーダアーキテクチャに特化した設計になっている。

DirectX 9/SM3.0世代のテクノロジを組み込み機器向けにカスタマイズしたのがOpenGL ES 2.0

プログラマブルシェーダは頂点シェーダとピクセルシェーダのみをサポートし、ジオメトリシェーダはサポートされない。シェーダ言語はOpenGL Shading Language(GLSL)のサブセット版の「GLSL ES」がサポートされる。なお、本家OpenGLではシェーダソースコードのリアルタイムコンパイルが義務づけられていたが、OpenGL ES 2.0では、オフラインでコンパイルしたシェーダコードを活用するだけでもよいことになっている。

基本的にはDirectX 9世代/SM3.0対応GPUをサポートするOpenGL 2.1のES版という解釈でよいと思うが、1つユニークな点を挙げるとすれば、2005年に発表された新しいテクスチャ圧縮メソッド「Ericsson Texture Compression(ETC)」が早くもサポートされる点だろうか。S3が開発しDirectXに正式採用されてから長らく活用されてきたDXTCよりも、ETCは容量対品質の面で優秀とされる。2007年には互換性を維持したまま、さらに法線マップの圧縮にまで対応した「ETC2」までもが発表されて、ECTは名実共に次世代テクスチャ圧縮メソッドとして注目されている技術だ。サポートがいつも後手に回るOpenGLだが、ETCに関してはDirectXよりも早く最新技術をサポートしたことが評価される。

OpenGL ES 2.0は規格策定が2007年春に完了し、これが3月に発表されている。第4四半期には最終的な規格検証が行われる見込みだ。おそらくPS3の開発キットも「OpenGL ES 1.1+ソニー独自拡張」とから「OpenGL ES 2.0サポートへ」ということになるのかもしれない。

OpenGL ES 2.0の提供は2008年に持ち越しに。今思えばソニーが「OpenGL ES 1.1+独自仕様」の道を選択したのは正解だった?

OpenGL ESには自動車や航空機のコクピット表示、原子力発電所や医療機器のグラフィックス表示のような、動作安定性が極めて重要視される活用局面に提供される特別サブセット版として「OpenGL ES-SC」が提供される計画があるが、これは現在も開発中で、具体的なリリース時期は決まっていない。なお、細かいことを言えば、名称は「OpenGL ES-SC」から短くなり「OpenGL SC」となっている。なお、SCはSafety Critical(安定性重視)の略となっている。

安定性重視版のサブセット版「OpenGL SC」も規格策定中