この記事には過度に詳細な記述が含まれています。関連情報を( 2025年9月) |
OpenGL for Embedded Systems(OpenGL ESまたはGLES )は、 OpenGLコンピュータグラフィックスレンダリングアプリケーションプログラミングインターフェース(API)のサブセットであり、ビデオゲームで使用されるような2Dおよび3Dコンピュータグラフィックスのレンダリングに使用されます。通常、グラフィックスプロセッシングユニット(GPU)を用いたハードウェアアクセラレーションが用いられます。スマートフォン、タブレット、ビデオゲーム機、PDAなどの組み込みシステム向けに設計されています。OpenGL ESは、「史上最も広く導入されている3DグラフィックスAPI」です。
APIはクロスランゲージ、マルチプラットフォームに対応しています。OpenGL ESは、非営利技術コンソーシアムのKhronos Groupによって管理されています。Khronosの次世代APIである Vulkanは、モバイルデバイスとデスクトップデバイス向けの、よりシンプルで高性能なドライバーを実現するために開発されました。
バージョン
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 SLとは異なる独自のシェーディング言語(OpenGL ES SL)が付属しています。[ 1 ]
バージョン 1.0 と 1.1 には、共通(CM) プロファイルと共通 Lite (CL) プロファイルがありますが、共通 Liteプロファイルでは浮動小数点データ型のサポートではなく固定小数点データ型のサポートのみがサポートされるのに対し、共通では両方がサポートされるという違いがあります。
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 では、軽量なインターフェイスを実現するために、次の関数とレンダリング プリミティブが削除されました。
- 四角形およびポリゴンのレンダリング プリミティブ。
- texgen、ライン、ポリゴンの点描。
- ポリゴン モードとアンチエイリアス ポリゴン レンダリングはサポートされていませんが、マルチサンプルを使用したレンダリングは引き続き可能です (アルファ ボーダー フラグメントではなく)。
ARB_Imageピクセル クラス操作、ビットマップ、および 3D テクスチャはサポートされていません。- フロントバッファや蓄積バッファなどの技術的な描画モードのいくつかが削除されます。
- ピクセルを個別にコピーするビットマップ操作、評価子、およびユーザー選択操作は許可されません。
- 表示リストとフィードバックは削除され、状態属性のプッシュおよびポップ操作も削除されます。
- また、バックフェースパラメータやユーザー定義のクリッププレーンなど、一部のマテリアルパラメータが削除されました。
実際のバージョンは1.0.0.2です。[ 2 ]
| 拡張機能名 | ソート番号 | 詳細 |
|---|---|---|
| OES_バイト座標 | OpenGL ES 拡張機能 #4 | (旧 OpenGL 拡張機能 #291) |
| OES_圧縮パレットテクスチャ | OpenGL ES 拡張機能 #6 | (旧 OpenGL 拡張機能 #294) |
| OES_固定小数点 | OpenGL ES 拡張機能 #9 | (旧 OpenGL 拡張機能 #292) |
| OES_クエリ_マトリックス | OpenGL ES 拡張機能 #16 | (旧 OpenGL 拡張機能 #296) |
| OES_読み取りフォーマット | OpenGL ES 拡張機能 #17 | (旧 OpenGL 拡張機能 #295) |
| OES_単精度 | OpenGL ES 拡張機能 #18 | (旧 OpenGL 拡張機能 #293) |
| オプション | メサ(ほとんどのドライバー) | |
| OES_圧縮_ETC1_RGB8_テクスチャ | OpenGL ES 拡張機能 #5 |
OpenGL ES 1.1
OpenGL ES 1.1では、マルチテクスチャの必須サポート、より優れたマルチテクスチャサポート(コンバイナやドット積テクスチャ演算を含む)、自動ミップマップ生成、頂点バッファオブジェクト、状態クエリ、ユーザークリッププレーン、ポイントレンダリングのより高度な制御などの機能が追加されました。[ 3 ] 実際のバージョンは1.1.12です。[ 4 ]
| 拡張機能名 | ソート番号 |
|---|---|
| OES_draw_texture | OpenGL ES 拡張機能 #7 |
| OES_matrix_get | OpenGL ES 拡張機能 #11 |
| OES_ポイントサイズ配列 | OpenGL ES 拡張機能 #14 |
| OES_ポイント_スプライト | OpenGL ES 拡張機能 #15 |
| オプション | メサ(全ドライバー) |
| OES_フレームバッファ_オブジェクト | OpenGL ES拡張機能 #10(ES 2.0でコアになった)[ 5 ] |
| OES_EGL_イメージ | OpenGL ES 拡張機能 #23 |
| OES_EGL_画像_外部 | OpenGL ES 拡張機能 #87 |
| OES_必須内部フォーマット | OpenGL ES 拡張機能 # 未定 |
OpenGL ES 2.0
OpenGL ES 2.0 は、2007 年 3 月に一般公開されました。[ 6 ]これは OpenGL 2.0 をほぼベースとしていますが、OpenGL 3.0 から 3.1 への移行に似た動きで、固定機能のレンダリング パイプラインの大部分を排除し、プログラマブル パイプラインを採用しています。 [ 7 ]シェーダーの制御フローは一般に、前向き分岐と、最大反復回数をコンパイル時に簡単に決定できるループに限定されています。[ 8 ]以前は固定機能 API によって指定されていたマテリアルやライト パラメーターの指定など、変換およびライティング ステージのほぼすべてのレンダリング機能は、グラフィックス プログラマが記述したシェーダーに置き換えられています。その結果、OpenGL ES 2.0 はOpenGL ES 1.1 と下位互換性がありません。デスクトップ バージョンの OpenGL と OpenGL ES 2.0 の間には、拡張機能が追加された OpenGL 4.1 まで一部の非互換性が残っていましたGL_ARB_ES2_compatibility。[ 9 ] 実際のバージョンは 2.0.25 です。[ 10 ]
クロノスグループはOpenGL ES 2.0と通常のOpenGL 2.0の違いを説明した文書を作成しました。[ 11 ]
| 拡張機能名 | ソート番号 |
|---|---|
| OES_テクスチャ_キューブ_マップ | OpenGL ES 拡張機能 #20 |
| OES_テクスチャ_npot | OpenGL ES 拡張機能 #37 |
| OES_深さ24 | OpenGL ES 拡張機能 #24 |
| OES_深度テクスチャ | OpenGL ES 拡張機能 #44 |
| OES_要素_インデックス_uint | OpenGL ES 拡張機能 #26 |
| OES_fbo_render_mipmap | OpenGL ES 拡張機能 #27 |
| OES_get_program_binary | OpenGL ES 拡張機能 #47 |
| OES_マップバッファ | OpenGL ES 拡張機能 #29 |
| OES_パックされた深さ_ステンシル | OpenGL ES 拡張機能 #43 |
| OES_rgb8_rgba8 | OpenGL ES 拡張機能 #30 |
| OES_ステンシル8 | OpenGL ES 拡張機能 #33 |
| OES_頂点半浮動小数点 | OpenGL ES 拡張機能 #38 |
| 追加 | MESA(全ドライバー) |
| OES_EGL_イメージ | OpenGL ES 拡張機能 #23 (1.1 では異なります) |
| OES_EGL_画像_外部 | OpenGL ES 拡張機能 #87 (1.1 では異なります) |
| OES_テクスチャ_3D | OpenGL ES拡張機能 #34(ES 3.0でコアになった)[ 12 ] |
| OES_テクスチャ_float_linear OES_テクスチャ_half_float_linear | OpenGL ES 拡張機能 #35、ES 3.0 および 3.1 で拡張 |
| OES_texture_float OES_texture_half_float | OpenGL ES 拡張機能 #36、ES 3.0 および 3.1 で拡張 |
| OES_標準導関数 | OpenGL ES 拡張機能 #45 |
| OES_頂点配列オブジェクト | OpenGL ES拡張機能 #71(ES 3.0でコアになった)[ 12 ] |
| OES_表面のないコンテキスト | OpenGL ES 拡張機能 #116 |
| OES_深度テクスチャキューブマップ | OpenGL ES 拡張機能 #136 |
| EXT_テクスチャ_フィルター_異方性 | OpenGL ES 拡張機能 #41 |
| EXT_テクスチャ_タイプ_2_10_10_10_REV | OpenGL ES 拡張機能 #42 |
| EXT_テクスチャ_圧縮_dxt1 | OpenGL ES 拡張機能 #49 |
| EXT_テクスチャ_フォーマット_BGRA8888 | OpenGL ES 拡張機能 #51 |
| EXT_discard_framebuffer | OpenGL ES 拡張機能 #64 |
| EXT_blend_minmax | OpenGL ES 拡張機能 #65 |
| EXT_read_format_bgra | OpenGL ES 拡張機能 #66 |
| EXT_multi_draw_arrays | OpenGL ES 拡張機能 #69 |
| EXT_frag_depth | OpenGL ES 拡張機能 #86 |
| EXT_unpack_サブイメージ | OpenGL ES 拡張機能 #90 |
| EXT_テクスチャ_rg | OpenGL ES 拡張機能 #103 |
| EXT_draw_buffers | OpenGL ES 拡張機能 #151 |
| EXT_圧縮_ETC1_RGB8_サブテクスチャ | OpenGL ES 拡張機能 #188 |
| NV_draw_buffers | OpenGL ES 拡張機能 #91 |
| NV_fbo_color_attachments | OpenGL ES 拡張機能 #92 |
| NV_read_buffer | OpenGL ES 拡張機能 #93 |
| NV_read_depth_stencil | OpenGL ES 拡張機能 #94 |
| ANGLE_テクスチャ_圧縮_dxt | OpenGL ES 拡張機能 #111 |
OpenGL ES 3.0
OpenGL ES 3.0仕様[ 13 ]は2012年8月に公開されました。[ 14 ] OpenGL ES 2.0との下位互換性があり、WebGL 2.0とは部分的に互換性があります。[ 15 ] WebGL 2.0はOpenGL ES 3.0との高い相互運用性を持つように設計されているためです。[ 16 ] OpenGL ES 3.0標準の現在のバージョンは3.0.6で、2019年11月にリリースされました。[ 17 ]
OpenGL ES 3.0 仕様の新しい機能は次のとおりです。
- レンダリング パイプラインに対する複数の機能強化により、オクルージョン クエリ、変換フィードバック、インスタンス化されたレンダリング、4 つ以上のレンダリング ターゲットのサポートなど、高度な視覚効果の高速化が可能になります。
- 高品質のETC2 / EACテクスチャ圧縮が標準機能として搭載され、プラットフォームごとに異なるテクスチャセットを用意する必要がなくなります。
- 整数および32ビット浮動小数点演算 を完全にサポートしたGLSL ESシェーディング言語[ 18 ]の新しいバージョン。
- 浮動小数点テクスチャ、3D テクスチャ、深度テクスチャ、頂点テクスチャ、NPOT テクスチャ、R/RG テクスチャ、不変テクスチャ、2D 配列テクスチャ、スウィズル、LODおよびミップ レベルクランプ、シームレスキューブ マップ、サンプラー オブジェクトのサポートが保証されるなど、テクスチャリング機能が大幅に強化されました。
- 明示的にサイズ指定された、必須のテクスチャおよびレンダリング バッファ形式の広範なセット。これにより、実装の変動性が低減され、移植可能なアプリケーションの作成がはるかに容易になります。
| 拡張機能名 | ソート番号 | 詳細 |
|---|---|---|
| KHR_コンテキストフラッシュコントロール | OpenGL ES 拡張機能 #191 | (GL_KHR_context_flush_control のみ) |
| 追加 | MESA(全ドライバー) | |
| OES_テクスチャ_圧縮_astc | OpenGL ES 拡張機能 #162 | |
| EXT_テクスチャ_境界_クランプ | OpenGL ES 拡張機能 #182 | |
| EXT_draw_elements_base_vertex | OpenGL ES 拡張機能 #204 | |
| OES_EGL_image_external_essl3 | OpenGL ES 拡張機能 #220 | |
| MESA_シェーダー_整数関数 | OpenGL ES 拡張機能 #495 |
OpenGL ES 3.1
OpenGL ES 3.1仕様[ 19 ]は2014年3月に公開されました。OpenGL ES 3.1の新機能には以下が含まれます。[ 20 ]
- 計算シェーダー
- 独立した頂点シェーダーとフラグメントシェーダー
- 間接描画コマンド
OpenGL ES 3.1はOpenGL ES 2.0および3.0と下位互換性があり、アプリケーションに段階的に新機能を組み込むことができます。実際のバージョンは3.1(2016年11月)です。[ 21 ]
| 拡張機能名 | ソート番号 |
|---|---|
| ARB_配列の配列 | ARB 拡張 #120 |
| ARB_コンピューティング_シェーダー | ARB 拡張 #122 |
| ARB_明示的な均一な場所 | ARB 拡張 #128 |
| ARB_フレームバッファ_アタッチメントなし | ARB 拡張 #130 |
| ARB_プログラム_インターフェース_クエリ | ARB 拡張 #134 |
| ARB_シェーダー_アトミック_カウンター | ARB 拡張 #114 |
| ARB_シェーダー_イメージ_ロード_ストア | ARB 拡張 #115 |
| ARB_シェーダー_ストレージ_バッファ_オブジェクト | ARB 拡張 #137 |
| ARB_分離シェーダーオブジェクト | ARB 拡張 #97 |
| ARB_ステンシル_テクスチャリング | ARB 拡張 #138 |
| ARB_頂点属性バインディング | ARB 拡張 #125 |
| ARB_draw_indirect | ARB 拡張 #87 |
| ARB_シェーディング_言語_パッキング | ARB 拡張 #116 |
| ARB_シェーダー_画像サイズ | ARB 拡張 #136 |
| ARB_テクスチャ_ストレージ_マルチサンプル | ARB 拡張 #141 |
| ARB_テクスチャ_マルチサンプル | ARB 拡張 #67 |
| EXT_シェーダー整数ミックス | OpenGL ES 拡張機能 #161 |
| オプション | Mesa (すべてのドライバー OpenGL ES 3.1+) |
| ARB_サンプル_場所 | ARB 拡張 #181 |
| OES_テクスチャ_ビュー | OpenGL ES 拡張機能 #218 |
| NV_画像フォーマット | OpenGL ES 拡張機能 #200 |
| EXT_render_snorm | OpenGL ES 拡張機能 #206 |
| EXT_テクスチャ_norm16 | OpenGL ES 拡張機能 #207 |
OpenGL ES 3.2
OpenGL ES 3.2仕様[ 22 ]は2015年8月に公開されました。OpenGL ES 3.2の新機能には以下が含まれます。
- 複雑なシーンを GPU 上で効率的に処理するためのジオメトリ シェーダーとテッセレーションシェーダー。
- 浮動小数点レンダリング ターゲットにより、より高精度の計算操作における柔軟性が向上します。
- ASTC 圧縮により、テクスチャの処理に使用されるメモリ フットプリントと帯域幅を削減します。
- 高度な合成と複数のカラーアタッチメントの処理を可能にする強化されたブレンディング。
- テクスチャ バッファー、マルチサンプル 2D 配列、キューブ マップ配列などの高度なテクスチャ ターゲット。
- デバッグ機能と堅牢性機能により、コード開発が容易になり、実行が安全になります。
実際の状態は2019年7月3日2日6日です。[ 23 ] [ 24 ]
| 拡張機能名 | ソート番号 |
|---|---|
| KHR_ブレンド方程式_高度 | OpenGL ES 拡張機能 #168 |
| EXT_color_buffer_float | OpenGL ES 拡張機能 #137 |
| KHR_デバッグ | OpenGL ES 拡張機能 #118 |
| KHR_堅牢性 | OpenGL ES 拡張機能 #190 |
| OES_コピー画像 | OpenGL ES 拡張機能 #208 |
| OES_draw_buffers_indexed | OpenGL ES 拡張機能 #209 |
| OES_draw_elements_base_vertex | OpenGL ES 拡張機能 #219 |
| OES_ジオメトリ_シェーダー | OpenGL ES 拡張機能 #210 |
| OES_gpu_shader5 | OpenGL ES 拡張機能 #211 |
| OES_サンプルシェーディング | OpenGL ES 拡張機能 #169 |
| OES_サンプル変数 | OpenGL ES 拡張機能 #170 |
| OES_シェーダー_イメージ_アトミック | OpenGL ES 拡張機能 #171 |
| OES_シェーダー_io_ブロック | OpenGL ES 拡張機能 #213 |
| OES_シェーダー_マルチサンプル_補間 | OpenGL ES 拡張機能 #172 |
| OES_テッセレーション_シェーダー | OpenGL ES 拡張機能 #214 |
| OES_テクスチャ_境界_クランプ | OpenGL ES 拡張機能 #215 |
| OES_テクスチャ_バッファ | OpenGL ES 拡張機能 #216 |
| OES_テクスチャ_キューブ_マップ_配列 | OpenGL ES 拡張機能 #217 |
| OES_テクスチャ_ステンシル8 | OpenGL ES 拡張機能 #173 |
| OES_テクスチャ_ストレージ_マルチサンプル_2d_配列 | OpenGL ES 拡張機能 #174 |
| KHR_テクスチャ_圧縮_astc_ldr | OpenGL ES 拡張機能 #117 (LDR のみ) |
| OES_プリミティブバウンディングボックス | OpenGL ES 拡張機能 #212 |
| オプション | Mesa (すべてのドライバー OpenGL ES 3.2+) |
| KHR_テクスチャ_圧縮_astc_hdr | OpenGL ES 拡張機能 #117 (LDR を含む)、ARB 拡張機能 #118 |
| KHR_blend_equation_advanced_coherent | OpenGL ES 拡張機能 #168 |
| KHR_テクスチャ_圧縮_astc_sliced_3d | OpenGL ES 拡張 #249 (ARB 拡張 #189) |
| OpenGL ES 拡張機能 #267 |
Mesa では、次の OpenGL ES バージョンに向けて、さらにいくつかの拡張機能が開発中または開発中です (Mesamatrix を参照)。
次世代APIはVulkanです。[ 25 ]
プラットフォームの使用状況
企業とその適合製品の完全なリストについては、こちらをご覧ください。
OpenGL ES 1.0
OpenGL ES 1.0はAndroid [ 26 ]およびSymbian OS v8.0a [ 27 ] [ 28 ]オペレーティングシステムに公式の3DグラフィックスAPIを追加したほか、QNX [ 29 ]でもサポートされています。また、 PlayStation 3でも公式グラフィックスAPIの1つとしてサポートされています[ 30 ] (もう1つは低レベルのlibgcmライブラリ) GLSLの代わりにNvidiaのCgを使用しています。 [ 31 ] PlayStation 3には、OpenGL ESバージョン2.0の機能もいくつか含まれています。
OpenGL ES 1.1
OpenGL ES バージョン 1.1 は以下によってサポートされています:
- アンドロイド1.6
- iPad、iPhone、iPod Touch用のApple iOS
- RIMのBlackBerry 5.0オペレーティングシステムシリーズ[ 33 ] ( BlackBerry Storm 2、BlackBerry Curve 8530以降のモデルのみ必要なハードウェアを搭載[ 34 ])
- ブラックベリープレイブック
- ブラックベリー BB10
- Nokia N95、N93、N93i、N82 などのさまざまなNokia携帯電話。
- Palm webOS(プラグイン開発キットを使用) [ 35 ]
- ニンテンドー3DS [ 36 ]
OpenGL ES 2.0
サポート:
- Android 2.0以降のNDK経由およびAndroid 2.2以降のJava経由のAndroidプラットフォーム[ 37 ]
- Warp3D Novaと互換性のあるRadeon HDグラフィック カードを搭載したAmigaOne上のAmigaOS 。
- iPad、iPad Mini、iPhone 3GS以降、iPod Touch第3世代以降のApple iOS 5以降
- BlackBerry OS 7.0およびBlackBerry 10を搭載したBlackBerryデバイス、およびBlackBerry PlayBook
- Googleネイティブクライアント
- Intel HD Graphics 965G / X3000以上(Linux)[ 38 ]
- Nvidia(Android)、Curie NV40+:Linux、Windows [ 39 ]
- ノキアの各種携帯電話(Symbian ^3ベースのノキアN8、MeeGoベースのノキアN9、MaemoベースのノキアN900など[ 40 ])
- Palm webOS、プラグイン開発キットを使用[ 35 ]
- Pandoraコンソール
- ラズベリーパイ
- オドロイド
- さまざまなSamsung携帯電話( Waveなど)
- ウェブブラウザ(WebGL)
- GCW Zeroコンソール
- PlayStation Vitaポータブルコンソール
- PlayStation 4本体
OpenGL ES 3.0
サポート:
- Android バージョン 4.3 以降、適切なハードウェアとドライバーを搭載したデバイス:
- iOS バージョン 7 以降、以下のデバイスで使用可能:
- BlackBerry 10 OS バージョン 10.2 以降、以下のデバイスを含む:
これらのGPUの最近のバージョンでサポートされています: [ 42 ] [ 43 ]
- Adreno 300 および 400 シリーズ ( Android、BlackBerry 10、Windows10 Windows RT )
- Mali T600 シリーズ以降 (Android、Linux、Windows 7)
- PowerVRシリーズ6 ( iOS、Linux)
- ビバンテ(Android、OS X 10.8.3、Windows 7)
- Nvidia (Android)、Tesla G80+: Linux、Windows 7+
- Intel HD Graphics Sandy Bridge以上(Linux)[ 38 ]
- AMD Terascale と実際の GCN アーキテクチャ (Windows、Linux)
- LLVMpipeとSoftpipe:Mesaのソフトドライバー[ 39 ]
- VIRGL: 2018 年の Mesa 18.1 を使用した仮想マシン用の仮想ドライバー (Mesamatrix.net を参照)
OpenGL ES 3.1
適切なハードウェアとドライバーを搭載したデバイス上のWindows、Linux、Android(バージョン5.0以降)でサポートされています。 [ 44 ]
- アドレノ400シリーズ[ 45 ] [ 46 ]
- 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 グラフィックス (Android)
- Intel Pentium N および J シリーズ向け Intel HD グラフィックス (Android)
- Intel HD Graphics Haswell以上(Linux Mesa:以前のIvy Bridgeはステンシルテクスチャリングがほとんどなかった)[ 38 ]
- Mali T6xx (midgard) シリーズ以降[ 47 ] (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ではオプション)[ 48 ]
- panfrost: ARM panfrost サポート (Linux Mesa 22.0)
- v3d: Mesa の Broadcom VideoCore 用ドライバー (Linux)
- Raspberry Pi 4と5
- VIRGL: 2018 年の Mesa 18.1 を使用した仮想マシン用の仮想ドライバー (Mesamatrix.net を参照)
- LLVMpipe: Mesa 20.2 (Linux) のソフトウェア ドライバー
- softpipe: Mesa 20.3 (Linux) のソフトウェア ドライバー
- Zink: Mesa 21.1 (Linux) のエミュレーション ドライバー
- d3d12: Microsoft 10+ (Mesa 22.0) 用の WSL2 Linux ドライバー
- Fedora Asahi Remix (Linux) の Apple M1 および M2 グラフィックス
Android 拡張パック
Android Extension Pack(AEP)は、OpenGL ES 3.1の拡張機能を1つの拡張機能にまとめたセットで、2014年にGoogleによって導入されました。これにより、アプリケーションは拡張機能セットのすべての機能を使用しながら、1つの拡張機能の存在のみをテストできます。AEPはAndroid Lollipopに正式に追加され、GLES 3.1リビジョンに正式に含まれていた機能に加えて、テッセレーションなどの追加機能を提供します。OpenGL ES 3.2アップデートは、デスクトップ版OpenGLに既に存在するAEPの追加機能を中心に構成されています。[ 49 ]
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仕様に既に含まれています。」[ 50 ] [ 51 ]
適切なハードウェアとドライバーを搭載したデバイス上の Windows、Linux、Android (バージョン 6.0 以降可能、7.0+ Vulkan 1.0 および OpenGL ES 3.2 が必要) でサポートされます。これには以下が含まれます。
- Adreno 420以降(Android、Linux(freedreno))
- AMD GCN アーキテクチャ (Windows、Linux (Mesa 18.2 と radeonSI))
- Intel HD Graphics Skylake以上(Linux)[ 38 ]
- Mali-T760以降(Android、Linux)
- Nvidia GeForce 400シリーズ(Fermi)以降(Windows、Linux)[ 52 ]
- VIRGL: 2018 年の Mesa 18.1 を使用した仮想マシン用の仮想ドライバー (Mesamatrix.net を参照)
- LLVMpipe: Mesa 20 (Linux) のソフトウェア ドライバー
- Zink: Mesa 21.2 (Linux) の Vulkan エミュレーション ドライバー
Appleプラットフォームにおける廃止
OpenGL ES(およびOpenGL)は、 Appleのオペレーティングシステムでは廃止され、独自のMetalグラフィックAPIが採用されましたが、少なくともiOS 12までは動作していました。[ 53 ]
未来
OpenGL ESの新しいコアバージョンについては、 Vulkanの採用により組み込みアプリケーションやモバイルアプリケーションでOpenGL ESが置き換えられる可能性があるため、現在計画はありません。OpenGL ESの拡張機能の開発は2017年現在も継続されています。 [ 54 ]
OpenGLの互換性
このセクションは拡張が必要です。不足している情報を追加していただければ幸いです。 (2014年9月) |
GL ES を使用して OpenGL 呼び出しをエミュレートするためのライブラリがいくつか作成されています。
- Nvidiaは、2条項BSDライセンスのライブラリ「Regal」を提供しています。これは元々Cass Everitt氏によって開発され、2016年に最終更新されました。[ 55 ] Regalは、例えばGoogleのNaClで使用されています。[ 56 ]
- MITライセンスのGL4ESは、GL ES 2.0/1.1を用いてOpenGL 2.1/1.5をエミュレートします。これはglshimに基づいています。[ 57 ]
参照
- Direct3D – 3D アクセラレーション ハードウェア サポートを備えた高性能 3D グラフィックス用の Windows API
- DirectX – グラフィックスとビデオに関連するタスクを処理するための Windows API
- Metal – Apple プラットフォーム向けの低レベルで高性能な 3D アクセラレーション グラフィック ライブラリ
- OpenSL ES – クロノスグループが開発した組み込みシステム向けオーディオAPI
- ANGLE(ソフトウェア) – Googleが開発したOpenGL ES呼び出しをDirectXまたはVulkan呼び出しに変換するライブラリ
- モバイル 3D グラフィックス API - Java MEアプリケーションを開発するためのグラフィックス APIおよびファイル形式の仕様
参考文献
- ^ 「OpenGL ES 2.0ではどのバージョンのGLSLを使用できますか?」。Stack Overflow。
- ^ Blythe, David. 「OpenGL ES Common/Common-Lite プロファイル仕様 - バージョン 1.0.02 (注釈付き)」(PDF) . registry.khronos.org . 2024年9月22日時点のオリジナルよりアーカイブ(PDF) 。
- ^ 「OpenGL ES 1.1+ および ES 2.0」(PDF) . developer.amd.com . GameDevelopers Conference. 2021年2月24日時点のオリジナル(PDF)からのアーカイブ。
- ^ Munshi, Aaftab; Leech, Jon (2008年4月24日). 「OpenGL ES Common/Common-Lite プロファイル仕様 - バージョン1.1.12 (完全仕様)」(PDF) . registry.khronos.org . 2024年12月31日時点のオリジナルよりアーカイブ(PDF) .
- ^ 「スタックオーバーフロー:glGenFramebuffersOESとglGenFramebuffers?」2022年4月19日閲覧。
- ^ 「Khronosプレスリリース - OpenGL ES 2.0」 Khronos.org. 2007年3月5日。2010年12月28日時点のオリジナルよりアーカイブ。2010年12月23日閲覧。
- ^ Edward Angel、Dave Shreiner、「インタラクティブコンピュータグラフィックス:シェーダベースの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 共通プロファイル仕様 - バージョン2.0.25 (完全仕様)」(PDF) . registry.khronos.org . 2025年3月12日時点のオリジナルよりアーカイブ(PDF) 。
- ^ 「OpenGL© ES – 共通プロファイル仕様 2.0.25 (差分仕様)」(PDF) 2010年11月2日。
- ^ a b「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: Web向け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年6月30日閲覧。
- ^ "Khronos OpenGL ES レジストリ - The Khronos Group Inc" .レジストリ.khronos.org。
- ^ 「Khronos、OpenGL ES 3.1仕様を発表」 Khronos.org. 2014年3月17日. 2014年3月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 Shading Language - バージョン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年3月30日. 2008年3月30日時点のオリジナルよりアーカイブ。2008年3月30日閲覧。
- ^ Dueder, Janelle (2022年12月9日). 「OpenGL ES - Symbianゲーム開発」 . 25 Years of Programming . 2023年1月14日時点のオリジナルよりアーカイブ。2023年1月14日閲覧。
- ^ 「OpenGL ESの使用」 . QNXソフトウェア開発プラットフォーム(v6.5.0) . QNX . 2011年1月8日閲覧。
- ^ 「OpenGL ESデモ(PPT形式)」クロノス・グループ。2021年11月21日。
- ^ 「OpenGL ES/PSGLプレゼンテーション(PPT形式)」ソニー、クロノス、2021年11月21日。
- ^ 「Nokia 6630でOpenGL ES SDKが利用可能に」Khronosフォーラム2004年9月22日閲覧。2023年1月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月8日閲覧。
- ^ a b「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日時点のオリジナルよりアーカイブ。
- ^ a b c d「Mesa OpenGL 拡張機能と機能」 . people.freedesktop.org .
- ^ a b「Mesa OpenGL 拡張機能と機能」 . people.freedesktop.org .
- ^ 「Maemoソフトウェア - Nokia > Nokia N900モバイルコンピュータ > 技術仕様」 Nokia Corporation. 2009年10月29日時点のオリジナルよりアーカイブ。 2010年1月12日閲覧。
- ^ 「開発者向けiOS 8」。Apple Developer。
- ^ “Khronos 準拠製品” . 2021年11月21日。
- ^ Sag, Anshel (2013年4月11日). 「OpenGL ES 3.0の現状:誰が何を所有しているのか」 . Bright Side of News . 2013年6月15日時点のオリジナルよりアーカイブ。 2015年12月22日閲覧。
- ^ 「OpenGL ES3.1準拠製品」 。 2014年8月11日閲覧。
- ^ 「Adreno™ グラフィックス・プロセッシング・ユニット」 . Qualcomm . 2014年8月11日閲覧。
- ^ 「GL ES 3.1 on Adreno 3xx?」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)。クロノス。
2015年には17億台以上のデバイスが出荷される見込み。
- ^ 「NVIDIA、『Star Wars バトルフロント』向けGame Readyドライバー358.50をリリース」 AnandTech。2015年10月8日時点のオリジナルよりアーカイブ。 2015年10月7日閲覧。
- ^ Apple Inc. 「What's New in 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エミュレータのリンクは使用不可です。クリックしないでください。