新しい OpenGL 仕様が発表されました。
OpenGL 4.0 は一言で言えば Direct3D 11 (DirectX11)。
シェーダーステージも増えテセレータが追加されています。
OpenGL 3.2 がほぼ Direct3D 10 相当でしたが、これで Direct3D との機能差が
一気に無くなりました。
Direct3D11/DirectX11 OpenGL 4.0 ----------------------------------------------------------------------------- Vertex Shader Vertex Shader (GL_VERTEX_SHADER) Hull Shader Tessellation Control Shader (GL_TESS_CONTROL_SHADER) Domain Shader Tessellation Evaluation Shader (GL_TESS_EVALUATION_SHADER) Geometry Shader Geometry Shader (GL_GEOMETRY_SHADER) Pixel Shader Fragment Shader (GL_FRAGMENT_SHADER) Compute Shader OpenCL
整数演算や倍精度浮動小数演算(double)も D3D11 同様に追加されています。
OpenGL 3.3 は OpenGL 3.2 の拡張版です。まだ機能差を詳しく確認していませんが
Direct3D 10 に対する 10.1 の位置づけでしょうか。
OpenGL 4.0/3.3 共に OpenGL のバージョンとシェーダー言語のバージョン番号が
統一されました。
OpenGL 2.0 GLSL 1.1 vsh, fsh OpenGL 2.1 GLSL 1.2 vsh, fsh OpenGL 3.0 GLSL 1.3 vsh, fsh OpenGL 3.1 GLSL 1.4 vsh, fsh OpenGL 3.2 GLSL 1.5 vsh, fsh, gsh OpenGL 3.3 GLSL 3.3 vsh, fsh, gsh OpenGL 4.0 GLSL 4.0 vsh, fsh, gsh, tcsh, tesh tcsh= Tessellation Control Shader tesh= Tessellation Evaluation Shader
使う側から見れば D3D11 のスレッド対応や豊富な圧縮テクスチャが使えることは
非常に大きな優位点です。
しかしながら OpenGL 4.0 でもテセレーションなどほぼ同等のことができるように
なっています。モバイル向け OpenGL ES と互換性を取りやすい点を考えると OpenGL は
かなり魅力的な環境になったといえるでしょう。
関連エントリ
・OpenGL GLSL のバージョン