| OpenGL | |
|---|---|
| 原作者 | シリコングラフィックス |
| 開発者 | クロノス・グループ(旧ARB) |
| リリース | 1992年6月 30日 ( 1992-06-30 ) |
| 安定放出 | |
| 後継 | バルカン |
| タイプ | 3DグラフィックスAPI |
| ライセンス |
|
| Webサイト | opengl.org |
OpenGL(Open Graphics Library [ 3 ])は、 2Dおよび3Dベクターグラフィックスをレンダリングするためのクロス言語、クロスプラットフォームのアプリケーションプログラミングインターフェイス(API)です。このAPIは通常、グラフィックス処理ユニット(GPU)とやり取りして、ハードウェアアクセラレーションによるレンダリングを実現するために使用されます。
Silicon Graphics, Inc. (SGI) は 1991 年に OpenGL の開発を開始し、1992 年 6 月 30 日にリリースしました。[ 4 ] [ 5 ]これは、コンピュータ支援設計(CAD)、ビデオゲーム、科学的可視化、仮想現実、フライト シミュレーションなど、さまざまなアプリケーションで使用されています。2006 年以降、OpenGL は非営利の技術コンソーシアムであるKhronos Groupによって管理されています。[ 6 ]


OpenGL仕様は、2Dおよび3Dグラフィックスを描画するための抽象的なアプリケーションプログラミングインターフェース(API)を規定しています。これは、 GPUなどのハードウェアアクセラレーションを主に、あるいは完全に利用して実装されるように設計されていますが、API全体をCPU上で動作するソフトウェアで実装することも可能です。
API は、クライアント プログラムから呼び出すことができる一連の関数と、一連の名前付き整数定数(たとえば、10 進数 3553 に対応する定数 GL_TEXTURE_2D) として定義されます。関数の定義は、表面的にはプログラミング言語Cのものと似ていますが、言語に依存しません。そのため、OpenGL には多くの言語バインディングがあり、中でも特に注目すべきものとして、Web ブラウザ内から 3D レンダリングを行うためのJavaScriptバインディングWebGL ( OpenGL ES 2.0に基づく API )、C バインディングWGL、GLX、CGL 、 iOSが提供する C バインディング、Androidが提供するJavaおよび C バインディングなどがあります。
OpenGLは言語に依存しないだけでなく、クロスプラットフォームでもあります。仕様書にはOpenGLコンテキストの取得と管理に関する記述はなく、これは基盤となるウィンドウシステムの詳細として扱われます。同様の理由から、OpenGLはレンダリングのみに特化しており、入力、オーディオ、ウィンドウ処理に関連するAPIは提供していません。
OpenGL仕様の新しいバージョンはKhronosグループによってリリースされ、それぞれがさまざまな新機能をサポートするためにAPIを拡張します。各バージョンの詳細は、グラフィックカードメーカー、オペレーティングシステム設計者、MozillaやGoogleなどの一般的なテクノロジー企業を含むグループメンバー間の合意によって決定されます。[ 7 ]
コア API で要求される機能に加えて、グラフィックス処理ユニット(GPU) ベンダーは拡張機能の形で追加機能を提供することができます。拡張機能は新しい関数や定数を導入したり、既存の OpenGL 関数の制限を緩和または削除したりすることができます。ベンダーは拡張機能を使用して、他のベンダーや Khronos Group 全体からのサポートを必要とせずにカスタム API を公開できるため、OpenGL の柔軟性が大幅に向上します。すべての拡張機能は OpenGL レジストリに収集され、定義されています。[ 8 ]
OpenGL の各新バージョンで導入される機能は、通常、広く実装されている複数の拡張機能、特に ARB または EXT タイプの拡張機能の機能を組み合わせたものから形成されます。[ 9 ]
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 ]拡張機能をコア プロファイルに含めることに限定されました。[ 11 ]
OpenGL の積極的な開発は、2016 年にリリースされ、初期開発段階では glNext というコードネームが付けられていたVulkan APIを優先して中止されました。2017 年に、 Khronos Group はOpenGL ES の新しいバージョンは提供されないことを発表し[ 12 ] [ 13 ]、それ以来、Vulkan やその他のテクノロジーの開発に注力しています。[ 14 ] [ 15 ]その結果、レイ トレーシングなど、最新の GPU が提供する特定の機能は、OpenGL 標準ではサポートされていません。ただし、新しい機能のサポートは、ベンダー固有の OpenGL 拡張機能を通じて提供される可能性があります。[ 16 ] [ 17 ]
OpenGLアーキテクチャレビュー委員会は、仕様書とともに一連のマニュアルを公開しており、これらのマニュアルはAPIの変更点を追跡するために更新されています。これらは一般的に表紙の色で識別されます。
歴史書(OpenGL 2.0以前):
OpenGLのドキュメントは、公式ウェブページからもアクセスできます。[ 18 ]
OpenGLの初期バージョンは、OpenGLユーティリティライブラリ(GLU)と呼ばれる付属ライブラリとともにリリースされました。このライブラリは、テッセレーション、ミップマップやプリミティブシェイプの生成など、当時のハードウェアではサポートされにくいシンプルで便利な機能を提供していました。GLUの仕様は1998年に最後に更新され、現在では非推奨となっているOpenGLの機能に依存しています。
OpenGL コンテキストの作成は非常に複雑なプロセスであり、オペレーティングシステムによって異なるため、自動 OpenGL コンテキスト作成は、SDL、Allegro、SFML、FLTK、Qtなど、いくつかのゲーム開発およびユーザーインターフェイスライブラリの一般的な機能となっています。OpenGL 対応ウィンドウを生成するためだけに設計されたライブラリもいくつかあります。そのようなライブラリの最初のものはOpenGL Utility Toolkit (GLUT) で、後にfreeglutに置き換えられました。GLFWはより新しい代替手段です。[ 19 ]
OpenGL拡張機能の識別とロードには多くの作業が必要となるため、利用可能なすべての拡張機能と関数を自動的にロードするライブラリがいくつか開発されています。例としては、OpenGL Easy Extension library (GLEE)、OpenGL Extension Wrangler Library (GLEW)、glbindingなどがあります。また、 Java OpenGL、PyOpenGL、WebGLなどのほとんどの言語バインディングでも拡張機能は自動的にロードされます。

