「OpenGL ES」の版間の差分

imported>Administrator
 
(2人の利用者による、間の7版が非表示)
8行目: 8行目:
OpenGL ESは無印OpenGL同様に「拡張」が許されているため互換性は絶望的な状況にある。無印OpenGLのように[[NVIDIA]]と[[AMD]]と[[Intel]]の実質三社しか存在しない環境とは異なり、OpenGL ES製品は新興国の新興メーカーも次々と新製品を出しては消えており、その全てが挙動が違うという冗談顔だけにしてほしい状況となっている。
OpenGL ESは無印OpenGL同様に「拡張」が許されているため互換性は絶望的な状況にある。無印OpenGLのように[[NVIDIA]]と[[AMD]]と[[Intel]]の実質三社しか存在しない環境とは異なり、OpenGL ES製品は新興国の新興メーカーも次々と新製品を出しては消えており、その全てが挙動が違うという冗談顔だけにしてほしい状況となっている。


このため[[Android]]向けの[[ゲーム]]などの[[アプ]]リでは、世界で一番売れている[[サムスン電子]]のGalaxyシリーズが搭載する[[Snapdragonシリーズ]]に内蔵される[[GPU]]である[[Adrenoシリーズ]]しかサポートしないという製品も多い。[[Antutu]]や[[Passmark]]などの[[ベンチマーク]]でSnapdragonシリーズを超える数値を叩き出した[[SoC]]は過去に幾度となく存在したが、OpenGL ESがクソ仕様なせいで実際には[[ゲーム]]で遊べないという苦情が多発し、性能を抜きにしてSnapdragonシリーズを採用するという風潮が醸し出され、最終的に[[Snapdragon 810]]の爆死に繋がった。
このため[[Android]]向けの[[ゲーム]]などの[[アプリ]]では、世界で一番売れている[[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 1.0 ===
35行目: 34行目:


=== OpenGL ES 2.0 ===
=== OpenGL ES 2.0 ===
OpenGL ES 2.0はOpenGL 2.0のサブセットとして2007年に公開された。
OpenGL ES 2.0はOpenGL 2.0のサブセットとして2007年に公開された。OpenGL 2.0およびDirectX 9相当。
[[iPhone 3GS]]以降、[[iPod Touch]]の第3世代以降、[[iPad]]、[[Android]] 2.2以降などでサポートされている。
 
2016年現在の[[iPhone 6s]]や[[Android 6.0]]も基本はOpenGL ES 2.0である。
[[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をサポートする。
[[シェーディング言語]]は時代遅れ感が満載のGLSL ES 1.0をサポートする。[[プログラマブルシェーダー]]ステージは[[バーテックスシェーダー]]([[頂点シェーダー]])と[[フラグメントシェーダー]]([[ピクセルシェーダー]])の2つをサポートする。頂点単位やピクセル単位の陰影計算・質感表現の制御が[[GPU]]により支援される。[[シェーダー]]は書き込みのみで読み出しはできないクソ仕様である。
プログラマブルシェーダーステージは[[バーテックスシェーダー]]([[頂点シェーダー]])と[[フラグメントシェーダー]]([[ピクセルシェーダー]])の2つをサポートする。頂点単位やピクセル単位の陰影計算・質感表現の制御が[[GPU]]により支援される。[[シェーダー]]は書き込みのみで読み出しはできないクソ仕様である。


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


{{stub}}
[[category: 3DCG]]
[[category: OpenGL]]