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

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

ブログ    

推薦する

機械学習サーバーの利用率とスケーラビリティを最大化するにはどうすればよいでしょうか?

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

...

エコノミスト誌の新たな見解:ロボットの数が増えても人間の雇用機会は減らないが、雇用数は増える

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

「幻想」を消し去れ! Google の新しい ASPIRE メソッドにより、LLM は自己採点が可能になり、その効果はボリューム モデルよりも 10 倍優れています。

大規模モデルの「幻覚」問題は解決されつつあるのでしょうか?ウィスコンシン大学マディソン校とグーグルの...

...

AutoML は人間に取って代わるのでしょうか? 4 人のエンジニアと 2 つのデータ セットがそれを打ち負かしました。

ここ数年、ますます多くのテクノロジー大手が独自の AutoML サービスを立ち上げており、こうしたサ...

ワクチン開発におけるIoTとAIの役割

明らかな理由から、ワクチンの開発が現在最優先事項となっています。安全で効果的なコロナウイルスワクチン...

テンセントクラウドのフルリンクAI開発者サービスシステムがAIと産業の融合を加速

12月15日、第1回テンセントクラウド+コミュニティ開発者会議で、テンセントクラウドの副社長である王...

産業用 IoT を実装するための 3 つの重要なステップ

老朽化するインフラ、コスト圧力、変動する利益率、規制の監視などにより、より効率的で強力なメンテナンス...

DeepMindはAIを使ってチェスの新しいルールを作成する

今回、彼らは元チェス世界チャンピオンのウラジミール・クラムニクとチームを組み、AI技術にこの古代のボ...

インテリジェント PDU について...

専門的な配電設備として、PDU は基本型とインテリジェント型の 2 つのタイプに分けられます。インテ...

英国で今年、自動運転車が合法化される

[[397045]]画像ソース: https://pixabay.com/images/id-358...

GPT や Llama などの大規模モデルには「反転の呪い」があります。このバグを軽減するにはどうすればよいでしょうか?

中国人民大学の研究者らは、Llamaなどの因果言語モデルが遭遇する「反転の呪い」は、次のトークン予測...

協働ロボットがインダストリー4.0戦略の中核となる理由

[[402166]]今日、ロボットを自動化やインダストリー 4.0 戦略にシームレスに統合する方法に...

...