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

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

推薦する

ゲイツ氏は人工知能に楽観的だが、グーグルが自動運転車に大きく賭けている理由が理解できない

ビル・ゲイツ氏は、世界中の職場にパーソナルコンピュータシステムとソフトウェアをもたらすことでキャリア...

速報 | SmartOneがAIショッピングガイドロボットを発表、マイクロソフトと戦略的提携を強化

6月27日、北京のマイクロソフトビルでSmart One 2018新製品発表会が開催された。同会は「...

...

...

...

人工知能が医療に及ぼす12の影響

人工知能はヘルスケアに変革をもたらす力となることが期待されています。では、医師と患者は AI 駆動型...

IBM、スタートアップを支援するために5億ドルのエンタープライズAIベンチャーファンドを設立

IBMは最近、新たな企業投資ツールであるEnterprise AI Venture Fundを立ち上...

エンタープライズ ソフトウェア ベンダーのジェネレーティブ AI への取り組み

2023 年は生成 AI テクノロジーが爆発的に普及した年であり、ChatGPT などのツールが研究...

...

清華大学は、大規模な事前トレーニングなしで効率的なNLP学習フレームワークTLMを提案

[[435029]]最近、清華大学の研究者たちは、シンプルで効率的な NLP 学習フレームワークを提...

...

第6回ドルイドチャイナミートアップがKuaishou本部で開催されました

3月16日、KuaishouとTestin Cloud Testingが共同で主催するApache ...

顔スキャン決済は問題多し、アマゾンは「手のひら」スキャンを選択し無人スーパーで正式に商品化

さあ、手払いについて学んでみましょう〜アマゾンはこのほど、自社が開発した手のひら認識技術「Amazo...

...

2020 年に注目すべき機械学習とデータサイエンスのウェブサイト トップ 20

今日最も進歩的で、最先端で、刺激的なもの…データ サイエンスと機械学習は、今日非常に魅力的で、非常に...