オープンGL

オープンGL
原作者シリコングラフィックス
開発者クロノスグループ(旧ARB
初回リリース1992年6月30日 (1992年6月30日
安定版リリース
4.6 [ 1 ] ウィキデータで編集する / 2017年7月31日 (2017年7月31日
書かれたC [ 2 ]
後継ヴルカン
タイプ3DグラフィックスAPI
ライセンス
WebサイトOpenGL.org

OpenGLOpen Graphics Library [ 4 ])は、2Dおよび3Dベクターグラフィックスをレンダリングするための、クロスランゲージクロスプラットフォームのアプリケーションプログラミングインターフェース(API)です。このAPIは、通常、グラフィックスプロセッシングユニット(GPU)と連携して、ハードウェアアクセラレーションによるレンダリングを実現するために使用されます。

Silicon Graphics, Inc. (SGI) は1991年にOpenGLの開発を開始し、1992年6月30日にリリースしました。[ 5 ] [ 6 ] OpenGLは、コンピュータ支援設計(CAD)、ビデオゲーム科学的視覚化仮想現実フライトシミュレーションなど、様々なアプリケーションで使用されています。2006年以降、OpenGLは非営利技術コンソーシアムのKhronos Groupによって管理されています。[ 7 ]

デザイン

グラフィックスパイプラインプロセスの図

OpenGL仕様は、2Dおよび3Dグラフィックスを描画するための抽象的なアプリケーション・プログラミング・インターフェース(API)を規定しています。このAPIは、 GPUなどのハードウェア・アクセラレーションを用いて大部分または完全に実装されるように設計されていますが、 CPU上で実行されるソフトウェアで完全に実装することも可能です。

API は、クライアントプログラムから呼び出すことができる関数のセットと、名前付き整数定数のセット(たとえば、10進数 3553 に対応する定数 GL_TEXTURE_2D)として定義されます。関数定義は表面的にはプログラミング言語Cの定義に似ていますが、言語に依存しません。そのため、OpenGL には多くの言語バインディングがあり、その中でも特に注目すべきものとしては、JavaScriptバインディングWebGL ( OpenGL ES 2.0に基づく、 Web ブラウザ内からの 3D レンダリング用API )、C バインディングWGLGLXCGL 、 iOSが提供する C バインディング、Androidが提供するJavaおよび C バインディングがあります。

OpenGLは言語非依存であるだけでなく、クロスプラットフォームでもあります。仕様ではOpenGLコンテキストの取得と管理については何も言及されておらず、これは基盤となるウィンドウシステムの詳細事項となっています。同様の理由から、OpenGLはレンダリングのみに特化しており、入力、オーディオ、ウィンドウ処理に関連するAPIは提供していません。

発達

OpenGLは現在は活発に開発されていませんが、2001年から2014年の間はOpenGL仕様はほぼ毎年更新され、2009年には2回のリリース(3.1と3.2)、2010年には3回のリリース(3.3、4.0、4.1)が行われました。最新のOpenGL仕様4.6は3年間の中断の後、2017年にリリースされ、既存の11個のARBおよびEXT [ a ]拡張機能をコアプロファイルに含めることに限定されていました。[ 9 ]

OpenGLの積極的な開発は、2016年にリリースされ、初期の開発段階ではコードネームglNextと呼ばれていたVulkan APIに取って代わられたため中止されました。2017年、クロノスグループはOpenGL ESの新バージョンはリリースしないと発表しました[ 10 ] [ 11 ]。そしてそれ以来、クロノスはVulkanをはじめとする技術の開発に集中しています[ 12 ] [ 13 ] 。その結果、レイトレーシングなど、最新のGPUが提供する特定の機能はOpenGL標準ではサポートされていません。ただし、ベンダー固有のOpenGL拡張機能を通じて、より新しい機能のサポートが提供される場合があります[ 14 ] [ 15 ] 。

OpenGL仕様の新バージョンはクロノス・グループによってリリースされ、それぞれがAPIを拡張して様々な新機能をサポートします。各バージョンの詳細は、グラフィックスカードメーカー、オペレーティングシステム設計者、そしてMozillaGoogleなどのテクノロジー企業を含むグループメンバー間の合意によって決定されます。[ 16 ]

コアAPIに必要な機能に加えて、グラフィックス・プロセッシング・ユニット(GPU)ベンダーは拡張機能の形で追加機能を提供する場合があります。拡張機能は新しい関数や定数を導入したり、既存のOpenGL関数に対する制限を緩和または削除したりすることがあります。ベンダーは拡張機能を使用することで、他のベンダーやクロノス・グループ全体のサポートを必要とせずにカスタムAPIを公開できるため、OpenGLの柔軟性が大幅に向上します。すべての拡張機能はOpenGLレジストリに収集され、定義されています。[ 17 ]

OpenGL の各新バージョンで導入される機能は、通常、広く実装されている複数の拡張機能、特に ARB または EXT タイプの拡張機能の機能の組み合わせから形成されます。

ドキュメント

OpenGLアーキテクチャレビュー委員会は、仕様書とともに一連のマニュアルを公開しました。これらのマニュアルはAPIの変更点を追跡するために更新されています。これらのマニュアルは、一般的に表紙の色で区別されています。

レッドブック
OpenGLプログラミングガイド、第9版。ISBN 978-0-134-49549-1
SPIR-V による OpenGL バージョン 4.5 公式学習ガイド
オレンジブック
OpenGLシェーディング言語、第3版。ISBN 0-321-63763-1
GLSLのチュートリアルとリファレンスブック。

歴史的な本(OpenGL 2.0 以前):

グリーンブック
X Window SystemのためのOpenGLプログラミング。ISBN 978-0-201-48359-8
X11 インターフェイスとOpenGL Utility Toolkit (GLUT)に関する本。
ブルーブック
OpenGL リファレンス マニュアル、第 4 版。ISBN 0-321-17383-X
基本的には、OpenGL のUnix マニュアル(man) ページのハードコピー プリントアウトです。
理想的な OpenGL 実装の構造を示すポスターサイズの折りたたみ式図が含まれています。
アルファブック(白表紙)
Windows 95およびWindows NT用OpenGLプログラミング。ISBN 0-201-40709-4
OpenGL と Microsoft Windows のインターフェイスに関する本。

OpenGLのドキュメントは公式ウェブページからもアクセスできます。[ 18 ]

関連ライブラリ

OpenGLの初期バージョンは、OpenGLユーティリティライブラリ(GLU)と呼ばれる付属ライブラリとともにリリースされました。GLUは、テッセレーションミップマッププリミティブシェイプの生成など、当時のハードウェアではサポートされていなかったシンプルで便利な機能を提供していました。GLU仕様は1998年に最終更新され、現在では非推奨となっているOpenGLの機能に依存しています。

コンテキストとウィンドウツールキット

OpenGLコンテキストの作成は非常に複雑なプロセスであり、オペレーティングシステムによって異なるため、 SDLAllegroSFML、 FLTK、 Qtなど、多くのゲーム開発ライブラリやユーザーインターフェースライブラリでは、OpenGLコンテキストの自動作成が一般的な機能となっている。OpenGL対応ウィンドウを生成することのみを目的として設計されたライブラリもいくつかある。最初のそのようなライブラリはOpenGL Utility Toolkit (GLUT)で、後にfreeglutに置き換えられた。GLFWはより新しい代替ライブラリである。[ 19 ]

  • これらのツールキットはOpenGLウィンドウの作成と管理、入力の管理を目的として設計されていますが、それ以上の機能はほとんどありません。[ 20 ]
  • GLFW – クロスプラットフォームのウィンドウ処理とキーボード・マウス・ジョイスティックのハンドラ。ゲーム指向が強い。
  • freeglut – クロスプラットフォームのウィンドウおよびキーボードマウスハンドラ。APIはGLUT APIのスーパーセットであり、GLUTよりも安定しており、最新です。
  • OpenGL ユーティリティ ツールキット(GLUT) – メンテナンスされなくなった古いウィンドウ ハンドラー。
  • いくつかの「マルチメディアライブラリ」は、ゲームのようなアプリケーションに役立つ入力、サウンド、その他のタスクに加えて、OpenGLウィンドウを作成できます。
  • Allegro 5 – ゲーム開発に特化したC APIを備えたクロスプラットフォームのマルチメディアライブラリ
  • Simple DirectMedia Layer (SDL) – C APIを備えたクロスプラットフォームのマルチメディアライブラリ
  • SFML – C++ APIと、C#、Java、Haskell、Goなどの言語への複数のバインディングを備えたクロスプラットフォームのマルチメディアライブラリ
  • ウィジェットツールキット
  • FLTK – 小さなクロスプラットフォームの C++ ウィジェットライブラリ
  • Qt – クロスプラットフォームのC++ウィジェットツールキット。デスクトップGLとOpenGL ESの違いを抽象化するOpenGLヘルパーオブジェクトを多数提供しています。
  • wxWidgets – クロスプラットフォームの C++ ウィジェットツールキット

拡張機能の読み込みライブラリ

OpenGL拡張機能の識別と読み込みには膨大な作業負荷がかかるため、利用可能なすべての拡張機能と関数を自動的に読み込むライブラリがいくつか設計されています。例としては、OpenGL Easy Extension library (GLEE)、OpenGL Extension Wrangler Library (GLEW)、glbindingなどが挙げられます。また、 Java OpenGL、PyOpenGL、WebGLなど、ほとんどの言語バインディングでも拡張機能は自動的に読み込まれます。

実装

のスクリーンショットglxinfo。システム上の OpenGL の Mesa 実装の情報が表示されています。またglxgears、システム上の OpenGL 実装をテストするプログラムも表示されています。

Mesa 3DはOpenGLのオープンソース実装です。純粋なソフトウェアレンダリングが可能で、BSDLinux 、その他のプラットフォームではDirect Rendering Infrastructureを利用することでハードウェアアクセラレーションも利用できます。バージョン20.0時点では、OpenGL標準のバージョン4.6を実装しています。

歴史

1980年代、クロスプラットフォームライブラリがなかったため、幅広いグラフィックスハードウェアで動作するソフトウェアの開発は困難でした。ソフトウェア開発者は、それぞれのハードウェアごとにカスタムインターフェースとドライバを開発する必要がありました。これはコストがかかり、作業量も倍増しました。

1990年代初頭までに、Silicon Graphics(SGI)はワークステーション向け3Dグラフィックスのリーダーとなりました。同社のIRIS GL API [ 21 ] [ 22 ]は、使いやすさと即時モードレンダリングをサポートしていたため、PHIGSなどの競合製品よりも高速であったことから業界標準となりました[ 23 ]

SGI の競合他社 (サン・マイクロシステムズヒューレット・パッカードIBMなど) も、PHIGS 標準の拡張機能をサポートする 3D ハードウェアを市場に投入することができ、これにより SGI は IRIS GL のバージョンをOpenGLと呼ばれるパブリック標準としてオープンソース化するよう圧力を受けました。

しかし、SGIにはIRIS GLからOpenGLへの移行に多額の投資を必要とする顧客が多数存在した。さらに、IRIS GLには3Dグラフィックスとは無関係なAPI関数が含まれていた。例えば、ウィンドウ操作、キーボード、マウスAPIが含まれていたが、これはX Window SystemやSunのNeWSよりも前に開発されたためである。[ 24 ] IRIS GLライブラリはSGI独自のグラフィックスハードウェアに深く結びついており、ハードウェア特許や企業秘密のためそのままオープンソース化することはできなかった。これらの要因により、SGIはOpenGLの市場サポートが成熟するまでの間、高度で独自のIris InventorおよびIris PerformerプログラミングAPIのサポートを継続する必要があった。

IRIS GL の制約の 1 つは、基盤となるハードウェアでサポートされている機能にしかアクセスできないことです。グラフィックス ハードウェアがネイティブで機能をサポートしていない場合、アプリケーションはその機能を使用できませんでした。OpenGL は、ハードウェアでサポートされていない機能のソフトウェア実装を提供することでこの問題を克服し、アプリケーションが比較的低消費電力のシステムでも高度なグラフィックスを使用できるようにしました。OpenGL はハードウェアへのアクセスを標準化し、ハードウェア インターフェイス プログラム (デバイス ドライバー) の開発責任をハードウェア メーカーに押し付け、ウィンドウ機能を基盤となるオペレーティング システムに委譲しました。非常に多くの種類のグラフィックス ハードウェアがある中で、このようにしてそれらすべてを同じ言語で扱えるようにしたことは、ソフトウェア開発者に 3D ソフトウェア開発用のより高レベルのプラットフォームを提供することで、目覚ましい効果をもたらしました。

1992年[ 25 ] 、SGIはOpenGLアーキテクチャレビューボード(OpenGL ARB)の設立を主導しました。これは、将来的にOpenGL仕様の保守と拡張を担当する企業グループです。2年後には、シーングラフAPI(おそらくSGIのPerformer技術に基づいていると思われます)などの要素を含む「 OpenGL++ 」と呼ばれる仕様のリリースも検討されました。この仕様は少数の関係者間で共有されましたが、製品化されることはありませんでした。[ 26 ]

1996年にリリースされたMicrosoftのDirect3Dは、最終的にOpenGLの主な競合相手となった。 1997年6月12日に公開されたMicrosoftへの公開書簡には50人以上のゲーム開発者が署名し、同社にOpenGLの積極的なサポートを求めた。[ 27 ] 1997年12月17日、[ 28 ] MicrosoftとSGIは、OpenGLとDirect3Dのインターフェースを統合し、シーングラフAPIも追加することを目的とした共同作業であるFahrenheitプロジェクトを開始した。1998年には、Hewlett-Packardがこのプロジェクトに参加した。 [ 29 ]当初、このプロジェクトはインタラクティブ3DコンピュータグラフィックスAPIの世界に秩序をもたらす可能性を秘めていたが、SGIの財政的制約、Microsoftの戦略的な理由、そして業界からの一般的なサポート不足により、1999年に中止された。[ 30 ]

2006年7月、OpenGLアーキテクチャレビュー委員会は、OpenGL API標準の管理をクロノスグループに移管することを決議した。[ 31 ] [ 32 ]

業界の支援

後継のVulkanやMetalといった新しいグラフィックスAPIが登場したにもかかわらず、OpenGLは依然として広く使用されている標準規格です。この継続的な重要性は、新しい拡張機能やドライバの最適化による継続的な開発、クロスプラットフォームの互換性、そしてANGLEやZinkといった互換性レイヤーの存在といった、いくつかの要因によって支えられています。これらのレイヤーにより、OpenGLはVulkanやMetal上で効率的に動作し、開発者にとって継続的な使用や段階的な移行の道筋を提供します。[ 33 ] [ 34 ]

しかし、グラフィックスAPIを取り巻く状況は変化しており、一部の企業はOpenGLから離れつつあります。2018年6月、Appleは自社の全プラットフォーム(iOSmacOStvOS )でOpenGL APIを非推奨とし、開発者に対し2014年に導入された独自のMetal APIの使用を強く推奨しました。[ 35 ]

ゲーム開発者も新しいAPIを採用し始めている。id Software は、1990年代後半からGLQuake [ 36 ]やDoomフランチャイズの一部のゲームでOpenGLを使用してきたが[ 37 ]、2016年にid Tech 7エンジンで後継のVulkanに移行した。[ 38 ] id Tech 6エンジンのアップデートで初めてVulkanをサポートした。同社が初めてOpenGLをライセンス使用したのは、 id Tech 2としても知られるQuake IIエンジンだった。[ 39 ] 2023年3月、ValveはDota 2からOpenGLのサポートを削除し、 Vulkanを採用した。[ 40 ] Atypical Gamesは、Samsungの支援を受けて、Apple以外のすべてのプラットフォームでOpenGLではなくVulkanを使用するようにゲームエンジンを更新した。[ 41 ]

OpenGLの開発を担当するコンソーシアムであるクロノスグループは、2017年の最後のリリースでOpenGLの更新を停止しました。[ 42 ]ハードウェアアクセラレーションによるレイトレーシングGPU上でのビデオデコード、Nvidia DLSS [ 43 ]AMD FSR [ 44 ] などの高度なアンチエイリアシングアルゴリズムなど、多くの最新のグラフィックステクノロジが採用されていません。

GoogleのFuchsia OSは、Vulkanをネイティブに使用し、Vulkan準拠のGPUを必要としますが、ANGLE変換レイヤーを介してVulkan上でOpenGLをサポートする予定です。[ 45 ]

バージョン履歴

OpenGLの最初のバージョンであるバージョン1.0は、1992年6月30日にMark SegalとKurt Akeleyによってリリースされました。それ以来、OpenGLは仕様の新バージョンをリリースすることで、時折拡張されてきました。これらのリリースでは、すべての準拠グラフィックカードがサポートしなければならない機能のベースラインセットが定義され、これに基づいて新しい拡張機能をより容易に記述できるようになります。OpenGLの新バージョンには、グラフィックカードベンダーの間で広く支持されている拡張機能がいくつか組み込まれる傾向がありますが、拡張機能の詳細は変更される可能性があります。

OpenGLのバージョン履歴
バージョン 発売日 特徴
1.0 1992年6月30日 初回リリース。
1.1 1997年3月4日[ 46 ] [ 47 ]テクスチャオブジェクト、頂点配列
1.2 1998年3月16日 3Dテクスチャ、BGRA、パックピクセル形式、[ 48 ]画像処理アプリケーションに有用な イメージングサブセットの導入
1.2.1 1998年10月14日 ARB拡張の概念
1.3 2001年8月14日 マルチテクスチャリング、マルチサンプリング、テクスチャ圧縮
1.4 2002年7月24日 深度テクスチャ、GLSlang [ 49 ]
1.5 2003年7月29日 頂点バッファオブジェクト(VBO)、オクルージョンクエリ[ 50 ]
2.0 2004年9月7日 GLSL 1.1、MRT、非2乗テクスチャ、ポイントスプライト、[ 51 ]両面ステンシル[ 50 ]
2.1 2006年7月2日 GLSL 1.2、ピクセルバッファオブジェクト(PBO)、sRGBテクスチャ[ 50 ]
3.0 2008年8月11日 GLSL 1.3、テクスチャ配列、条件付きレンダリング、フレームバッファオブジェクト(FBO)[ 52 ]
3.1 2009年3月24日 GLSL 1.4、インスタンス化、テクスチャバッファオブジェクト、ユニフォームバッファオブジェクト、プリミティブリスタート[ 53 ]
3.2 2009年8月3日 GLSL 1.5、ジオメトリシェーダー、マルチサンプルテクスチャ[ 54 ]
3.3 2010年3月11日 GLSL 3.30、OpenGL 4.0の機能を可能な限り保持、新しいブレンディング関数、サンプラーオブジェクト、新しいテクスチャと頂点フォーマット
4.0 2010年3月11日 GLSL 4.00、GPUでのテッセレーション、64ビット精度のシェーダー[ 55 ]
4.1 2010年7月26日 GLSL 4.10、開発者に優しいデバッグ出力、[ b ] OpenGL ES 2.0との互換性[ 56 ]
4.2 2011年8月8日[ 57 ]GLSL 4.20、アトミックカウンター付きシェーダー、インスタンス化された描画変換フィードバック、シェーダーパッキング、パフォーマンスの改善
4.3 2012年8月6日[ 58 ]GLSL 4.30、GPU並列処理を活用したコンピュートシェーダー、シェーダーストレージバッファオブジェクト、高品質のETC2/EACテクスチャ圧縮、メモリセキュリティの強化、マルチアプリケーション堅牢性拡張、OpenGL ES 3.0との互換性[ 59 ]
4.4 2013年7月22日[ 60 ]GLSL 4.40、バッファ配置制御、効率的な非同期クエリ、シェーダ変数レイアウト、効率的な複数オブジェクトバインディング、Direct3Dアプリケーションの効率的な移植、バインドレステクスチャ拡張、スパーステクスチャ拡張[ 60 ]
4.5 2014年8月11日[ 17 ] [ 61 ]GLSL 4.50、ダイレクトステートアクセス(DSA)、フラッシュコントロール、堅牢性、OpenGL ES 3.1 APIおよびシェーダー互換性、DX11エミュレーション機能
4.6 2017年7月31日[ 9 ] [ 62 ]GLSL 4.60、より効率的なジオメトリ処理とシェーダ実行、詳細情報、エラーコンテキストなし、ポリゴンオフセットクランプ、SPIR-V、異方性フィルタリング

オープンGL 2.0

発売日:2004年9月7日

OpenGL 2.0はもともと、OpenGLが停滞し明確な方向性を欠いているという懸念に対処するため、3Dlabsによって考案されました。 [ 63 ] 3Dlabsは標準規格にいくつかの主要な追加を提案しました。これらのほとんどは、当時ARBに却下されたか、3Dlabsが提案した形で実現することはありませんでした。しかし、Cスタイルのシェーディング言語の提案は最終的に完成し、現在のOpenGLシェーディング言語(GLSLまたはGLslang)の定式化につながりました。置き換えたアセンブリ形式のシェーディング言語と同様に、固定機能の頂点パイプとフラグメントパイプをシェーダーに置き換えることができましたが、今回はCのような高級言語で書かれていました。

GLSLの設計は、当時利用可能なハードウェアの限界に比較的妥協しなかったことで特徴づけられました。これは、OpenGLが既存のハードウェアの現状を単に追うのではなく、3Dアクセラレータに対して野心的で将来を見据えた目標を設定するという、以前のOpenGLの伝統を彷彿とさせます。最終的なOpenGL 2.0仕様[ 64 ]には、GLSL 1.10のサポートが含まれています。

オープンGL 2.1

発売日:2006年7月2日

OpenGL 2.1 では、ピクセル バッファー オブジェクト、sRGB テクスチャ、GLSL 1.20 のサポートが追加されました。

Longs Peak と OpenGL 3.0

OpenGL 3.0のリリース以前、この新しいリビジョンはLongs Peakというコードネームで呼ばれていました。当初の発表では、Longs PeakはOpenGLの生涯における最初のメジャーAPIリビジョンとして発表されました。これはOpenGLの動作を徹底的に見直し、APIに根本的な変更を加えるものでした。

この草案では、オブジェクト管理に変更が導入されました。GL 2.1オブジェクトモデルは、OpenGLの状態ベースの設計に基づいて構築されました。つまり、オブジェクトを変更したり使用したりするには、オブジェクトを状態システムにバインドし、その後、状態を変更したり、バインドされたオブジェクトを使用する関数呼び出しを実行したりする必要があります。

OpenGLは状態システムを採用しているため、オブジェクトは可変である必要があります。つまり、レンダリングパイプラインが非同期的にオブジェクトを使用している場合でも、オブジェクトの基本構造はいつでも変更される可能性があります。テクスチャオブジェクトは2Dから3Dに再定義できます。そのため、OpenGLの実装では、内部オブジェクト管理にある程度複雑さが加わる必要があります。

Longs Peak APIでは、オブジェクトの作成はアトミックになり、テンプレートを用いてオブジェクトのプロパティを定義し、1回の関数呼び出しで作成されます。作成されたオブジェクトは、複数のスレッド間で即座に使用できるようになります。オブジェクトは不変ですが、内容の変更や更新は可能です。例えば、テクスチャの画像は変更できますが、サイズやフォーマットは変更できません。

後方互換性を維持するため、古い状態ベースのAPIは引き続き利用可能となりますが、OpenGLの以降のバージョンでは、古いAPIを介して新しい機能は公開されません。これにより、CAD製品の大部分など、レガシーコードベースは引き続き実行可能となり、他のソフトウェアは新しいAPIを使用して作成または移植することが可能になります。

Longs Peakは当初、OpenGL 3.0という名前で2007年9月に完成する予定だったが、クロノスグループは10月30日に仕様を公開する前に解決したいいくつかの問題に遭遇したと発表した。[ 65 ]その結果、仕様は遅れ、クロノスグループは最終的なOpenGL 3.0仕様が発表されるまでメディアの報道を控えた。

最終的な仕様は、Longs Peak 提案ほど革新的ではなかった。すべてのイミディエイト モードと固定機能 (非シェーダ モード) を削除する代わりに、仕様ではそれらを非推奨機能として含めた。提案されたオブジェクト モデルは含まれず、将来の改訂に含める予定も発表されていない。結果として、API はほぼ同じままで、いくつかの既存の拡張機能がコア機能に昇格された。一部の開発者グループでは、この決定がちょっとした騒動を引き起こし、[ 66 ]多くの開発者が抗議としてDirectXに切り替えると公言した。ほとんどの苦情は、Khronos の開発コミュニティに対するコミュニケーション不足と、多くの人に好意的に見られていた複数の機能が破棄されたことに集中した。その他の不満としては、OpenGL 3.0 を使用するために DirectX 10 レベルのハードウェアが必要であることと、コア機能としてジオメトリ シェーダとインスタンス レンダリングがないことが挙げられた。

他の情報源によると、コミュニティの反応は当初発表されたほど厳しくはなく、[ 67 ]多くのベンダーがアップデートを支持しているとのことです。[ 68 ] [ 69 ]

オープンGL 3.0

発売日:2008年8月11日

OpenGL 3.0では、APIの将来の改訂を簡素化するために、非推奨メカニズムが導入されました。非推奨としてマークされた特定の機能は、ウィンドウシステムから前方互換性のあるコンテキストを要求することで完全に無効化できます。ただし、完全なコンテキストを要求することで、これらの非推奨機能と並行してOpenGL 3.0の機能にアクセスすることは可能です。

非推奨の機能は次のとおりです:

  • すべての固定機能頂点およびフラグメント処理
  • glBeginとglEndを使用したダイレクトモードレンダリング
  • 表示リスト
  • インデックスカラーレンダリングターゲット
  • OpenGL シェーディング言語バージョン 1.30

ハードウェア サポート: Nvidia GeForce 8 シリーズ以降、ATI Radeon HD 2000 シリーズ以降、 Intel Sandy BridgeプロセッサのIntel HD Graphics以降。

オープンGL 3.1

発売日:2009年3月24日

OpenGL 3.1では、バージョン3.0で非推奨となったすべての機能(太線を除く)が完全に削除されました。このバージョン以降、フルコンテキストを使用して新しい機能にアクセスしたり、前方互換コンテキストを使用して非推奨の機能にアクセスしたりすることはできません。実装がARB_compatibility拡張をサポートしている場合は前者のルールの例外が適用されますが、これは保証されません。GLSL 1.40のサポートが含まれています。

ハードウェア サポート: Mesa はバージョン 21.0 で ARM Panfrost をサポートします。

オープンGL 3.2

発売日:2009年8月3日

OpenGL 3.2は、OpenGL 3.0で導入された非推奨メカニズムをさらに発展させ、仕様をコアプロファイル互換性プロファイルに分割しました。互換性コンテキストには、OpenGL 3.1と同時にリリースされたARB_compatibility拡張に相当する、以前削除された固定機能APIが含まれますが、コアコンテキストには含まれません。OpenGL 3.2には、GLSLバージョン1.50へのアップグレードも含まれています。

オープンGL 3.3

発売日: 2010年3月11日

OpenGL 3.3には、OpenGL 4.0の機能を可能な限り維持しつつ、古いハードウェアのサポートを維持することを目的とした、マイナーな追加機能が含まれています。[ 55 ]追加機能には、新しいブレンディング関数、サンプラーオブジェクト、新しいテクスチャおよび頂点フォーマットが含まれます。GLSLバージョン3.30のサポートも追加され、メジャーバージョンとマイナーバージョンはOpenGLと一致しています。

オープンGL4.0

発売日:2010年3月11日

OpenGL 4.0はバージョン3.3と同時にリリースされました。[ 55 ] Direct3D 11をサポートできるハードウェア用に設計されました。

OpenGL 3.0 と同様に、このバージョンの OpenGL には、テッセレーションなどの Direct3D 11 クラスのハードウェアの機能を徹底的に公開するように設計された、かなり重要度の低い拡張機能が多数含まれています。

ハードウェアサポート: Nvidia GeForce 400シリーズ以降、AMD Radeon HD 5000シリーズ以降(一部のTeraScale GPUではエミュレーションによってFP64シェーダが実装されている)、 Intel Ivy BridgeプロセッサのIntel HDグラフィックス以降。[ 70 ]

オープンGL 4.1

発売日:2010年7月26日

  • この仕様を実装するGPUの場合、最小の「最大テクスチャサイズ」は16,384×16,384です。[ 71 ]
  • OpenGL ES 2.0との互換性の向上[ 72 ]
  • 同じレンダリングサーフェスに複数のビューポート、またはサーフェスごとに1つのビューポート。[ 73 ]

ハードウェアサポート:Nvidia GeForce 400シリーズ以降、AMD Radeon HD 5000シリーズ以降(一部のTeraScale GPUではFP64シェーダーがエミュレーションで実装されている)、 Intel Haswellプロセッサ以降のIntel HD Graphics [ 70 ](Linux Mesa:Ivy Bridge以降)。また、これはApple macOSでサポートされる最後のコアプロファイルです。

オープンGL 4.2

発売日: 2011年8月8日[ 57 ]

  • アトミック カウンターとテクスチャの 1 つのレベルに対するロード、ストア、アトミックな読み取り、変更、書き込み操作を備えたシェーダーのサポート
  • GPU頂点処理(テッセレーションを含む)からキャプチャしたデータの複数のインスタンスを描画し、複雑なオブジェクトを効率的に再配置および複製できるようにします。
  • 圧縮されたテクスチャの任意のサブセットを変更する機能をサポート。テクスチャ全体をGPUに再ダウンロードすることなく、パフォーマンスを大幅に向上できます。

ハードウェアサポート: Nvidia GeForce 400シリーズ以降、AMD Radeon HD 5000シリーズ以降(一部のTeraScale GPUではエミュレーションによってFP64シェーダが実装されている)、 Intel Haswellプロセッサ以降のIntel HDグラフィックス。 [ 70 ] (Linux Mesa: Ivy Bridge以降)

オープンGL 4.3

発売日: 2012年8月6日[ 58 ]

  • グラフィックス パイプラインのコンテキスト内で GPU 並列処理を活用するコンピュート シェーダー
  • シェーダー ストレージ バッファ オブジェクト。これにより、シェーダーは 4.2 からのイメージのロード/ストアと同様にバッファ オブジェクトの読み取りと書き込みを、関数呼び出しではなく言語を通じて実行できるようになります。
  • 画像形式パラメータクエリ
  • ETC2/EACテクスチャ圧縮を標準機能として搭載
  • OpenGL ES 3.0 APIとの完全な互換性
  • アプリケーション開発中にデバッグメッセージを受信するデバッグ機能
  • データの複製なしでさまざまな方法でテクスチャを解釈するテクスチャビュー
  • メモリセキュリティとマルチアプリケーションの堅牢性の向上

ハードウェアサポート: AMD Radeon HD 5000シリーズ以降(一部のTeraScale GPUではFP64シェーダがエミュレーションで実装されている)、Intel Haswellプロセッサ以降のIntel HD Graphics[ 70 ] (Linux Mesa: ステンシルテクスチャリングなしのIvy Bridge、Haswell以降)、Nvidia GeForce 400シリーズ以降。仮想マシンのVIRGLエミュレーションはMesa 20で4.3以降をサポート。

オープンGL 4.4

発売日: 2013年7月22日[ 60 ]

  • 強制バッファオブジェクト使用制御
  • バッファオブジェクトへの非同期クエリ
  • シェーダにおけるインターフェース変数のレイアウト制御の表現
  • 複数のオブジェクトを同時に効率的にバインド

ハードウェアサポート: AMD Radeon HD 5000シリーズ以降(一部のTeraScale GPUではエミュレーションによってFP64シェーダが実装されています)、Intel Broadwellプロセッサ以降のIntel HDグラフィックス(Linux Mesa: Haswell以降)、[ 74 ] Nvidia GeForce 400シリーズ以降、[ 75 ] Tegra K1

オープンGL 4.5

発売日: 2014年8月11日[ 17 ] [ 61 ]

  • ダイレクトステートアクセス(DSA) - オブジェクトアクセサは、オブジェクトをコンテキストにバインドすることなく状態の照会や変更を可能にし、アプリケーションとミドルウェアの効率と柔軟性を向上させます。[ 76 ]
  • フラッシュ コントロール - アプリケーションはコンテキスト切り替えの前に保留中のコマンドのフラッシュを制御できるため、高性能なマルチスレッド アプリケーションが可能になります。
  • 堅牢性 - GPU リセットが他の実行中のアプリケーションに影響を与えるのを防ぐなど、WebGL ブラウザなどのアプリケーションに安全なプラットフォームを提供します。
  • OpenGL ES 3.1 API とシェーダーの互換性 - デスクトップ システム上で最新の OpenGL ES アプリケーションを簡単に開発および実行できるようになります。

ハードウェアサポート: AMD Radeon HD 5000シリーズ以降 (一部のTeraScale GPUではFP64シェーダがエミュレーションで実装されている)、Intel Broadwellプロセッサ以降のIntel HD Graphics (Linux Mesa: Haswell以降)、Nvidia GeForce 400シリーズ以降、[ 75 ] Tegra K1、Tegra X1。[ 77 ] [ 78 ]

オープンGL 4.6

発売日: 2017年7月31日[ 17 ] [ 9 ] [ 62 ]

ハードウェアサポート: AMD Radeon HD 7000シリーズ以降(一部のTeraScale GPUではエミュレーションによってFP64シェーダが実装されています)、Intel Skylake以降、Nvidia GeForce 400シリーズ以降。[ 75 ]

ドライバーサポート:

  • Linux版Mesa 19.2は、Intel Broadwell以降のOpenGL 4.6をサポートしています。[ 79 ] Mesa 20.0はAMD Radeon GPUをサポートしていますが、[ 80 ] Nvidia Kepler+のサポートは現在進行中です。Mesa 21.1ではZinkがエミュレーションドライバーとして、またソフトウェアドライバーLLVMpipeもMesa 21.0でサポートされています。
  • AMD Adrenalin 18.4.1 グラフィックスドライバー(Windows 7 SP1、10バージョン1803、2018年4月更新)は、AMD Radeon HD 7700+、HD 8500+以降に対応しています。2018年4月リリース。[ 81 ] [ 82 ]
  • Windows 10用のIntel 26.20.100.6861グラフィックドライバー。2019年5月リリース。[ 83 ] [ 84 ]
  • NVIDIA GeForce 397.31 グラフィックスドライバー(Windows 7、8、10 x86-64ビットのみ、32ビット版はサポートされていません 2018年4月リリース[ 85 ]

代替実装

AppleはiOS 12とmacOS 10.14 MojaveでOpenGLを廃止しMetalを採用しましたが、macOS 14 Sonoma( Apple Siliconデバイスを含む)ではまだ利用可能です。[ 86 ] OpenGLでサポートされている最新バージョンは2011年の4.1です。[ 87 ] [ 88 ] Molten( MoltenVKの作者)の独自ライブラリMoltenGLは、OpenGL呼び出しをMetalに変換できます。[ 89 ]

Vulkan上にOpenGLを実装しようとするプロジェクトはいくつかあります。GoogleのANGLEのVulkanバックエンドは、2020年7月にOpenGL ES 3.1への準拠を達成しました。[90] Mesa3DプロジェクトZinkと呼ばれる同様のドライバが含まれています。[ 91 ]

マイクロソフトのArm版Windows 11では、 Mesa Gallium経由でDirectX 12上にオープンソースのOpenGL実装であるGLon12経由でOpenGL 3.3のサポートが追加されました。[ 92 ] [ 93 ] [ 94 ]

ヴルカン

Vulkanは、以前は「次世代OpenGLイニシアチブ」(glNext)と呼ばれていましたが、[ 95 ] [ 96 ]、OpenGLとOpenGL ESを1つの共通APIに統合するための根本的な再設計の取り組みであり、既存のOpenGLバージョンとの下位互換性はありません。[ 97 ] [ 98 ] [ 99 ]

Vulkan API の最初のバージョンは、2016 年 2 月 16 日にリリースされました。

参照

  • ARBアセンブリ言語– OpenGLのレガシー低レベルシェーディング言語
  • Direct3D – OpenGLの主な競合相手
  • Glide (API) – かつて3dfx Voodooカードで使用されていたグラフィックAPI
  • Metal (API) – iOS、macOS、tvOS、watchOS 用のグラフィック API
  • OpenAL – OpenGLに似せて設計されたクロスプラットフォームのオーディオライブラリ
  • OpenGL ES – 組み込みシステム向け OpenGL
  • OpenSL ES – クロノスグループが開発した組み込みシステム向けオーディオAPI
  • OpenVG – Khronos Group が開発した、高速 2D グラフィックスの API
  • RenderMan インターフェース仕様(RISpec) – Pixar のフォトリアリスティックなオフライン レンダリング用オープン API
  • VOGL – OpenGL用デバッガー
  • Vulkan – 低オーバーヘッド、クロスプラットフォームの 2D および 3D グラフィック API、「次世代 OpenGL イニシアチブ」
  • グラフィックスパイプライン
  • ウェブGL
  • ウェブGPU

注記

  1. ^ ARBとEXTはOpenGLの拡張識別子です。各拡張機能には、開発元企業名に基づく短い識別子が付与されます(例: Nvidiaの場合はNV)。複数のベンダーが同じAPIを用いて同じ機能を実装することに合意した場合、EXTという識別子を用いて共有拡張機能がリリースされることがあります。このような場合、Khronos Groupのアーキテクチャレビューボードが当該拡張機能を明示的に承認することもあり、その場合はARBという識別子が使用されます。 [ 8 ]
  2. ^オプション、OpenGL 4.3 でコア化されました

参考文献

  1. ^ 「Khronos、SPIR-V サポートを備えた OpenGL 4.6 をリリース」
  2. ^ Lextrait, Vincent (2010年1月). 「The Programming Languages Beacon, v10.0」 . 2012年5月30日時点のオリジナルよりアーカイブ2010年3月14日閲覧。
  3. ^ 「製品:ソフトウェア:OpenGL:ライセンスとロゴ」 SGI。2012年11月1日時点のオリジナルよりアーカイブ2012年11月7日閲覧。
  4. ^ 「OpenGL グラフィックス システム: 仕様」(PDF) 4.0 (コア プロファイル) 2010 年 3 月 11 日。
  5. ^ 「SGI – OpenGLの概要」2004年10月31日時点のオリジナルよりアーカイブ2007年2月16日閲覧。
  6. ^ Peddie, Jon (2012年7月). 「Who's the Fairest of Them All?」 Computer Graphics World . 2018年5月30日閲覧
  7. ^ 「OpenGL ARB、OpenGL仕様の管理権をKhronos Groupに引き渡す」クロノス・グループ2006年7月31日. 2021年3月18日閲覧
  8. ^ 「Khronos API拡張機能の作成方法」 Khronos Group . 2017年7月31日閲覧
  9. ^ a b c「Khronos、SPIR-Vサポートを備えたOpenGL 4.6をリリース」 The Khronos Group Inc. 2017年7月31日. 2017年7月31日閲覧
  10. ^ 「Vulkan、OpenGL、OpenGL ES SIGGRAPH 2017:OpenGL ESの新コアバージョンの計画なし」(PDF)。Khronos Group。2017年。
  11. ^ 「OpenGLの将来(フォーラムディスカッション)」Khronos Group . 2020年。
  12. ^ “クロノス ニュース アーカイブ” .クロノスグループ。 2022 年 11 月 28 日。
  13. ^ “クロノスブログ” .クロノスグループ。 2022 年 11 月 28 日。
  14. ^ "GLSL_NV_ray_tracing" . GitHub .
  15. ^ "GL_NV_mesh_shader" . GitHub .
  16. ^ 「Khronosメンバーシップの概要とFAQ」 Khronos.org 2012年11月7日閲覧
  17. ^ a b c d「Khronos OpenGL Registry」 . Khronos Group . 2017年7月31日閲覧
  18. ^ 「OpenGL - 高性能グラフィックスのための業界基盤」クロノス・グループ、2011年7月19日。 2021年3月18日閲覧
  19. ^ 「GLUTの代替リスト(保守)」 Khronos Group . 2013年5月2日閲覧
  20. ^ 「関連ツールキットとAPI」 . www.opengl.org . OpenGL . 2014年10月8日閲覧
  21. ^ 「IRIS GL、SGIの所有物」
  22. ^ Kilgard, Mark (2008). 「OpenGLの歴史:IRIS GL(スライド)」 . www.slideshare.net .
  23. ^ 「序文: OpenGLとは?」OpenGLBook . 2024年12月31日閲覧
  24. ^ 「付録B. OpenGLとIRIS GLの違い」 . tech-pubs.net . 2025年10月3日閲覧
  25. ^ 「OpenGL ARBの作成」 。 2007年2月22日時点のオリジナルよりアーカイブ2007年2月16日閲覧。
  26. ^ 「OpenGL++の終了」。クロノスグループ。
  27. ^ 「トップゲーム開発者がMicrosoftにOpenGLの積極的サポートを要請」 Next Generation第32号Imagine Media 1997年8月17ページ。
  28. ^ 「華氏に関するお知らせ」 。2007年9月27日時点のオリジナルよりアーカイブ
  29. ^ 「Members of Fahrenheit. 1998」。Computergram International 。1998年。2007年10月5日時点のオリジナルよりアーカイブ
  30. ^ 「華氏終焉」ザ・レジスター
  31. ^ 「OpenGL ARB、OpenGL仕様の管理をKhronos Groupに移譲」 Khronosプレスリリース。2006年7月31日。
  32. ^ 「OpenGL ARB、OpenGL仕様の管理権をKhronos Groupに譲渡」 AccessMyLibraryアーカイブ。
  33. ^ 「OpenGLが30周年を祝う」 www.phoronix.com . 2024年12月7日閲覧
  34. ^ 「OpenGLは死んでいない、Vulkan万歳」 The Accidental Astronomer . 2023年4月9日. 2024年12月7日閲覧
  35. ^ Smith, Ryan (2018年6月5日). 「Apple、すべてのOSでOpenGLを廃止、開発者にMetalの使用を推奨」 . www.anandtech.com . Purch. 2018年6月6日時点のオリジナルよりアーカイブ。 2018年6月5日閲覧
  36. ^ 「GLQuake」 . Quake Wiki .
  37. ^ eTeknix.com (2016年7月29日). 「Doom OpenGL VS Vulkan グラフィックスパフォーマンス分析」 . eTeknix . 2024年12月7日閲覧。
  38. ^ 「Doom Wiki: id Tech 7」 . 2021年10月26日閲覧
  39. ^ 「Technology Licensing: id Tech 2」2009年11月8日時点のオリジナルよりアーカイブ2008年9月17日閲覧。
  40. ^ Dawe, Liam (2023年3月7日). 「Dota 2、OpenGLサポートを削除、新ヒーローMuertaが配信開始、4月に大型アップデート予定」GamingOnLinux . 2023年3月26日閲覧
  41. ^ 「Jet Set Vulkan : Vulkan への移行を振り返る」 .
  42. ^ 「OpenGL - 高性能グラフィックスの業界基盤」クロノス・グループ、2011年7月19日。 2026年1月23日閲覧
  43. ^ 「NVIDIA DLSS SDK」 . github.com/NVIDIA/DLSS .
  44. ^ 「AMD FidelityFX-SDK」。github.com /GPUOpen -LibrariesAndSDKs/FidelityFX-SDK 。
  45. ^ 「Magma: 概要」 . fuchsia.dev . 2023年3月26日閲覧
  46. ^ Kilgard, Mark J. (2001). X Window System のための OpenGL プログラミング. グラフィックスプログラミング (第6版). ボストン, マサチューセッツ州. ミュンヘン: Addison-Wesley. p. 6. ISBN 978-0-201-48359-8
  47. ^ 「OpenGLグラフィックスシステム:仕様」(PDF)。1.1。1997年3月4日。
  48. ^ Astle, Dave (2003年4月1日). 「Moving Beyond OpenGL 1.1 for Windows」 . gamedev.net . 2007年11月15日閲覧
  49. ^イソルナ、JM (2015).材料の視覚的シミュレーション: テオリア、テクニカ、分析。 UPCグラウ。 Arquitectura、urbanisme i edificació (スペイン語)。カタルーニャ工科大学。 p. 191.ISBN 978-84-9880-564-2. 2019年8月21日閲覧
  50. ^ a b c「OpenGLグラフィックスシステム:仕様」(PDF)。2.1。2006年12月1日。
  51. ^ 「ポイントプリミティブ」
  52. ^ 「OpenGL グラフィック システム: 仕様」(PDF) 3.0。2008年9月23日。
  53. ^ 「OpenGLグラフィックスシステム:仕様」(PDF) 3.1。2009年5月28日。
  54. ^ 「OpenGLグラフィックスシステム:仕様」(PDF) 3.2(コアプロファイル)2009年12月7日。
  55. ^ a b c「Khronos、OpenGL 4.0で最先端のクロスプラットフォーム グラフィックス アクセラレーションを実現」。2010年3月11日。
  56. ^ 「Khronos、OpenGL 4.1仕様のリリースでクロスプラットフォーム3Dグラフィックスの進化を推進」 2010年7月26日。
  57. ^ a b「クロノス、OpenGL 4.2仕様のリリースでクロスプラットフォーム3Dグラフィックスを強化」クロノス・グループ、2011年8月8日。
  58. ^ a b「Khronos、大幅な機能強化を加えたOpenGL 4.3仕様をリリース」 2012年8月6日。
  59. ^ 「Khronos、大幅な機能強化を加えたOpenGL 4.3仕様をリリース」 2012年8月6日。
  60. ^ a b c「KhronosがOpenGL 4.4仕様をリリース」 2013年7月22日。
  61. ^ a b「Khronos Group、OpenGLエコシステムにおける重要な進歩を発表 – Khronos Groupプレスリリース」 The Khronos Group Inc. 2014年8月10日. 2015年4月17日閲覧
  62. ^ a b Kessenich, John; Baldwin, Dave. 「OpenGLシェーディング言語、バージョン4.60.7」。The Khronos Group Inc. 2019年8月21日閲覧
  63. ^ Abi-Chahla, Fedy (2008年9月16日). 「OpenGL 3 (3DLabsとOpenGLの進化)」 . Tom's Hardware . 2010年10月24日閲覧
  64. ^ 「OpenGL グラフィック システム: 仕様」(PDF) 2.0. 2004 年 10 月 22 日。
  65. ^ 「OpenGL ARBがOpenGL 3.0のアップデートを発表」 2007年10月30日。2007年11月7日時点のオリジナルよりアーカイブ2007年10月31日閲覧。
  66. ^ 「OpenGL 3.0リリース、開発者は激怒 – Slashdot」 Tech.slashdot.org、2008年8月11日。 2012年11月7日閲覧
  67. ^ 「OpenGL BOF は問題なく実行され、ピッチフォークは見られませんでした」
  68. ^ 「高性能グラフィックスの業界標準」 OpenGL、2008年8月18日。 2017年7月31日閲覧
  69. ^ 「NVIDIA は現在、早期 OpenGL 3.0 ドライバーを提供しています」
  70. ^ a b c d「Intel Iris and HD Graphics Driver for Windows 7/8/8.1 64bit」インテルダウンロード センター. 2015年4月2日時点のオリジナルよりアーカイブ
  71. ^ 「予想される最大テクスチャサイズ- グラフィックスおよび GPU プログラミング」。GameDev.net
  72. ^ 「OpenGL 4.1 (コアプロファイル) - 2010年7月25日」(PDF) . Khronos.org .
  73. ^ 「OpenGLの歴史 - OpenGL Wiki」 . Khronos.org .
  74. ^ 「Intel Skylake-S CPUと100シリーズチップセットの詳細がリークで明らかに」 NDTV Gadgets 2015年4月17日。
  75. ^ a b c Larabel, Michael (2017年7月31日). 「NVIDIA、OpenGL 4.6をサポートするLinuxドライバー381.26.11をリリース」 . Phoronix .
  76. ^ 「OpenGL 4.5がリリースされました。Direct3Dの優れた機能の1つを搭載しています」Ars Technica、2014年8月11日。 2015年4月17日閲覧
  77. ^ 「SG4121: NVIDIA GPUのOpenGLアップデート」Ustream2015年5月17日時点のオリジナルよりアーカイブ。 2015年4月17日閲覧
  78. ^ Kilgard, Mark (2014年8月12日). 「NVIDIA GPU向けOpenGL 4.5アップデート」 . 2015年4月17日閲覧
  79. ^ Larabel, Michael (2019年8月21日). 「IntelのOpenGL LinuxドライバーがMesa 19.2でOpenGL 4.6をサポート」 . Phoronix .
  80. ^ Larabel, Michael (2019年11月27日). 「AMDのRadeonSIドライバーがついにOpenGL 4.6に対応」 . Phoronix .
  81. ^ 「AMD Adrenalin 18.4.1 グラフィックスドライバー リリース (OpenGL 4.6、Vulkan 1.1.70) – Geeks3D」 www.geeks3d.com 2018年5月2018年5月10日閲覧
  82. ^ 「Radeon Software Adrenalin Edition 18.4.1 リリースノート」 . support.amd.com . 2018年5月10日閲覧
  83. ^ 「Intel グラフィックス ドライバー 25.20.100.6861 リリース (OpenGL 4.6 + Vulkan 1.1.103) | Geeks3D」 2019年5月16日. 2019年5月16日閲覧
  84. ^ 「Windows 10 DCHドライバー」 . Intelダウンロードセンター. 2019年8月21日閲覧。
  85. ^ 「NVIDIA GeForce 397.31 グラフィックスドライバー リリース (OpenGL 4.6、Vulkan 1.1、RTX、CUDA 9.2) – Geeks3D」 www.geeks3d.com 2018年4月25日. 2018年5月10日閲覧
  86. ^ 「Apple 開発者ドキュメント」 . developer.apple.com .
  87. ^ Cunningham, Andrew (2019年10月7日). 「macOS 10.15 Catalina: Ars Technicaレビュー」 . Ars Technica .
  88. ^ Axon, Samuel (2018年6月6日). 「OpenGLサポートの終了と、Appleが基調講演で発表しなかったその他のアップデート」 Ars Technica . 2020年10月19日閲覧
  89. ^ 「iOSとmacOSでVulkanとより高速なOpenGL ES」Molten . 2020年10月19日閲覧
  90. ^ ANGLEプロジェクトの著者(2020年10月14日)。 「google/angle: Windows、Mac Linux、iOS、Android向けの準拠したOpenGL ES実装」。GitHub 。 2020年12月17日閲覧
  91. ^ 「Zink」。Mesa 3Dグラフィックスライブラリの最新ドキュメント
  92. ^ 「Arm64上のWindowsの現状:概要」 . Chips and Cheese . 2022年3月13日. 2023年10月23日閲覧
  93. ^ 「DirectXでのOpenCLとOpenGLの紹介」 Collabora | オープンソースコンサルティング。 2023年10月23日閲覧
  94. ^ 「DirectXレイヤー化におけるOpenGLの深掘り」 Collabora | オープンソースコンサルティング2023年10月23日閲覧
  95. ^ Dingman, Hayden (2015年3月3日). 「DirectX 12 を狙う、プラットフォームに依存しない強力なゲーミングテクノロジー、Vulkan が登場」 . PC World . 2015年3月3日閲覧
  96. ^ Bright, Peter (2015年3月3日). 「KhronosがVulkanを発表:最新システム向けに構築されたOpenGL」 . Ars Technica . 2015年3月3日閲覧
  97. ^ 「Khronos、次世代OpenGLイニシアチブを発表」 AnandTech。2014年8月13日時点のオリジナルよりアーカイブ。 2014年8月20日閲覧
  98. ^ Anthony, Sebastian (2014年8月11日). 「OpenGL 4.5リリース、次世代OpenGL発表:クロスプラットフォームのMantleキラー、DX12の競合」 . ExtremeTech . 2014年8月20日閲覧
  99. ^ 「KhronosがOpenGL-Nextに関するスライドを公開」 Phoronix . 2014年8月22日閲覧

さらに読む