OpenGL ES 入門: 組み込み 3D グラフィックス アルゴリズム標準

OpenGL ES 入門: 組み込み 3D グラフィックス アルゴリズム標準

OpenGL とは何ですか?

OpenGL (正式名称は Open Graphics Library) は、2 次元および 3 次元画像を生成するためのクロスプログラミング言語、クロスプラットフォーム アプリケーション プログラミング インターフェイス (API) を定義する仕様です。このインターフェースは、単純なグラフィックから複雑な 3 次元シーンを描画するために使用される、約 350 個の異なる関数呼び出しで構成されています。もう 1 つのプログラミング インターフェイス システムは Direct3D で、これは Microsoft Windows でのみ使用できます。 OpenGL は、CAD、仮想現実、科学的視覚化プログラム、ビデオ ゲーム開発でよく使用されます。 OpenGL の効率的な実装 (グラフィックス アクセラレーション ハードウェアを活用) は、Windows、多くの UNIX プラットフォーム、および MacOS 用に存在します。これらの実装は通常、ディスプレイ デバイスの製造元によって提供され、製造元が提供するハードウェアに大きく依存します。オープンソース ライブラリ Mesa は、OpenGL とコード互換性のある純粋なソフトウェア ベースのグラフィックス API です。 OpenGL 仕様は、1992 年に設立された OpenGL Architecture Review Board (ARB) によって管理されています。 ARB は、統一された、普遍的に利用可能な API の作成に特に関心を持つ企業で構成されています。 OpenGL の公式 Web サイトによると、2002 年 6 月の ARB 投票メンバーには、3Dlabs、Apple Computer、ATI Technologies、Dell Computer、Evans & Sutherland、Hewlett-Packard、IBM、Intel、Matrox、NVIDIA、SGI、および Sun Microsystems が含まれていました。Microsoft は創設メンバーの 1 つでしたが、2003 年 3 月に脱退しました (Microsoft はかつて DirectX と OpenGL を統合しようとしましたが、最終的には断念しました。Microsoft の DirectX に対する当初の戦略は、DOS ゲーム開発者に Windows への切り替えを促すことでした。それ以来、DirectX は PC ゲームを提供するために Windows に縛られており、Windows のみをサポートしています)。

OpenGL™ は、業界で最も広く受け入れられている 2D/3D グラフィックス API です。誕生以来、さまざまなコンピュータ プラットフォームやデバイス上で何千もの優れたアプリケーションが生み出されてきました。 OpenGL™ は Windows や他のオペレーティング システムから独立しており、ネットワーク透過的です。 CAD、コンテンツ作成、エネルギー、エンターテイメント、ゲーム開発、製造、製薬、仮想現実などの業界では、OpenGL™ はプログラマーが PC、ワークステーション、スーパーコンピューターなどのハードウェア デバイス上で高性能、高影響力、高視覚表現のグラフィックス処理ソフトウェアを開発するのに役立ちます。

OpenGL ES とは何ですか?

OpenGL ES (OpenGL for Embedded Systems) は、携帯電話、PDA、ゲーム コンソールなどの組み込みデバイス向けに設計された OpenGL 3D グラフィックス API のサブセットです。 OpenGL ES は OpenGL からカスタマイズされており、glBegin/glEnd、四辺形 (GL_QUADS)、多角形 (GL_POLYGONS)、その他の複雑なプリミティブなどの多くの不要な機能が削除されています。長年の開発を経て、現在は固定パイプライン ハードウェア用の OpenGL ES 1.x とプログラム可能なパイプライン ハードウェア用の OpenGL ES 2.x という 2 つの主要なバージョンがあります。 OpenGL ES 1.0 は OpenGL 1.3 仕様に基づいており、OpenGL ES 1.1 は OpenGL 1.5 仕様に基づいており、それぞれ common と common lite の 2 つのプロファイルをサポートしています。 Lite プロファイルは固定小数点実数のみをサポートしますが、Common プロファイルは固定小数点数と浮動小数点数の両方をサポートします。 OpenGL ES 2.0 は、OpenGL 2.0 仕様を参照して定義されています。共通プロファイルは 2005 年 8 月にリリースされ、プログラム可能なパイプラインのサポートが導入されました。

オープンGLES3.0

2007 年 8 月、最初の iPhone と Android の両方に OpenGL ES 1.x が組み込まれ、2009 年 10 月には iPhone 3GS と Android 2.2 に OpenGL ES 2.0 が組み込まれました。その結果、OpenGL ES のモバイル市場シェアは 2006 年の 20% から今年は 90% 以上に大幅に拡大しました。昨日の SIGGRAPH 2012 カンファレンスで、Khronos Group は新しいバージョンである OpenGL ES 3.0 を発表しました。

