2010/03/13
OpenGL 4.0 / OpenGL 3.3
新しい OpenGL 仕様が発表されました。
・OpenGL Overview
OpenGL 4.0 は一言で言えば Direct3D 11 (DirectX11)。
シェーダーステージも増えテセレータが追加されています。
OpenGL 3.2 がほぼ Direct3D 10 相当でしたが、これで Direct3D との機能差が
一気に無くなりました。
整数演算や倍精度浮動小数演算(double)も D3D11 同様に追加されています。
OpenGL 3.3 は OpenGL 3.2 の拡張版です。まだ機能差を詳しく確認していませんが
Direct3D 10 に対する 10.1 の位置づけでしょうか。
OpenGL 4.0/3.3 共に OpenGL のバージョンとシェーダー言語のバージョン番号が
統一されました。
使う側から見れば D3D11 のスレッド対応や豊富な圧縮テクスチャが使えることは
非常に大きな優位点です。
しかしながら OpenGL 4.0 でもテセレーションなどほぼ同等のことができるように
なっています。モバイル向け OpenGL ES と互換性を取りやすい点を考えると OpenGL は
かなり魅力的な環境になったといえるでしょう。
関連エントリ
・OpenGL GLSL のバージョン
・OpenGL Overview
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 のバージョン
2010/03/12
Android NDK r3 と OpenGL ES 2.0
Android もついに OpenGL ES 2.0 対応となりました。
・Download the Android NDK
嬉しいのは NDK による正式対応という点。他のプラットフォームで開発していた
C/C++ のコードを移植できます。OpenGL ES 2.0 を使ったゲームエンジンなどを
そのまま共有できるようになったわけです。
モバイル系の 3D API はほぼ OpenGL ES 2.0 へ集中していますが、アプリケーション
の記述言語はプラットフォーム毎に異なっていました。
Palm Pre でも同様に PDK による C/C++ と OpenGL ES 1.1/2.0 対応が発表されている
ようです。
・Plug-in Development
OpenGL ES と同じように、C/C++ が共通で使える言語となっています。
Windows Phone 7 はどうなるでしょうか。
関連エントリ
・OpenGL を Direct3D 互換で使う
・Download the Android NDK
嬉しいのは NDK による正式対応という点。他のプラットフォームで開発していた
C/C++ のコードを移植できます。OpenGL ES 2.0 を使ったゲームエンジンなどを
そのまま共有できるようになったわけです。
モバイル系の 3D API はほぼ OpenGL ES 2.0 へ集中していますが、アプリケーション
の記述言語はプラットフォーム毎に異なっていました。
Platform OS アプリ記述言語 C/C++対応 3D API ------------------------------------------------------------------------------- iPhone/iPod touch iPhoneOS Objective-C/C++ C/C++ OpenGL ES 1.1/2.0 Android Android Java(dalvik) NDK C/C++ OpenGL ES 1.1/2.0 Palm Pre WebOS JavaScript PDK C/C++ OpenGL ES 1.1/2.0 Windows Phone 7 WindowsCE6 C# ? ?
Palm Pre でも同様に PDK による C/C++ と OpenGL ES 1.1/2.0 対応が発表されている
ようです。
・Plug-in Development
OpenGL ES と同じように、C/C++ が共通で使える言語となっています。
Windows Phone 7 はどうなるでしょうか。
関連エントリ
・OpenGL を Direct3D 互換で使う