メインメニューを開く

差分

OpenGL ES

342 バイト追加, 2022年10月26日 (水) 06:52
編集の要約なし
OpenGL ESは無印OpenGL同様に「拡張」が許されているため互換性は絶望的な状況にある。無印OpenGLのように[[NVIDIA]]と[[AMD]]と[[Intel]]の実質三社しか存在しない環境とは異なり、OpenGL ES製品は新興国の新興メーカーも次々と新製品を出しては消えており、その全てが挙動が違うという冗談顔だけにしてほしい状況となっている。
このため[[Android]]向けの[[ゲーム]]などの[[アプアプリ]]リでは、世界で一番売れている[[サムスン電子]]のGalaxyシリーズが搭載するでは、世界で一番売れている[[Snapdragonシリーズ]]に内蔵される[[GPU]]である[[Adrenoシリーズ]]しかサポートしないという製品も多い。」しかサポートしないという製品も多い。 [[Antutu]]や[[Passmark]]などの[[ベンチマーク]]でSnapdragonシリーズを超える数値を叩き出した[[SoC]]は過去に幾度となく存在したが、OpenGL ESがクソ仕様なせいで実際には[[ゲーム]]で遊べないという苦情が多発し、性能を抜きにしてSnapdragonシリーズを採用するという風潮が醸し出され、最終的に[[Snapdragon 810]]の爆死に繋がった。
== バージョン ==
 
 
OpenGL ES 2.0は、[[プログラマブルシェーダー]]に対応した仕様であり、シェーディング言語[[GLSL]] ESに対応する一方で固定機能シェーダーは削除されている。OpenGL ES 2.0は1.x系との完全な後方[[互換性]]はない。陰影計算・質感表現をプログラマブルシェーダーで記述することによって、GPUによる支援が受けられるようになる。
=== OpenGL ES 1.0 ===
=== OpenGL ES 2.0 ===
OpenGL ES 2.0はOpenGL 2.0のサブセットとして2007年に公開された。[[iPhone 3GS]]以降、[[iPod Touch]]の第3世代以降、[[iPad]]、[[Android]] 0のサブセットとして2007年に公開された。OpenGL 2.2以降などでサポートされている。2016年現在の[[iPhone 6s]]や[[Android 6.0]]も基本はOpenGL ES 2.0である。現実問題としてまともに動くのはこれしかない。0およびDirectX 9相当。
[[iPhone 3GS]]以降、[[iPod Touch]]の第3世代以降、[[iPad]]、[[Android]] 2.2以降などでサポートされている。2016年現在の[[iPhone 6s]]や[[Android 6.0]]も基本はOpenGL ES 2.0である。現実問題としてAndroidでまともに動くのはこれしかない。ES3.0以降は対応機種が激減するためほとんど使用されていない。 OpenGL ES 2.0は、[[プログラマブルシェーダー]]に対応した初のバージョンであり、シェーディング言語「GLSL ES」に対応する。一方で固定機能シェーダーは削除されている。つまりOpenGL ES 2.0と1.x系はほぼ[[互換性]]はない。陰影計算・質感表現をプログラマブルシェーダーで記述することによってGPUによる支援が受けられるようになる。逆を言えばプログラマブルシェーダーで記述しなければGPU支援は受けられない。 [[シェーダーモデル]]でいえばSM 1.0 から SM 3.0 の世代である。 [[シェーディング言語]]は時代遅れ感が満載のGLSL ES 1.0をサポートする。プログラマブルシェーダーステージは[[プログラマブルシェーダー]]ステージは[[バーテックスシェーダー]]([[頂点シェーダー]])と[[フラグメントシェーダー]]([[ピクセルシェーダー]])の2つをサポートする。頂点単位やピクセル単位の陰影計算・質感表現の制御が[[GPU]]により支援される。[[シェーダー]]は書き込みのみで読み出しはできないクソ仕様である。
なお、本家OpenGLはバージョン4.1でOpenGL ES 2.0プロファイルを扱うことができるようになっている。
{{stub}}
 
[[category: コンピューター・グラフィックス]]