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

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

ブログ    
ブログ    

推薦する

...

これら10機関からの24の調査データはAIのトレンドを理解するのに役立ちます

[[256519]] 2019年1月現在の人工知能の現状は?最近の調査では、AI の人気、測定可能な...

...

2019 年の ML と NLP におけるトップ 10 の研究ホットスポット

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

...

520 開発者のバレンタインデー: 全プラットフォームで 35 の PaddlePaddle アップグレード「Show AI」

「新インフラ」は中国の「産業インテリジェンス」に強力な新たな原動力をもたらした。インテリジェント時...

2021年の人工知能の5つのトレンド

[[382638]]モバイル デバイス、スマート デバイス、IoT 製品からのデータが家庭や企業に溢...

顔認証がまたもや放棄される。米国に続いて今度はEUの番

近年、人工知能の継続的な台頭により、顔認識が広く使用されるようになり、「顔スキャン」の時代が静かに到...

180 の大学が人工知能専攻の追加を承認されました。これらの大学への出願をお勧めしますか?

[[317457]]教育部が発表した最新の学部専攻新登録リストでは、理工系や総合大学のほか、語学や...

...

...

...

C# 暗号化アルゴリズムの簡単な紹介

C# 暗号化アルゴリズムMD5 は Message-Digest Algorithm 5 の略で、1...

研究者らは、その上に置かれた物を認識できるスマートテーブルクロス生地を開発している

将来、テーブルクロスがあなたの持ち物の所在を知らせたり、あなたの食事を追跡したりすることを想像してみ...

生涯にわたる機械学習: 持続可能な学習のパラダイム

[[207884]]序文:最近、アンサンブル学習における持続可能性に関する研究に関する非常に興味深い...