OpenGL ES

OpenGL ES (OpenGL for Embedded Systems)とは



OpenGL ESは、主に携帯電話組み込みシステムで利用される3次元[[コンピュータグラフィックス]]APIです。デスクトップPC向けのOpenGLのサブセットとして開発され、グラフィックスハードウェア(GPU)の性能を最大限に引き出す高速なグラフィックス描画を可能にします。オープン仕様かつロイヤリティフリーであるため、多くのプラットフォームで採用されています。

OpenGL ESの主な特徴



クロスプラットフォーム: 様々なデバイスやOSで動作します。
GPU活用: GPUの機能を最大限に活用し、高速な描画を実現します。
オープン仕様: 誰でも実装可能で、特定のベンダーに依存しません。
ロイヤリティフリー: ライセンス料を気にせず利用できます。

OpenGL ESの採用事例



iOS、Android、Symbian OSなどのモバイルOS
PlayStation 3、Nintendo 3DSなどのゲーム機

バージョンと機能



OpenGL ESは、以下のバージョンが存在し、それぞれ機能が異なります。

OpenGL ES 1.x系 (1.0, 1.1)


固定機能シェーダー: グラフィックスパイプライン処理が固定されており、プログラマブルシェーダーは利用できません。
シェーディング: フラットシェーディンググーロー[[シェーディング]]など、カスタマイズできない頂点単位の陰影計算のみをサポートします。

OpenGL ES 1.0はOpenGL 1.3のサブセット、1.1はOpenGL 1.5のサブセットとして登場しました。1.1では、バッファオブジェクト、自動ミップマップ生成、拡張テクスチャ処理、頂点スキニング機能などの機能が追加されています。

OpenGL ES 2.0


プログラマブルシェーダー: シェーディング言語GLSL ESに対応し、シェーダーをプログラム可能です。
固定機能シェーダーの削除: 1.x系にあった固定機能シェーダーは削除されました。

OpenGL ES 2.0は、OpenGL 2.0のサブセットとして登場しました。プログラマブルシェーダーの導入により、より柔軟なグラフィックス処理が可能になりました。

OpenGL ES 3.0


後方互換性: 2.0との後方互換性を持ちます。
高度な機能: マルチレンダーターゲット機能、マルチサンプルアンチエイリアス(MSAA)などのDirectX 10世代の機能をサポートします。

OpenGL ES 3.0は、OpenGL 3.2の一部の機能を導入し、より高度なグラフィックス表現が可能になりました。

OpenGL ES 3.1


コンピュートシェーダー: OpenGL 4.3で採用されたコンピュートシェーダーを導入します。

OpenGL ES 3.1では、コンピュートシェーダーによる汎用計算処理が可能となりました。

OpenGL ES 3.2


ジオメトリシェーダー、テッセレーションシェーダー: OpenGL 4シリーズ同等の機能が追加されました。
ASTC: テクスチャ圧縮技術であるASTCのサポートが標準化されました。

OpenGL ES 3.2は、OpenGL 4シリーズ相当の機能が追加され、より高品質なグラフィックス表現が可能になりました。

ANGLE (Almost Native Graphics Layer Engine)



ANGLEは、Googleが開発したOpenGL ES互換レイヤーを提供するオープンソースライブラリです。Direct3D、デスクトップOpenGL、Vulkanなどのバックエンド実装を利用することで、デバイスドライバーの不具合を回避したり、様々なプラットフォームへの移植を容易にしたり、パフォーマンスを向上させたりすることができます。Vulkanバックエンドでは、OpenGL ES 3.2までの実装が完了しています。

iOS/tvOSでの非推奨化



Appleは、iOS 12およびtvOS 12でOpenGL ESを非推奨APIとしました。代替としてMetalが推奨されています。MetalはOpenGL ESよりもハードウェアに近い下位レベルAPIであり、ミドルウェア開発向けです。MoltenGLライブラリを利用することで、Metal上でOpenGL ESを利用できます。

まとめ



OpenGL ESは、組み込みシステム向けの強力な3DグラフィックスAPIであり、進化を続けながら多くのプラットフォームで利用されています。バージョンアップごとに機能が追加され、より高度で美しいグラフィックス表現が可能になっています。

関連技術



OpenGL: OpenGL ESのベースとなるデスクトップ向けのグラフィックスAPI
GLSL: OpenGL ESのシェーディング言語
WebGL: ブラウザ上でOpenGL ESを利用するためのAPI
Direct3D: Microsoftが開発したグラフィックスAPI
Metal: Appleが開発したグラフィックスAPI
* Vulkan: 次世代のグラフィックスAPI

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。