OpenGL ES 3.0 には多くの新機能が追加されています。
1. より多くのバッファ オブジェクトをサポートします。 OpenGL ES 2.0 では、バッファ オブジェクトの仕様が曖昧でした。バッファ オブジェクトは同じ名前を持ちますが、実際のレンダリングでは動作が若干異なります。この問題に対処するために、OpenGL ES 3.0 ではより詳細なフォーマット仕様が開発されました。 OpenGL ES の新しいバージョンでは、Uniform Buffer Object のサポートも追加されています。
2. GLSL ES 3.0 シェーディング言語の新しいバージョンは、32 ビットの整数および浮動小数点のデータ型と演算をサポートします。以前のバージョンのシェーディング言語では、より低い精度のみがサポートされていたため、計算速度が向上し、必要なリソースが少なくなりましたが、シェーダーの複雑さが増すにつれて、エラーも増加しました。同時に、新しいシェーディング言語の構文は GLSL に近くなります。
3. オクルージョンクエリとジオメトリインスタンス化をサポートします。オクルージョン クエリを通じて、GPU は 3D シーン内のどのオブジェクトが他のオブジェクトによって完全に遮蔽されているかを認識し、これらの完全に遮蔽されたオブジェクトをレンダリングしません。ジオメトリのインスタンス化は、同じ頂点データを持つジオメトリに異なる空間位置、色、テクスチャ、その他の機能を割り当てることで、異なるインスタンス オブジェクトを作成する手法です。これら両方の機能により、ハードウェア リソースを節約し、3D グラフィックス レンダリングのパフォーマンスを向上させることができます。
4. 複数のテクスチャのサポートを追加します。浮動小数点テクスチャ、深度テクスチャ、頂点テクスチャなどが含まれます。
5. 複数のレンダー ターゲット。GPU が複数のテクスチャを一度にレンダリングできるようにします。
6. マルチサンプリング アンチエイリアシング (MSAA Render To Texture) により、3D オブジェクトのエッジのバリを防ぎ、画像の品質を向上させることができます。
7. 統一テクスチャ圧縮形式 ETC を使用する: 長年にわたり OpenGL の開発を妨げてきた大きな問題は、S3TC、GPU、PVPRTC、ETC などを含む統一テクスチャ圧縮形式が存在しないことです。統一された標準がないため、開発者はさまざまなハードウェア環境に合わせてテクスチャを繰り返し圧縮する必要があります。特に Android 開発者にとって、このプロセスは面倒です (ゲーム データ パッケージをインストールするときにどのマテリアル データ パッケージが必要かを識別する必要があるなど、ユーザーにとっても多くの問題を引き起こします)。明らかに、テクスチャ圧縮形式を統一すると、開発者の開発効率が向上します。しかし、現実には、標準化のようなものは決して急速には進んでいません。それは開発者とメーカーが後からどう対応するかによります。

Android 4.3 から Open GL ES へのアップグレードは間違いなく良いスタートです。OpenGL ES 3.0 の多数の新機能により、モバイル プラットフォームのグラフィック特性が大幅に向上し、ゲームのグラフィック効果が向上します。

<<:  Hacker Newsのランキングアルゴリズムの仕組み

>>:  二分木反復アルゴリズム

ブログ    
ブログ    

推薦する

実践 | 人工知能が小売体験を向上させる 20 の例

小売体験は長年にわたってあまり変わっていません。つまり、店に入って、適切な製品を見つけて、それを購入...

人工知能の環境コストと可能性

人工知能 (AI) は、大衆文化や政治分析において、2 つの極端な形で現れることが多いです。それは、...

労働者は一生懸命働かなければなりません! AI仮想人間が労働力に参入しようとしている

[[413812]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

人工知能とモノのインターネット (AIoT) を組み合わせた場合の威力とは?

モノのインターネット (IoT) や人工知能 (AI) について聞いたことがあると思います。しかし、...

...

初心者向けのオープンソース機械学習フレームワーク、Scikit-learnについて

Python 言語に精通している研究者は、オープンソースの Python ベースの科学計算ツールキッ...

AI医薬品製造の全体像を理解するための1つの記事:年間売上高300億元、明確な3つの階層

次々と資金調達を行っているAI医薬品製造は、どれほど人気が​​あるのでしょうか?海外からの最高受注額...

...

2017-2019 AIの3年間の浮き沈み

ガートナーが発表した2017年の「技術成熟度レポート」によると、5G、人工汎用知能、ディープラーニン...

小型モデルの意見も参考になります! GPT-4+AutoGPTオンライン意思決定:物を買うときにもう心配はいりません

この論文では、現実世界の意思決定タスクにおける Auto-GPT エージェントの包括的なベンチマーク...

Weilingsi チームは、グラフ同型性の下での同変性と高い計算効率を備えた「自然グラフ ネットワーク」メッセージ パッシング メソッドを提案しました。

最近、ウェリングスチームによる研​​究では、グラフの局所的な対称性を研究することで新しいアルゴリズム...

AI と IoT によって貨物輸送はどのようにスマート化されるのでしょうか?

スマートな車両監視 近年、IoT テクノロジーによりテレマティクスはまったく新しいレベルに到達しまし...