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のランキングアルゴリズムの仕組み

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

ブログ    
ブログ    

推薦する

...

物流業界を変える7つの技術トレンド

近年、新型コロナウイルスやロシア・ウクライナ戦争、エネルギー危機など、世界規模の問題が次々と発生し、...

システム統合における10の将来のトレンド

システム統合は、ソフトウェア システム、情報システム、エンタープライズ システム、モノのインターネッ...

...

AI が大学入試のエッセイのテーマを予測: 科学、形而上学、それとも誇大広告?

大学受験生にとって、出題される問題を全て知っていて、分からない問題の答えを暗記していることが一番幸せ...

...

...

インベントリ | 2018 年のベスト 30 の機械学習プロジェクト

編集者注: この記事は Mybridge からのもので、過去 1 年間 (2017 年) で最も素晴...

誰もがエンドツーエンドに取り組んでいますが、エンドツーエンドの自動運転の基礎は何でしょうか?

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

コンピューターにビデオの字幕を認識させる

馬文華氏は、中国科学院自動化研究所でパターン認識と人工知能の博士号を取得しました。主に画像認識、ター...

今後5年間で働くのに適した5つの職種

「中国製造2025」という言葉を聞いたことがありますか。これは、中国が2025年までに産業の徹底的な...

転移学習に関する最先端の研究:低リソース、ドメイン一般化、安全な転移

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

OpenAIの創設者サム・アルトマンが解雇されてから24時間後

ChatGPTを開発するOpenAIは金曜日、CEO兼創設者のサム・アルトマン氏を解雇したが、彼の突...