Android の OpenGL ES について


■Android の OpenGL ES

Android 端末は、2D/3D グラフィックスに OpenGL ES を採用しています。
(当初はソフトウェア実装でしたが、現在ではハードウェア実装が主流です。)

Android の OpenGL ES API は、J2ME JSR239 OpenGL ES API に似ていますが、同一ではないことに注意して下さい。

Android 2.2(API レベル8) 以降では、OpenGL ES 1.1/1.0 に加えて、OpenGL ES 2.0 をサポートしています。
現在、OpenGL ES 2.0 は、ほとんどの Android 端末でサポートされています。

また、Android 3.0 以降で利用可能な renderScript は、内部で OpenGL ES を使用しています。

  • Android のバージョンと API レベル

    Android のバージョンと API レベル、および対応する OpenGL ES のバージョンをしめします。


    OS コードネーム API レベル 対応する OpenGL ES のバージョン
    Android 4.0.3 Ice Cream Sandwich 15 OpenGL ES 2.0/1.1/1.0
    Android 4.0 14 OpenGL ES 2.0/1.1/1.0
    Android 3.2 Honeycomb 13 OpenGL ES 2.0/1.1/1.0
    Android 3.1 12 OpenGL ES 2.0/1.1/1.0
    Android 3.0 11 OpenGL ES 2.0/1.1/1.0
    Android 2.3.3 Gingerbread 10 OpenGL ES 2.0/1.1/1.0
    Android 2.3 9 OpenGL ES 2.0/1.1/1.0
    Android 2.2 Froyo 8 OpenGL ES 2.0/1.1/1.0
    Android 2.1 Eclair 7 OpenGL ES 1.1/1.0
    Android 2.0.1 6 OpenGL ES 1.1/1.0
    Android 2.0 5 OpenGL ES 1.1/1.0
    Android 1.6 Donut 4 OpenGL ES 1.1/1.0
    Android 1.5 Cupcake 3 OpenGL ES 1.1/1.0
    Android 1.1 非公開 2 OpenGL ES 1.1/1.0
    Android 1.0 非公開 1 OpenGL ES 1.1/1.0


    OpenGL ES 関係の API にも、ある API レベル以降からサポートしているものがあるため、 API レベルの低いものでは使用できない機能があります。

  • OpenGL ES パッケージ

    Android のバージョンと API レベル、および対応する OpenGL ES のバージョンをしめします。


    • OpenGL ES 1.0/1.1 API Packages
      • android.opengl
        このパッケージは、OpenGL ES 1.0/1.1のクラスとjavax.microedition.khronosパッケージのインターフェースよりもパフォーマンスが優れた静的なインタフェースです。


      • javax.microedition.khronos.opengles
        このパッケージは、OpenGL ES 1.0/1.1 の標準実装です。


      • javax.microedition.khronos.egl
        このパッケージは、EGL 1.0/1.1 の標準実装です。


    • OpenGL ES 2.0 API Class

■Android 関係書籍

Android 3.0 対応 アンドロイドプログラミング
最初の一歩 Androidアプリを作ってみよう

Android 3.0 にも対応したプログラミングガイド。
OpenGL ES 関連情報はありませんが、 Android 開発環境の構築方法、プロジェクトの作成と実行、配布用ファイルの作成など基本的な情報を含んでいます。



初めての OpenGL ES

Android の OpenGL ES 1.1 プログラミングの内容。
OpenGL ES 2.0 の内容は含まれないので注意して下さい。



OpenGL で作る Android SDK ゲームプログラミング

「OpenGL で作る iPhone SDK ゲームプログラミング」の Android 版。
Android 用に書き換えたものですが、基本的には iPhone 版と同じ内容です。
タイトルは OpenGL となっていますが、当然のことながら内容は OpenGL ES 1.1 です。


■OpenGL ES 関係書籍

OpenGL ESによる3Dグラフィックスプログラミング入門 ― 固定機能パイプライン

OpenGL ES 1.1 のプログラミングの入門書。

プリミティブの描画、ライティング、テクスチャマッピング等の基礎から、 ポイントスプライト、マトリックスパレット、DOT3バンプマッピング、ステンシルシャドウ等の内容を含みます。 サンプルプログラムは各章で紹介する内容に絞り込み極力簡素化することで、 本質的な部分を理解しやすいようにしています。

