バージョン 現在、OpenGL ES仕様には複数のバージョンが存在します。OpenGL ES 1.0はOpenGL 1.3仕様に基づいて作成され、OpenGL ES 1.1はOpenGL 1.5仕様に基づいて定義され、OpenGL ES 2.0はOpenGL 2.0仕様に基づいて定義されています。つまり、例えばOpenGL ES 1.0向けに作成されたアプリケーションは、デスクトップ版のOpenGL 1.3に容易に移植できるはずです。ただし、OpenGL ESはAPIの簡略版であるため、逆の場合、使用する特定の機能によっては移植できるかどうかは保証されません。
OpenGL ESには独自のシェーディング言語(OpenGL ES SL)が付属しており、これは OpenGL SL とは異なります。[ 2 ]
バージョン1.0と1.1はどちらも共通 プロファイル(CM)と共通ライト プロファイル(CL)を備えていますが、違いは、共通ライト プロファイルは浮動小数点 データ型ではなく固定小数点 データ型のみをサポートするのに対し、共通 プロファイルは両方をサポートする点です。
OpenGL ES 1.0 OpenGL ES 1.0 は 2003 年 7 月 28 日に一般公開されました。OpenGL ES 1.0 は、オリジナルの OpenGL 1.3 API をベースに、多くの機能が削除され、一部機能が追加されています。OpenGL と OpenGL ES の大きな違いの 1 つは、OpenGL ES では OpenGL ライブラリ呼び出しを と で囲む必要がなくなったことですglBegin。glEndその他の大きな違いとしては、プリミティブレンダリング関数の呼び出しセマンティクスが頂点配列を使用するように変更され、 頂点座標に固定小数点データ型が導入されたことが挙げられます。また、 浮動小数点演算ユニット (FPU)を持たないことが多い組み込みプロセッサの計算能力をより適切にサポートするために、属性が追加されました。バージョン 1.0 では、軽量なインターフェースを実現するために、以下のような多くの関数とレンダリングプリミティブが削除されました。
四角形および多角形のレンダリングプリミティブ。 テクスチャ生成、線、ポリゴンの点描画。 ポリゴンモードとアンチエイリアス処理されたポリゴンレンダリングはサポートされていませんが、マルチサンプルを使用したレンダリングは可能です(アルファ境界フラグメントではなく)。 ARB_Imageピクセルクラスの操作、ビットマップ、および3Dテクスチャはサポートされていません。フロントバッファやアキュムレーションバッファなど、より技術的な描画モードのいくつかは削除されています。 ピクセルを個別にコピーするビットマップ操作、評価器、およびユーザー選択操作は許可されていません。 表示リストとフィードバックは削除され、状態属性のプッシュ操作とポップ操作も削除されます。 また、背面 パラメータやユーザー定義のクリップ面など、一部の材料パラメータが削除されました。実際のバージョンは1.0.0.2です。[ 3 ]
OpenGL ES 1.1 OpenGL ES 1.1 では、マルチテクスチャの必須サポート、マルチテクスチャのサポートの向上 (コンバイナやドット 積テクスチャ操作を含む)、自動ミップマップ 生成、頂点バッファオブジェクト 、状態クエリ、ユーザークリッププレーン、ポイントレンダリングのより詳細な制御などの機能が追加されました。[ 4 ] 実際のバージョンは 1.1.12 です。[ 5 ]
OpenGL ES 2.0OpenGL ES 2.0 は 2007 年 3 月に一般公開されました。[ 7 ] これは概ね OpenGL 2.0 をベースにしていますが、OpenGL 3.0 から 3.1 への移行と同様に、固定機能のレンダリング パイプラインの大部分を廃止し、プログラマブル パイプラインを採用しています。 [ 8 ] シェーダーの制御フローは、一般的に前方分岐と、最大反復回数をコンパイル時に簡単に決定できるループに限定されています。[ 9 ] 以前は固定機能 API で指定されていたマテリアルやライト パラメータの指定など、変換およびライティング ステージのほぼすべてのレンダリング機能は、グラフィックス プログラマが記述するシェーダー に置き換えられています。そのため、OpenGL ES 2.0 はOpenGL ES 1.1 との下位互換性 がありません。デスクトップ版の OpenGL と OpenGL ES 2.0 の間のいくつかの非互換性は、拡張機能が追加された OpenGL 4.1 まで続きましたGL_ARB_ES2_compatibility。[ 10 ] 実際のバージョンは 2.0.25 です。[ 11 ]
Khronos Groupは、OpenGL ES 2.0と通常のOpenGL 2.0の違いを説明する文書を作成しました。[ 12 ]
OpenGL ES 3.0OpenGL ES 3.0 仕様[ 14 ] は 2012 年 8 月に公開されました。[ 15 ] OpenGL ES 2.0 との下位互換性があり、WebGL 2.0 とは部分的に互換性があります。[ 16 ] WebGL 2.0 は OpenGL ES 3.0 との高い相互運用性を持つように設計されているためです。[ 17 ] OpenGL ES 3.0 標準の現在のバージョンは 3.0.6 で、2019 年 11 月にリリースされました。[ 18 ]
OpenGL ES 3.0仕様の新機能には以下が含まれます。
OpenGL ES 3.1OpenGL ES 3.1仕様[ 20 ] は2014年3月に公開されました。OpenGL ES 3.1の新機能には以下が含まれます。[ 21 ]
OpenGL ES 3.1 は OpenGL ES 2.0 および 3.0 との下位互換性があり、アプリケーションが新しい機能を段階的に組み込むことができます。実際のバージョンは 3.1-(2016 年 11 月) です。[ 22 ]
OpenGL ES 3.2OpenGL ES 3.2仕様[ 23 ] は2015年8月に公開されました。OpenGL ES 3.2の新機能には以下が含まれます。
ジオメトリシェーダーとテッセレーション シェーダーを使用して、複雑なシーンをGPU上で効率的に処理します。 より高精度な演算処理における柔軟性を高めるための、浮動小数点レンダリングターゲット。 ASTC圧縮により、テクスチャ処理に使用される メモリ使用量 と帯域幅を削減します。高度な合成処理と複数色の添付データの取り扱いを可能にする、強化されたブレンド機能。 テクスチャバッファ、マルチサンプル2D配列、キューブマップ配列などの高度なテクスチャターゲット。 コード開発を容易にし、安全な実行を実現するためのデバッグ機能と堅牢性機能。 実際の状態は 2019 年 7 月 3.2.6 です。[ 24 ] [ 25 ]
次期OpenGL ESバージョン向けに、Mesaではさらに多くの拡張機能が開発中または開発が進められています(Mesamatrixを参照)。
次世代APIはVulkanです。[ 26 ]
企業とその適合製品の完全なリストについては、こちらをご覧ください。
OpenGL ES 1.1 OpenGL ES 1.1 は以下でサポートされています。
OpenGL ES 3.0 支援:
Android 4.3以降、適切なハードウェアとドライバーを備えたデバイスで利用可能。 iOSバージョン7以降、以下のデバイスに対応しています。 BlackBerry 10 OS バージョン10.2以降、以下のデバイスで利用可能です。 これらのGPUの最近のバージョンの一部でサポートされています: [ 43 ] [ 44 ]
OpenGL ES 3.1 適切なハードウェアとドライバを備えたデバイス上で、Windows、Linux、Android(バージョン5.0以降)でサポートされています。[ 45 ] 以下を含む:
Adreno 400シリーズ[ 46 ] [ 47 ] Adreno 500シリーズ(LinuxおよびAndroid向けMesa 18.1)AMD Terascaleおよび実際のGCNアーキテクチャ(Windows、Linux(r600、radeonSI)) Intel Atom Z3700シリーズ 向けIntel HDグラフィックス(Android対応)Intel Celeron NおよびJシリーズ向けIntel HD Graphics(Android) Intel Pentium NおよびJシリーズ向けIntel HD Graphics(Android) Intel HD Graphics Haswell 以降 (Linux Mesa: 以前の Ivy Bridge ではステンシルテクスチャリングがほとんどない) [ 39 ] Mali T6xx (midgard) シリーズ以降[ 48 ] (Android、Linux) Nvidia GeForce 400シリーズ 以降(Windows、Linux)Nvidia Tegra K1 (Android、Linux) Nvidia Tegra X1 (Android) PowerVRシリーズ6、6XE、6XT、7XE、7XT(Linux、Android) Vivante GC2000シリーズ以降(GC800およびGC1000ではオプション)[ 49 ] panfrost: ARM版panfrostのサポート (Linux Mesa 22.0) v3d: Mesa (Linux) 用 Broadcom VideoCore ドライバ VIRGL:Mesa 18.1に対応した2018年版仮想マシン用仮想ドライバ(Mesamatrix.netを参照) LLVMpipe: Mesa 20.2 (Linux) のソフトウェアドライバ softpipe: Mesa 20.3 (Linux) のソフトウェアドライバ Zink: Mesa 21.1 (Linux) のエミュレーションドライバ d3d12: Microsoft 10+ 用 WSL2 Linux ドライバー (Mesa 22.0) Fedora Asahi Remix (Linux) における Apple M1 および M2 グラフィックス
Android拡張パック Android Extension Pack (AEP) は、OpenGL ES 3.1 拡張機能のセットで、2014 年に Google によって導入された単一の拡張機能にすべてバンドルされています。これにより、アプリケーションは拡張機能セットのすべての機能を使用でき、単一の拡張機能の存在のみをテストすれば済みます。AEP は、GLES 3.1 改訂版に公式に含まれている機能に加えて、テッセレーションなどの追加機能を提供するために、Android Lollipop に正式に追加されました。OpenGL ES 3.2 アップデートは、デスクトップ OpenGL に既に存在する AEP の追加機能で大部分が構成されています。[ 50 ]
OpenGL ES 3.2 Linuxシステム(AMDGPU 搭載)におけるOpenGL ES 3.2の使用 Android Extension Pack (AEP)を組み込んだ OpenGL ES 3.2 は、「昨年の OpenGL ES 3.1 に比べてわずかな改善が施されています。どちらも AEP の同様の機能を使用しています。AEP から、OpenGL ES 3.2 準拠のハードウェアは、ジオメトリの詳細度を高めるためのテッセレーション、新しいジオメトリシェーダー、メモリ帯域幅のフットプリントを小さくするための ASTC テクスチャ圧縮、高精度計算処理のための浮動小数点レンダリングターゲット、および開発者向けの新しいデバッグ機能をサポートします。これらのハイエンド機能は、すでにグループの完全な OpenGL 4 仕様に含まれています。」[ 51 ] [ 52 ]
適切なハードウェアとドライバを備えたデバイスで、Windows、Linux、Android(バージョン6.0以降で利用可能、7.0以降ではVulkan 1.0とOpenGL ES 3.2が必要)がサポートしています。
Adreno 420以降(Android、Linux(freedreno))AMD GCNアーキテクチャ(Windows、Linux(RadeonSI搭載Mesa 18.2)) Intel HD Graphics Skylake以降(Linux)[ 39 ] Mali-T760以降(Android、Linux) Nvidia GeForce 400シリーズ(Fermi)以降(Windows、Linux)[ 53 ] VIRGL:Mesa 18.1に対応した2018年版仮想マシン用仮想ドライバ(Mesamatrix.netを参照) LLVMpipe: Mesa 20 (Linux) のソフトウェアドライバ Zink: Mesa 21.2 (Linux) における Vulkan エミュレーション ドライバ
未来 現在、OpenGL ES の新しいコア バージョンの開発計画はありません。これは、組み込みアプリケーションやモバイル アプリケーションにおいてVulkan の採用によりOpenGL ES が取って代わられると見込まれているためです。OpenGL ES の拡張機能の開発は 2017 年現在も継続されています。 [ 55 ]
OpenGL互換性 GL ESを使用してOpenGL呼び出しをエミュレートするライブラリがいくつか作成されています。
参考文献 ↑ 「Khronosのロゴ、商標、およびガイドライン」。Khronos 。 2026年 6月18日 取得 。 ↑ 「OpenGL ES 2.0 ではどのバージョンの GLSL を使用できますか?」 。Stack Overflow。 ↑ Blythe, David. "OpenGL ES Common/Common-Lite Profile Specification - Version 1.0.02 (Annotated)" (PDF) . registry.khronos.org . 2024年9月22日にオリジナルから アーカイブ (PDF) 。 ↑ 「OpenGL ES 1.1+ および ES 2.0」 (PDF) 。developer.amd.com 。ゲーム開発 者 会議。 2021年2月24日に オリジナル (PDF) からアーカイブされました。 ↑ Munshi, Aaftab; Leech, Jon (2008年4月24日). "OpenGL ES Common/Common-Lite Profile Specification - Version 1.1.12 (完全仕様)" (PDF) . registry.khronos.org . 2024年12月31日にオリジナルから アーカイブ済み (PDF) 。 ↑ 「stack overflow: glGenFramebuffersOES vs glGenFramebuffers?」 。 2022年4月19日 取得 。 ↑ "Khronos プレスリリース - OpenGL ES 2.0" . Khronos.org. 2007-03-05. 2010-12-28 の オリジナルからアーカイブ済み。2010-12-23 に 取得 。 ↑ Edward Angel、Dave Shreiner、『Interactive Computer Graphics: A Top-Down Approach with Shader-Based OpenGL 』第6版、p. xxi-xxii、 ISBN 978-0-13-254523-5 ↑ 「OpenGL® ES シェーディング言語」 (PDF) . Khronos.org . 2013年2月16日 取得 . ↑ 「OpenGL(R)グラフィックスシステム:仕様(バージョン4.1(コアプロファイル)」 (PDF) 。2010年7月25日。 ↑ Munshi, Aaftab; Leech, Jon (2010年11月2日). "OpenGL ES Common Profile Specification - Version 2.0.25 (完全仕様)" (PDF) . registry.khronos.org . 2025年3月12日にオリジナルから アーカイブ (PDF) 。 ↑ 「OpenGL© ES – 共通プロファイル仕様 2.0.25 (差分仕様)」 (PDF) 2010年11月2日。 1 2 「OpenGL ES 3.0 プログラミング ガイド」 (PDF) 。Pearson Education, Inc. 2022年4月18日 取得 。 ↑ 「Khronos OpenGL ES レジストリ - The Khronos Group Inc」 。 レジストリ.khronos.org 。 ↑ 「Khronosがモバイル3Dグラフィックスを次のレベルに引き上げるOpenGL ES 3.0仕様をリリース」 。Khronos。2012年8月6日。 2012年8月6日 取得 。 ↑ 「WebGL: ウェブ向けの2Dおよび3Dグラフィックス」 。Mozilla 。 2023年6月30日 取得 。 ↑ 「WebGL 2.0 仕様」 . registry.khronos.org . ↑ Leech, Jon; Lipchak, Benj (2019年11 月 1日)。 「OpenGL ES - バージョン 3.0.6」 (PDF) 。registry.khronos.org 。 2025年1月31日にオリジナルから アーカイブ (PDF) 。 ↑ 「GLSL ES 3.0 仕様書」 (PDF) . Khronos . 2023-06-30 に取得. ↑ 「Khronos OpenGL ES レジストリ - The Khronos Group Inc」 。 レジストリ.khronos.org 。 ↑ 「KhronosがOpenGL ES 3.1仕様をリリース」 . Khronos.org. 2014-03-17 . 2014-03-17 に閲覧。 ↑ Leech, Jon (2016年11月3日). "OpenGL ES - バージョン 3.1" (PDF) . registry.khronos.org . 2024年9月22日にオリジナルから アーカイブ (PDF) 。 ↑ 「Khronos OpenGL ES レジストリ - The Khronos Group Inc」 。 レジストリ.khronos.org 。 ↑ Leech, Jon (2022年5月5日). "OpenGL ES - バージョン 3.2" (PDF) . registry.khronos.org . 2024年9月22日にオリジナルから アーカイブ (PDF) 。 ↑ 「OpenGL ES シェーディング言語 - バージョン 3.20.8」 (PDF) 。registry.khronos.org。2023 年 8 月 14 日。2025 年 1 月 24 日のオリジナルから アーカイブ (PDF) 。 ↑ 「次世代OpenGLがVulkanに:追加の詳細が公開」 。 2015年3月4日の オリジナル からアーカイブ済み。 ↑ 「Androidプラットフォーム」 . Android開発者 . ↑ 「Symbian OS バージョン 8.0 製品シート」 。2008-03-30。2008-03-30 のオリジナルから アーカイブ 。2008-03-30 に 取得 。 ↑ Dueder, Janelle (2022-12-09). "OpenGL ES - Symbian Games Development" . 25 Years of Programming . 2023-01-14 の オリジナル からアーカイブ済み. 2023-01-14 に取得 . ↑ 「OpenGL ES の使用」 。QNX ソフトウェア開発プラットフォーム (v6.5.0) 。QNX。2011 年 1 月 8 日 に取得 。 ↑ 「OpenGL ES デモ(PPT形式)」 。 Khronos Group 。2021年11月21日。 ↑ 「OpenGL ES/PSGL プレゼンテーション(PPT形式)」 。 ソニー 。クロノス。2021年11月21日。 ↑ 「Nokia 6630 用の OpenGL ES SDK が利用可能 」 。Khronos Forums。2004-09-22。2023-01-14 に 閲覧 。 ↑ 「このベータ版リリースの新機能」 。 リリースノート - BlackBerry Java アプリケーション 。Research in Motion 。 2009年12月2日に オリジナル からアーカイブ済み 。 2009年12月8日 に取得。 ↑ Koh, Damian (2009-11-29). "BlackBerryスマートフォンに期待できること" . CNET Asia . 2009-12-13 の オリジナルからアーカイブ済み . 2009-12-08 に取得. 1 2 「PDK - 概要」 。HP Palm Developer Center。 2011年1月1日に オリジナルからアーカイブ済み 。 2010年12月23日 に取得。 ↑ 「DMP、OpenGL ES 1.1準拠のPICA 200が任天堂に採用されたことを発表」 。2010年6月21日。 2013年6月2日 閲覧 。 ↑ 「Android 2.2 仕様」 。2010年7月1日。 2010年10月11日に オリジナル からアーカイブ済み。 1 2 3 4 「Mesa OpenGL 拡張機能と機能」 . people.freedesktop.org . 1 2 「Mesa OpenGL拡張機能と機能」 . people.freedesktop.org . ↑ 「Maemoソフトウェア - Nokia > Nokia N900モバイルコンピュータ > 技術仕様」 。Nokia Corporation。 2009年10月29日の オリジナルからアーカイブ済み 。 2010年 1月12日 取得。 ↑ 「開発者向けiOS 8」 。Apple Developer。 ↑ 「クロノス準拠製品」 。 2021年11月21日。 ↑ Sag, Anshel (2013-04-11). "OpenGL ES 3.0 の現状: 誰が何を持っているか" . Bright Side of News . 2013-06-15 のオリジナルから アーカイブ済み 。2015-12-22 に 取得 。 ↑ 「OpenGL ES3.1準拠製品」 。 2014年8月11日 取得 。 ↑ 「Adreno™グラフィックス処理ユニット」 。Qualcomm 。 2014年8月11日 取得 。 ↑ 「Adreno 3xx 上で GL ES 3.1 は動作しますか?」 。 2014 年 8 月 11 日 に取得。 ↑ 「ARMのMali Midgardアーキテクチャを検証」 。AnandTech。 2014年7月5日の オリジナルからアーカイブ済み。 2014年8月11日 閲覧 。 ↑ 「Vivante Vega Cores for 3D」 。Vivante。 2014年10月17日の オリジナルからアーカイブ済み 。 2014年12月10日 取得。 ↑ 「KhronosがOpenGL ES 3.2と新しいGL拡張機能を発表したが、今週はVulkanは発表されない」 。2015年8月10日。 2015年 8月11日 取得 。 ↑ 「OpenGL ES 3.2とVulkan – 知っておくべきことすべて」 。Android Authority 。2015年8月15日。 2015年12月22日 閲覧 。 ↑ 「3DグラフィックスAPIの現状:SIGGRAPH 2015」 (PDF) 。Khronos 。 業界は2015年に17億台以上のデバイスを出荷する見込み 。 ↑ 「NVIDIAがStar Wars Battlefront向けGame Readyドライバー358.50をリリース」 。AnandTech。 2015年10月8日の オリジナルからアーカイブ済み。 2015年10月7日 閲覧 。 ↑ Apple Inc. 「iOS の新機能 - Apple Developer」 developer.apple.com 2018 年8月7日 取得 。OpenGL ES を使用して構築されたアプリは iOS 12 で引き続き動作しますが、OpenGL ES は iOS 13 で非推奨になります。 ↑ Khronos. "Vulkan、OpenGL、およびOpenGL ES" (PDF) . www.khronos.org . 2020年4月24日 取得 . ↑ "p3/regal: OpenGL 用 Regal" . GitHub. 2021年10月18日。 ↑ McCutchan, John (2012年9月7日). 「詳細解説: Regal OpenGLをネイティブクライアントに導入する」 . Gamasutra. ↑ "GL4ES - GLES ハードウェア用の OpenGL ドライバ" . GitHub .
さらに読む ダン・ギンズバーグ。プルノモ、ブディリジャント。シュライナー、デイブ。ムンシ、アフタブ (2014)。OpenGL ES 3.0 プログラミング ガイド 。アディソン・ウェスリー・プロフェッショナル。ISBN 978-0-321-93388-1 。 プーリ、カリ。アールニオ、トミ。ミエッティネン、ヴィル。ロイメラ、キンモ、ヴァーララ、ジャニ (2007)。OpenGL ES および M3G を使用したモバイル 3D グラフィックス 。モーガン・カウフマン。ISBN 978-0-12-373727-4 。 Astle, Dave & Durnil, David (2004). OpenGL ES ゲーム開発 . Course Technology PTR. ISBN 1-59200-370-2 。 Pulli, Kari; Aarnio, Tomi; Roimela, Kimmo & Vaarala, Jani (2005). "モバイルデバイス向けグラフィックスプログラミングインターフェースの設計". IEEE Computer Graphics and Applications . 25 (6). IEEE CG&A 2005: 66–75 . Bibcode : 2005ICGA...25f..66P . doi : 10.1109/MCG.2005.129 . PMID 16315479. S2CID 8177273 .
外部リンク 公式サイト 公開バグ追跡 OpenGL ES準拠企業 公開フォーラム OpenGL ES互換デバイス一覧 OpenGLホームページ ARM版OpenGL ES 1.1 & 2.0エミュレーターの リンクは使用できません。クリックしないでください。 ARM版OpenGL ES 3.0エミュレーターのリンクは使用できません。クリックしないでください。