チュートリアル

▷Opengl:それは何ですか、何のためですか

目次:

Anonim

OpenGLについて聞いたことがありますか? 基本的に複数のプラットフォームで利用できる唯一のAPIであるため、すぐに業界をリードするリアルタイムグラフィックAPIになりました。 今日は、OpenGLの概要とOpenGLの目的を説明するこの記事をお届けします。

コンテンツインデックス

歴史

80年代には、グラフィックの世界に関連するさまざまなハードウェア互換性のある ソフトウェアの開発は、 開発者にとって大きな課題でした 。 非常に異なるインターフェイスを扱い、ハードウェアの種類ごとに特定のドライバーを作成する必要があり、非常に高価だったため、開発をスピードアップするためにプログラマーのチームを外部委託しました。 各チームがそれぞれのインターフェースで個別に作業したため、多くの冗長コードが生成されました。 1992年、 SGIはOpenGLアーキテクチャレビューボードOpenGL ARB )の作成を主導しました。これは、今後数年間で仕様を維持および拡張する企業のグループです。 OpenGLはIRIS GLから発展し、サポートされていない機能にソフトウェアエミュレーションを提供することで、ハードウェア依存の問題を克服しました。 したがって、アプリケーションは比較的弱いシステムで高度なグラフィックスを使用できます。

OpenGLとは何かを理解するには 、まずAPIとは何かを知る必要があります。

OpenGLを理解するために、APIとは何ですか?

APIまたはアプリケーションプログラミングインターフェイスは、 さまざまなアプリケーションが相互に通信するために使用できるコードのセットです 。 これは、ユーザーとプログラムの間の対話を促進するためにユーザーインターフェイスと同様のタスクを実行するものであり、ソフトウェア環境内でのみ適用されます 。 異なるプラットフォーム間でコードまたは機能を接続するために使用されるため、あるWebサイトのサービスを別のWebサイトで利用できます。

OpenGLとは何ですか?

これは主に、 3Dおよび2Dのグラフィックと画像を操作するために使用できる一連の優れた機能を提供するAPIと見なされています 。 ただし、それ自体は単なるAPIではなく、 Khronos Groupによって開発および保守されている仕様です。 また、マイクロソフトプラットフォームのDirect3Dと競合するビデオゲーム開発にも使用されます。

関数出力がどのようになり、どのように機能するかを正確に指定します。 OpenGL仕様は実装の詳細を提供していないため、実際に開発されたバージョンでは、結果が仕様に準拠している(したがってユーザーにとって同じである)限り、 実装異なる場合があります。

OpenGLライブラリの開発者は通常、 グラフィックスカードの メーカーです。 各GPUは、このAPIの特定のバージョンをサポートしています。これは、そのグラフィックスカード用に特別に開発されたOpenGLバージョンです。 たとえば、Appleなどの会社のシステムを使用している場合、彼らはOpenGLライブラリを維持しており、Linuxでは、グラフィックプロバイダーのバージョンとこれらのライブラリの適応の組み合わせがあります。 これは、OpenGLが予期しない奇妙な動作を表示するときはいつでも、グラフィックカードメーカーの責任である可能性が非常に高いことを意味します。 実装エラーがある場合は、通常、 グラフィックカードドライバを更新することで解決します。 これらのドライバーには、GPUがサポートする最新バージョンが含まれています。 このため、常にドライバーを更新することをお勧めします。

OpenGLの目標

主な目的は次のとおりです。

  • さまざまなグラフィックスカードとのインターフェースの複雑さ軽減し、ユニークで統一されたAPIをプログラマー提示します。 さまざまなハードウェアプラットフォームのさまざまな機能非表示にし 、すべての実装でOpenGL機能のフルセットをサポートする必要がある(必要に応じてソフトウェアエミュレーションを使用する)。

OpenGLの基本的な操作は、 ポイント、ライン、 ポリゴンなどのプリミティブアクションを受け入れそれらをピクセルに変換することです。 このプロセスは、 OpenGLステートマシンと呼ばれるグラフィカルパイプラインによって実行されます。 ほとんどのOpenGLコマンドは、プリミティブ操作を発行してグラフのセグメンテーションを行います。 バージョン2.0のリリースまでは、セグメンテーションの各ステージは確立された関数で実行されていたため、構成可能性はほとんどありませんでした。 このバージョンの時点で、いくつかのステージはGLSLを使用して完全にプログラム可能です。

拡張

非常に興味深いすばらしい機能は、その拡張サポートです。 GPUの会社が3D画像をレンダリングするための新しいテクノロジーや最適化の新しい方法を導入するときはいつでも、ドライバーに実装されている拡張機能に含ま れています。 アプリケーションが実行されているハードウェアがこの拡張機能をサポートしている場合、開発者は拡張機能が提供する機能を使用して、 より高度で効率的なグラフィックを取得できます。 このように、ビデオゲーム開発者は、グラフィックカードが拡張機能をサポートしているかどうかを確認するだけで、OpenGLが将来のバージョンに機能を含めるのを待たずに、これらの新しいレンダリング手法を使用できます。 多くの場合、 拡張機能人気あるか、非常に便利な場合、それは最終的にOpenGL将来のバージョンの一部になります

Mad MaxがLinux用の新しいパブリックベータ版でVulkanのサポートをリリースすることをお勧めします

OpenGLの進化

2015年3 、ゲーム開発者会議でOpenGL後継としてVulkan APIが紹介されました。 当初「次世代OpenGL」または「glNext」として知られていたプログラミングインターフェイスは、オープンソースでクロスプラットフォームです。 OpenGLとの違いは、プログラミング中にハードウェアにより多くの注意向けられることです。これにより、 消費電力が大幅に増加します。 一部のPCゲームはすでにVulkanをサポートしていますが、ほとんどがDirectXを使用しています。 VulkanもKhronosグループによって開発されました。

市場で最高のグラフィックスカードを読むことをお勧めします。

これまでのOpenGLに関する記事で、うまくいけば、それが何で構成されているのかを理解できたでしょう。 とにかく、コメントにコメントを残すことができます。

チュートリアル

エディタの選択

Back to top button