より広く OpenGL ES 1.1 の学習ができるように Windows で動くサンプルプログラムを用いていますが、 OpenGL ES 自体はプラットフォームに依存しませんので、プラットフォーム依存部のみ移植することで 他のプラットフォームでも動かすことができます。(一部の拡張機能を用いたサンプルを除く)

CD-ROM には、本書の Windows 用のサンプルプログラムと、OpenGL ES 1.1 を Windows から利用できるようにした OpenGL ES 1.1 エミュレータが含まれます。
サンプルプログラムのソースコードはCD-ROMの他、本書の中にも含まれており、 パソコンを開かなくてもサンプルプログラムの中身を確認することができます。

http://www.cutt.co.jp/book/978-4-87783-265-0.html



OpenGL ES2.0のためのGLSL/GLSL ESプログラミング入門
―プログラマブルシェーダと3Dグラフィックスの理論・応用

OpenGL ES 2.0 のためのシェーダプログラミング入門書。

OpenGL 2.0 の GLSL 1.10 を用いてシェーダの基礎をサンプルプログラムを用いて解説しています。 OpenGL ES 2.0 のシェーダ言語である GLSL ES 1.00 は、GLSL 1.10 のサブセットであり、 GLSL ES 1.00 を理解するのに、GLSL 1.10 から理解した方が敷居が低いのです。 これは GLSL 1.10 がサポートしている便利な機能が、GLSL ES 1.00 では削られているため、 GLSL ES 1.00 で簡単なシェーダを作るのにも多くの知識が必要となるためです。 その後に GLSL ES 1.00 と GLSL 1.10 の違いを紹介しています。

CD-ROM には、本書の Windows 用の GLSL 1.10/GLSL ES 1.00 のサンプルプログラムが含まれます。
サンプルプログラムのソースコードはCD-ROMの他、本書の中にも含まれており、 パソコンを開かなくてもサンプルプログラムの中身を確認することができます。

http://www.cutt.co.jp/book/978-4-87783-266-7.html



OpenGL ES ゲーム開発技法

OpenGL ES Game Development の訳本。
原書は OpenGL ES 1.1 を基に記述されていますが、 OpenGL ES 2.0 の概要等加筆されています。
OpenGL と OpenGL ES 1.0 とを比較しながら、機能の違いを紹介しています。
また、OpenGL ES 1.1 で拡張された機能についても同様に紹介しています。



OpenGL ES 2.0 Programming Guide (日本語版)

OpenGL ES 2.0 のプログラミングガイド
OpenGL ES 2.0 プログラマー必須の書籍。
OpenGL ES 2.0 はシェーダが中心であることから、プログラミングガイドも OpenGL のものとは異なり、 GLSL ES 1.00 の解説が中心となっています。

AMD(旧ATI)の OpenGL ES 2.0 エミュレータで動作可能なサンプルも豊富。
サンプルコードは下記から入手が可能です。
http://www.opengles-book.com/

このサンプルは、OpenGL ES 2.0 で削除されたマトリックス処理関数の一部、 GLUT や AUX ライブラリ、GLU ライブラリの中から必要最小限の機能を OpenGL ES 向けにデザインし直した ユニークな ES Framework API が使われています。

日本語版は、付録に iPhone 3GS(OpenGL ES 2.0), Android(OpenGL ES 1.0) 向けの説明が追加されています。



洋書
Mobile 3D Graphics: With OpenGL ES and M3G

CG の基礎、OpenGL ES 1.1 + EGL、M3G について書かれています。



洋書
OpenGL Shading Language
Second Edition

OpenGL ES 2.0 を使用する上で必須となるシェーディング言語 GLSL ES 1.00 の基となった OpenGL 2.0 のための GLSL 1.10 のバイブル的書籍です。
GLSL ES 1.00 は組み込み用途のため、GLSL 1.10 と異なる部分もありますが、 GLSL ES 1.00 を理解する上で GLSL 1.10 は不可欠な存在です。

注意) 現在、オレンジ本は第3版が出ています。

その他の書籍についてはこちらをご覧ください。


■リンク






[3D TOPメニュー]
[OpenGL] [irisGL] [VRML] [作品集] [イエローページ]
[書籍紹介] [DVD]
[この Web ページについて] [アンケート] [予定]
[OpenGLストア]

[Namazu TOPメニュー]