glxinfo、システム上でのOpenGLのMesa実装に関する情報を示しています。またglxgears、システム上でのOpenGL実装をテストするプログラムも示しています。Mesa 3Dは、OpenGLのオープンソース実装です。純粋なソフトウェアレンダリングが可能で、BSD、Linux 、その他のプラットフォームでは、 Direct Rendering Infrastructureを活用することでハードウェアアクセラレーションも利用できます。バージョン20.0の時点では、OpenGL標準のバージョン4.6を実装しています。
1980年代、クロスプラットフォームライブラリがなかった時代、幅広いグラフィックハードウェアに対応するソフトウェアを開発することは困難だった。ソフトウェア開発者は、それぞれのハードウェアごとに独自のインターフェースとドライバを作成していた。これはコストがかさみ、開発労力の増大につながった。
1990年代初頭までに、シリコングラフィックス(SGI)はワークステーション向け3Dグラフィックスのリーダーとなった。IRIS GL API [ 21 ] [ 22 ]は、IRIS GLが使いやすく、即時モードレンダリングをサポートしていたため、 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の制約の一つは、基盤となるハードウェアがサポートする機能にしかアクセスできないことでした。グラフィックスハードウェアがネイティブにサポートしていない機能であれば、アプリケーションはその機能を使用できませんでした。OpenGLは、ハードウェアがサポートしていない機能のソフトウェア実装を提供することでこの問題を克服し、比較的低スペックなシステムでも高度なグラフィックスを使用できるようになりました。OpenGLはハードウェアへのアクセスを標準化し、ハードウェアインターフェースプログラム(デバイスドライバ)の開発責任をハードウェアメーカーに委ね、ウィンドウ機能を基盤となるオペレーティングシステムに委任しました。非常に多くの種類のグラフィックスハードウェアが存在する中で、このようにすべてが同じ言語で通信できるようにしたことは、ソフトウェア開発者に3Dソフトウェア開発のためのより高レベルなプラットフォームを提供することで、大きな影響を与えました。
1992年、[ 25 ] SGIは、将来的にOpenGL仕様を維持および拡張する企業グループであるOpenGLアーキテクチャレビューボード(OpenGL ARB)の設立を主導しました。2年後、彼らはシーングラフAPI(おそらく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年には、ヒューレット・パッカードがプロジェクトに参加した。[ 29 ]当初は、インタラクティブな3DコンピュータグラフィックスAPIの世界に秩序をもたらす可能性を秘めていたが、SGIの財政的制約、Microsoftの戦略的理由、および業界全体のサポート不足のため、1999年に放棄された。[ 30 ]
2006年7月、OpenGLアーキテクチャレビュー委員会は、OpenGL API標準の管理をKhronosグループに移管することを決定した。[ 31 ] [ 32 ]
OpenGL は 1990 年代から 2000 年代にかけて多くの CAD ソフトウェア ( Blenderなど) やゲームの標準であり、事実上すべてのハードウェア ベンダーで広くサポートされています。後継の Vulkan や Metal などの新しいグラフィックス API が登場したにもかかわらず、OpenGL は広く使用されている標準であり続けています。この継続的な重要性は、新しい拡張機能やドライバの最適化による継続的な開発、クロス プラットフォーム互換性、ANGLEや Zink などの互換性レイヤーの利用可能性など、いくつかの要因によって支えられています。これらのレイヤーにより、OpenGL は Vulkan や Metal 上で効率的に動作し、開発者にとって継続的な使用や段階的な移行の道筋を提供します。[ 33 ] [ 34 ]
しかし、グラフィックス API の状況は変化しており、一部の企業は OpenGL から離れつつあります。2018 年 6 月、Apple はすべてのプラットフォーム ( iOS、macOS、tvOS ) で OpenGL API を非推奨とし、開発者に2014 年に導入された独自のMetal API を使用するよう促しました。 [ 35 ]
ゲーム開発者も新しい API を採用し始めています。1990 年代後半からGLQuake [ 36 ]やDoom シリーズの一部のゲーム[ 37 ]などのゲームで OpenGL を使用していたid Software は、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 の開発を担当するコンソーシアムであるKhronos Group は、2017 年に最後のリリースが行われ、OpenGL の更新を停止しました。[ 42 ]ハードウェア アクセラレーションによるレイ トレーシング、GPU上でのビデオ デコード、Nvidia DLSS [ 43 ]やAMD FSR [ 44 ] などの高度なアンチエイリアシングアルゴリズムといった最新のグラフィックス技術は、OpenGL には搭載されていません。もう 1 つの最新機能であるメッシュ シェーダーは、当初は Nvidia 専用の拡張機能でのみサポートされていましたが、2025 年にクロス ベンダーの OpenGL メッシュ シェーダー拡張機能がリリースされました。[ 45 ] [ 46 ] [ 47 ]
GoogleのFuchsia OSは、ネイティブでVulkanを使用し、Vulkan準拠のGPUを必要とする一方で、ANGLE変換レイヤーを介してVulkanの上にOpenGLをサポートすることを意図している。[ 48 ]
OpenGLの最初のバージョンであるバージョン1.0は、1992年6月30日にマーク・シーガルとカート・エイケリーによってリリースされました。それ以来、OpenGLは仕様の新しいバージョンをリリースすることで、時折拡張されてきました。こうしたリリースでは、すべての準拠グラフィックカードがサポートしなければならない基本機能セットが定義され、これに基づいて新しい拡張機能をより容易に記述できるようになります。OpenGLの新しいバージョンには、グラフィックカードベンダーの間で広くサポートされているいくつかの拡張機能が組み込まれる傾向がありますが、それらの拡張機能の詳細は変更される場合があります。
発売日:2004年9月7日
OpenGL 2.0 は、OpenGL が停滞し、明確な方向性を欠いているという懸念に対処するために3Dlabsによって考案されました。 [ 66 ] 3Dlabs は、標準に多くの主要な追加を提案しました。これらのほとんどは、当時 ARB によって却下されたか、または 3Dlabs が提案した形で実現しませんでした。しかし、C スタイルのシェーディング言語に関する彼らの提案は最終的に完成し、現在の OpenGL シェーディング言語 ( GLSLまたは GLslang) の形式になりました。置き換えられたアセンブリのようなシェーディング言語と同様に、固定機能の頂点パイプとフラグメントパイプをシェーダーに置き換えることができましたが、今回は C のような高レベル言語で記述されています。
GLSL の設計は、当時利用可能だったハードウェアの限界に比較的ほとんど妥協しなかった点で注目に値する。これは、OpenGL が単に現在利用可能なハードウェアの状態を追跡するのではなく、3D アクセラレータに対して野心的で将来を見据えた目標を設定するという、以前の伝統を彷彿とさせる。最終的な OpenGL 2.0 仕様[ 67 ]には、GLSL 1.10 のサポートが含まれている。
発売日:2006年7月2日
OpenGL 2.1では、ピクセルバッファオブジェクト、sRGBテクスチャ、およびGLSL 1.20のサポートが追加されました。
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月に最終決定される予定だったが、Khronos Groupは10月30日に、仕様を公開する前に解決したいいくつかの問題に直面したと発表した。[ 68 ]その結果、仕様は延期され、Khronos Groupは最終的なOpenGL 3.0仕様が公開されるまでメディアへの情報公開を控えた。
最終仕様は、Longs Peak の提案ほど革新的ではなかったことが判明した。すべての即時モードと固定機能 (非シェーダーモード) を削除する代わりに、仕様ではそれらを非推奨機能として含めた。提案されたオブジェクト モデルは含まれておらず、将来の改訂に含める計画も発表されていない。結果として、API はほぼ変更されず、既存の拡張機能のいくつかがコア機能に昇格した。この決定は一部の開発者グループの間でちょっとした騒動を引き起こし、[ 69 ]多くの開発者が抗議としてDirectXに切り替えると表明した。ほとんどの不満は、Khronos が開発コミュニティに十分なコミュニケーションを取らなかったことと、多くの人が好意的に見ていた複数の機能が破棄されたことに集中していた。その他の不満としては、OpenGL 3.0 を使用するために DirectX 10 レベルのハードウェアが必要であること、ジオメトリ シェーダーとインスタンス レンダリングがコア機能として含まれていないことなどが挙げられる。
他の情報源によると、コミュニティの反応は当初伝えられていたほど深刻ではなく、[ 70 ]多くのベンダーがアップデートを支持したという。[ 71 ] [ 72 ]
発売日:2008年8月11日
OpenGL 3.0 では、API の将来の改訂を簡素化するために、非推奨メカニズムが導入されました。非推奨としてマークされた特定の機能は、ウィンドウ システムから前方互換性のあるコンテキストを要求することで完全に無効にできます。ただし、完全なコンテキストを要求することで、これらの非推奨機能と並行して OpenGL 3.0 の機能にアクセスすることもできます。
廃止された機能は以下のとおりです。
ハードウェアサポート:Nvidia GeForce 8シリーズ以降、ATI Radeon HD 2000シリーズ以降、Intel Sandy Bridgeプロセッサ以降のIntel HD Graphics 。
発売日:2009年3月24日
OpenGL 3.1 では、ワイドラインを除き、バージョン 3.0 で非推奨となったすべての機能が完全に削除されました。このバージョン以降では、フルコンテキストを使用して新機能にアクセスしたり、前方互換性のあるコンテキストを使用して非推奨機能にアクセスしたりすることはできません。実装がARB_compatibility拡張機能をサポートしている場合は、前者のルールに例外が適用されますが、これは保証されません。GLSL 1.40 のサポートが含まれています。
ハードウェアサポート:Mesaはバージョン21.0以降のARM Panfrostをサポートしています。
発売日:2009年8月3日
OpenGL 3.2 は、OpenGL 3.0 で導入された非推奨メカニズムをさらに発展させ、仕様をコアプロファイルと互換性プロファイルに分割しました。互換性コンテキストには、OpenGL 3.1 と同時にリリースされた ARB_compatibility 拡張機能に相当する、以前に削除された固定機能 API が含まれますが、コアコンテキストには含まれません。OpenGL 3.2 には、GLSL バージョン 1.50 へのアップグレードも含まれています。
発売日: 2010年3月11日
OpenGL 3.3 には、OpenGL 4.0 の機能を可能な限り維持しつつ、古いハードウェアのサポートも維持することを目標としたマイナーな追加機能が含まれています。[ 58 ]追加機能には、新しいブレンド関数、サンプラーオブジェクト、新しいテクスチャおよび頂点フォーマットが含まれます。また、GLSL バージョン 3.30 のサポートも追加され、メジャーバージョンとマイナーバージョンが OpenGL と一致するようになりました。
発売日:2010年3月11日
OpenGL 4.0はバージョン3.3と同時にリリースされました。[ 58 ]これはDirect3D 11をサポートできるハードウェア向けに設計されました。
OpenGL 3.0と同様に、このバージョンのOpenGLには、テッセレーションなど、Direct3D 11クラスのハードウェアの機能を徹底的に活用するために設計された、比較的重要性の低い拡張機能が多数含まれています。
ハードウェアサポート: Nvidia GeForce 400 シリーズ以降、AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーがエミュレーションで実装されています)、 Intel Ivy Bridgeプロセッサ以降のIntel HD Graphics 。 [ 73 ]
発売日:2010年7月26日
ハードウェアサポート: Nvidia GeForce 400 シリーズ以降、AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーがエミュレーションで実装されています)、 Intel Haswellプロセッサ以降のIntel HD Graphics [ 73 ] (Linux Mesa: Ivy Bridge 以降)。さらに、これは Apple macOS でサポートされる最後のコア プロファイルです。
リリース日: 2011年8月8日[ 60 ]
ハードウェアサポート: Nvidia GeForce 400 シリーズ以降、AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーはエミュレーションで実装)、およびIntel Haswellプロセッサ以降のIntel HD Graphics。[ 73 ] (Linux Mesa: Ivy Bridge 以降)
リリース日: 2012年8月6日[ 61 ]
ハードウェア サポート: AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーがエミュレーションで実装されています)、Intel Haswellプロセッサ以降のIntel HD Graphics。[ 73 ] (Linux Mesa: ステンシル テクスチャリングなしの Ivy Bridge、Haswell 以降)、Nvidia GeForce 400 シリーズ以降。仮想マシン用の VIRGL エミュレーションは、Mesa 20 で 4.3 以降をサポートしています。
リリース日: 2013年7月22日[ 63 ]
ハードウェアサポート: AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーがエミュレーションで実装されています)、Intel Broadwellプロセッサ以降のIntel HD Graphics (Linux Mesa: Haswell 以降)、[ 77 ] Nvidia GeForce 400 シリーズ以降、[ 78 ] Tegra K1。
ハードウェアサポート: AMD Radeon HD 5000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーがエミュレーションで実装されています)、Intel Broadwellプロセッサ以降のIntel HD Graphics (Linux Mesa: Haswell 以降)、Nvidia GeForce 400 シリーズ以降、[ 78 ] Tegra K1、および Tegra X1。[ 80 ] [ 81 ]
リリース日: 2017年7月31日[ 8 ] [ 11 ] [ 65 ]
ハードウェアサポート: AMD Radeon HD 7000 シリーズ以降 (一部の TeraScale GPU では FP64 シェーダーはエミュレーションで実装)、Intel Skylake以降、Nvidia GeForce 400 シリーズ以降。[ 78 ]
ドライバーサポート:
Apple はiOS 12 および macOS 10.14 Mojave でMetal を優先して OpenGL を非推奨にしましたが、macOS 15 Sequoia ( Apple Siliconデバイスを含む) ではまだ利用可能です。[ 89 ] OpenGL でサポートされている最新バージョンは 2011 年の 4.1 です。[ 90 ] [ 91 ] MoltenVKの作者である Molten の独自ライブラリMoltenGL は、OpenGL 呼び出しを Metal に変換できます。[ 92 ]
Vulkan 上に OpenGL を実装しようとするプロジェクトがいくつかあります。Google のANGLEの Vulkan バックエンドは、2020 年 7 月に OpenGL ES 3.1 に準拠しました。[93] Mesa3Dプロジェクトにも、Zinkと呼ばれる同様のドライバが含まれています。[ 94 ]
MicrosoftのWindows 11 on Arm は、 Mesa Galliumを介して DirectX 12 上に構築されたオープンソースの OpenGL 実装である GLon12 を介して OpenGL 3.3 のサポートを追加しました。[ 95 ] [ 96 ] [ 97 ]
Vulkanは、以前は「次世代OpenGLイニシアチブ」(glNext)と呼ばれていましたが、[ 98 ] [ 99 ] OpenGLとOpenGL ESを1つの共通APIに統合するためのゼロからの再設計の取り組みであり、既存のOpenGLバージョンとの後方互換性はありません。[ 100 ] [ 101 ] [ 102 ]
Vulkan APIの最初のバージョンは、2016年2月16日にリリースされました。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)