OpenGL ES 3.0 の API はおよそ 100 個増えています。
OpenGL ES 2.0 で 150 弱だった命令数が 250 個になりました。
シェーダーと世代の対応は下記の通り。
OpenGL OpenGL ES DirectX ShaderModel --------------------------------------------------------------- OpenGL 1.x OpenGL ES 1.x Direct3D 7 Fixed Pileline OpenGL 2.x OpenGL ES 2.0 Direct3D 9 Shader Model 3 OpenGL 3.x OpenGL ES 3.0 Direct3D 10 Shader Model 4 OpenGL 4.x -- Direct3D 11 Shader Model 5
OpenGL ES 3.0 は OpenGL 3.x 同様に DirectX10 世代、ShaderModel 4.0 に
相当します。
ハードウエアも API も順当に進化しています。
GPU 毎に機能差は生じますが、下記はそれぞれ最小値の比較です。
GLES 2.0 GLES 3.0 (DirectX) ----------------------------------------------------------------- Vertex Uniform Vectors 128 256 (VSH Constant) Fragment Uniform Vectors 16 224 (PSH Constant) Vertex Attribs 8 16 (VSH Input) Vertex Output Vectors 8 16 (VSH Output) Fragment Input Vectors 8 15 (PSH Input) Draw Buffers 1 4 (PSH Output,MRT) Vertex Texture Image Units 0 16 (Vertex Texture) Texture Image Units 8 16 (Pixel Texture) Combined Texture Image Units 8 32
Uniform Block (D3D の ConstantBuffer) があるためこのあたりの制限は
さらにゆるくなるはずです。
このあたりを踏まえて wiki もいろいろ更新しました。
・Mobile GPU 毎の機能比較表
・OpenGL のバージョン表など
・テクスチャフォーマットまとめ
・Desktop 向け OpenGL ES 2.0 / OpenGL ES 3.0 実行環境
OpenGL ES 3.0 には GeometryShader がありませんが、これは OpenGL 3.0 も
同様でした。
GeometryShader が追加されたのは OpenGL 3.2 からなので、
同じように OpenGL ES にも今後 GeometryShader が追加拡張される
可能性が高いといえます。
関連ページ
・OpenGL まとめトップ