C/C++以外の主要なOpenGL言語バインディング(ラッパー)とライブラリには以下のようなものがある。
OpenTK
なお、WebGLはJavaScript向けの単なるラッパーや言語バインディングではなく、OpenGL ES派生の別規格である。
DirectXやVulkanとは異なり、具体的な公式ソフトウェア開発キット (SDK) や開発者向けのソフトウェアスイートは提供されていない。KhronosによるOpenGL SDKのサイトでは、APIリファレンスへのリンクや、補助ライブラリおよび開発ツールへのリンクが記載されているのみである[23][24]。NVIDIAのように、自社GPU向けのOpenGL拡張ヘッダーや開発ツールを含むSDKを提供しているベンダーもある[25]。 テクスチャに対応。Windowsの標準ドライバーおよびWGLで標準サポートされているのは、このOpenGL 1.1である[26]。 2003年にリリースされたOpenGL 1.5では、拡張機能としてプログラマブルシェーダーのための高級言語(GLSL 1.0)に初めて対応した[27]。 2004年にリリースされたOpenGL 2.0では、シェーディング言語GLSLのバージョン1.1対応が標準仕様として盛り込まれた。 2008年にリリースされたOpenGL 3.0では、肥大化したOpenGL APIセット自体のシェイプアップを目的として2.x以前の世代を切り捨てる大幅なアップデートが行われ、多くの機能が非推奨・廃止予定になった。翌2009年3月に発表されたOpenGL 3.1では固定機能シェーダーが標準仕様から取り除かれ、拡張機能扱いとなった。また同年8月に発表されたOpenGL 3.2では、Direct3D 10で導入されたジオメトリシェーダーに正式対応した[28]。固定機能シェーダーの廃止やジオメトリシェーダーの対応などは、Direct3D 10の仕様と合致している。 2010年3月11日に OpenGL 4.0 を発表[29]。Direct3D 11のハル シェーダー、テッセレータおよびドメイン シェーダーに相当する、テッセレーション制御シェーダー、テッセレーション プリミティブ ジェネレーターおよびテッセレーション評価シェーダーが搭載された[30]。 2010年7月26日に OpenGL 4.1 を発表[31]。シェーダープログラムバイナリの取得やビューポート配列の対応など。 2011年8月8日に OpenGL 4.2 を発表[32]。シェーダーにおけるアトミックカウンターの実装など。 2012年8月6日に OpenGL 4.3 を発表[33]。Direct3D 11のコンピュート シェーダーと同様のGPGPU用演算シェーダーが追加搭載された[34]。また、次世代テクスチャ圧縮技術であるASTC 2013年7月22日に OpenGL 4.4 を発表[36]。バッファ制御や非同期クエリ対応など[37]。 2014年8月11日に OpenGL 4.5 を発表[33]。Direct State Access (DSA) 対応など[38]。 2015年8月10日にOpenGL 2015 ARB Extensionsとして、OpenGL ES 3.2互換機能やシェーダーの並列コンパイル機能などが拡張として追加された[39]。 2017年7月31日に OpenGL 4.6 を発表[40]。SPIR-Vの導入、Vulkan/Direct3Dとの相互運用性の強化など。 以前はOpenGL仕様のアップデートの速度や頻度はDirect3Dに比べて非常にゆっくりとしたものであったが、OpenGL 4の機能の中にはDirect3D 11と同等あるいはそれ以上に素早く追加されたものもある。 SIGGRAPH 2014で、レガシーな設計が蓄積しているOpenGLをリセットし、ゼロから構築し直して刷新する、次世代の標準3D API規格(OpenGL Next Generation, glNext)の策定が始められることがアナウンスされた。このとき、マルチスレッド対応やシェーディング中間言語などの近代的な技術が導入されることが発表された[41]。 GDC 2015では、新規格の名称が"Vulkan"(ドイツ語で火山)となることが発表され[42]、Direct3D 12同様のコマンドキューベースのマルチスレッドレンダリング機能や、OpenCLとのプログラミング基盤共通化をもたらすSPIR-V中間表現[43]を導入することが明らかにされた。また、VulkanにはAMD独自のローレベルグラフィックスAPIであるMantleが要素技術として取り込まれることが発表された[44]。 2016年2月16日、Vulkan 1.0の正式仕様がリリースされた[45]。 なお、Vulkanはハードウェアの詳細な制御を可能とするローレベルAPIである一方、従来のOpenGLはCPU-GPU間の同期などの煩雑な処理を自動で行なってくれる上位層のAPIとして、今後もメンテナンスおよびアップデートが継続されることになっている[46]。
バージョンの変遷
OpenGL 1.1
OpenGL 1.5
OpenGL 2.x
OpenGL 3.x
OpenGL 4.x
Vulkan詳細は「Vulkan (API)」を参照
弱点
Size:74 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef