OpenGL ES

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
OpenGL ES
開発元 Khronos Group英語版
最新版 3.2 / 2015年8月10日(19日前) (2015-08-10
プラットフォーム クロスプラットフォーム
種別 3DグラフィックスAPI
公式サイト http://www.khronos.org/opengles/
テンプレートを表示

OpenGL ES(OpenGL for Embedded Systems)は、主に携帯電話などの組み込みシステムで使用されている3次元コンピュータグラフィックスAPI である。

OpenGL ESは、従来から存在する(主にデスクトップPCやワークステーション向けの)クロスプラットフォームなリアルタイム3DグラフィックスAPIである OpenGL のサブセットである。OpenGL ESはオープン仕様でロイヤリティフリーであり、適合試験にパスすれば誰でもOpenGL ES実装を謳えるため、iOSAndroidSymbian OSなどの携帯端末向けオペレーティングシステムで採用されているほか、プレイステーション3ニンテンドー3DSにも採用されており、ゲーム開発でも使用されている。OpenGL と同様にクロノス・グループによって管理されている。

バージョン[編集]

OpenGL ES 1.x系には1.0と1.1の2つが存在する。1.x系は、処理が固定されたシェーダー(固定機能シェーダー)のみに対応しており、プログラム可能なシェーディング機能(プログラマブルシェーダー)には対応していない。このため、フラットシェーディングあるいはグーローシェーディングといった、カスタマイズ不可能な頂点単位のシェーディング(陰影計算)や質感表現のみがサポートされている。ハードウェアアクセラレーションがサポートされていない複雑な陰影処理や各種エフェクトなどの高度な特殊効果を実現する場合にはGPU側の支援は受けられなくなるため、特異なコンピュータアーキテクチャ[疑問点 ]でない限りは動作速度は大きく低下する[疑問点 ]

OpenGL ES 2.0は、プログラマブルシェーダーに対応した仕様であり、シェーディング言語GLSL ESに対応する一方で固定機能シェーダーは削除されている。OpenGL ES 2.0は1.x系との完全な後方互換性はない。陰影計算・質感表現をプログラマブルシェーダーで記述することによって、GPUによる支援が受けられるようになる。

OpenGL ES 1.0[編集]

OpenGL ES 1.0はOpenGL 1.3のサブセットとして2003年に登場した。Symbian OSAndroid プラットフォームの公式3DグラフィックスAPIとして採用されている。また、SCEによるOpenGL ES 1.0の拡張版(PSGL英語版)がプレイステーション3の公式グラフィックスAPIの1つとしてサポートされている[1]

OpenGL ES 1.1[編集]

OpenGL ES 1.1はOpenGL 1.5のサブセットとして、2004年8月9日に発表。Android 1.6、iPhoneiPod touchiPad等で広くサポートされている。1.0世代のハードウェアでもドライバーレベルのアップデートで1.1に対応可能とされる。

以下の機能がOpenGL ES 1.0に追加になっている。

  • バッファオブジェクト
  • 自動ミップマップ生成
  • 拡張テクスチャ処理
  • 頂点スキニング機能
  • ユーザー定義クリッププレーン
  • 拡張ポイントスプライト、ポイントスプライト配列
  • 静的・動的状態クエリー
  • テクスチャ描画
  • 新しいコア追加、プロファイル拡張

OpenGL ES 2.0[編集]

OpenGL ES 2.0はOpenGL 2.0のサブセットとして2007年に公開された。 iPhoneの3GS以降、iPod Touchの第3世代以降、iPad、Androidのバージョン2.2以降などでサポートされている。 プログラマブルシェーダーステージはバーテックスシェーダー頂点シェーダー)とフラグメントシェーダーピクセルシェーダー)の2つをサポートする。頂点単位やピクセル単位の陰影計算・質感表現の制御がGPUにより支援される。

シェーディング言語はGLSL ES 1.0をサポートする。

なお、本家OpenGLはバージョン4.1でOpenGL ES 2.0プロファイルを扱うことができるようになっている。

OpenGL ES 3.0[編集]

OpenGL ES 3.0は2012年に発表された。2.0との後方互換性あり。 DirectX 10 (Direct3D 10) やOpenGL 3.2のジオメトリシェーダーはサポートされないが、マルチレンダーターゲット機能やマルチサンプルアンチエイリアス(MSAA)を標準サポートするようになり、またUniform BlockやTransform FeedbackなどのDirectX 10世代(統合型シェーダーアーキテクチャ世代)の機能を多数サポートする。

シェーディング言語はGLSL ES 3.0をサポートする。

なお、本家OpenGLはバージョン4.3でOpenGL ES 3.0プロファイルを扱うことができるようになっている。

OpenGL ES 3.1[編集]

OpenGL ES 3.1は2014年3月17日に発表された。ジオメトリシェーダーおよびDirectX 11 (Direct3D 11) やOpenGL 4.0のテッセレーションシェーダーはサポートされないが、本家OpenGL 4.3で採用されたコンピュートシェーダーなどを導入している[2]。3.0世代のハードウェアでもドライバーレベルのアップデートで3.1に対応可能とされる[3]

シェーディング言語はGLSL ES 3.1をサポートする。

なお、本家OpenGLはバージョン4.5でOpenGL ES 3.1プロファイルを扱うことができるようになっている。

OpenGL ES 3.2[編集]

OpenGL ES 3.2は2015年8月10日に発表された。Google Android Extension Pack (AEP) にて拡張として定義されていた機能[4]、すなわちジオメトリシェーダーおよびテッセレーションシェーダー、そしてテクスチャ圧縮技術であるASTC英語版のサポートが標準化されたほか、本家OpenGL 4シリーズ同等の機能が多数追加される[5]

シェーディング言語はGLSL ES 3.2をサポートする。

出典[編集]

  1. ^ 西川善司の3DゲームファンのためのPS3アーキテクチャ講座
  2. ^ Khronos,「OpenGL ES 3.1」を発表。OpenGL 4.xとの親和性を高める改良を施す - 4Gamer.net
  3. ^ What’s New in OpenGL ES
  4. ^ スマホでPS4世代のグラフィックスを実現? OpenGL ES 3.1の拡張機能「Google AEP」や次世代OpenGLの話をKhronos Group代表に聞いてみた - 4Gamer.net
  5. ^ Khronos Expands Scope of 3D Open Standard Ecosystem - Khronos Group Press Release

関連項目[編集]

外部リンク[編集]