sgunji’s blog

ものづくりやプログラミングなど…最近はXamarinを少々

マルチプラットフォームのための OpenGL ES入門 基礎編 Android/iOS 対応グラフィックスプログラミング

マルチプラットフォームのためのOpenGL ES入門 基礎編 Android/iOS 対応グラフィックスプログラミング

目 次

第1章 最初に知るべきOpenGL ESの基礎知識

1.1 OpenGLとは何なのか

1.2 OpenGL ESのバージョン

1.3 ベンダー拡張

1.4 利用方法

1.5 GPUごとの能力

第2章 OpenGL ESのプリミティブ型

2.1 C言語Java言語での型

2.2 型の対応付け

2.3 符号無し整数

第3章 Android版のセットアップ

3.1 サンプルプログラムの入手

3.2 必要なソフトウェアのダウンロード

3.3 JDKのインストール

3.4 Android SDKをインストールする

3.5 SDKのアップデート

3.6 NDKのインストール

3.7 Eclipseのセットアップ

3.8 プロジェクトのインポート

3.9 実機へインストール

第4章 iOS版のセットアップ

4.1 Xcodeのインストール

4.2 サンプルプロジェクトの起動

4.3 実機インストールの準備

第5章 Hello OpenGL ES 2.0!!

5.1 初期化処理

5.2 AndroidOpenGL ES 2.0利用方法

5.3 iOSOpenGL ES 2.0利用方法

5.4 サンプルアプリについて

5.5 スケルトンプログラム【sample_skelton.c】

5.6 単色で塗りつぶす【sample_clear.c】

5.7 描画フレームを意識する【sample_random_clear.c】

5.8 OpenGL ESのパラメータ保存先

第6章 三角形の事始め

6.1 頂点とはなにか

6.2 三角形描画の準備【sample_rendering_triangle.c】

6.3 描画を行う

6.4 Viewportの変更に備える

6.5 後処理を行う

6.6 シェーダー初期化の簡略化

6.7 まとめ

第7章 三角形以外のプリミティブ

7.1 線を描画する【sample_rendering_line.c】

7.2 点を描画する【sample_rendering_point.c】

7.3 多角形を描画する【sample_rendering_quad.c】

7.4 まとめ

第8章 シェーダーの基礎

8.1 塗りつぶしの色を変更する【sample_shader_uniform_color.c】

8.2 シェーダースペックの注意点

8.3 頂点を動かす【sample_shader_uniform_pos.c】

8.4 頂点に位置情報以外の情報を付与する【sample_shader_varying_color.c】

8.5 まとめ

第9章 テクスチャの基礎

9.1 Textureとは

9.2 テクスチャ座標系とUV

9.3 テクスチャを作成する【sample_load_texture.c】

第10章 テクスチャ用のパラメータ

10.1 UV範囲を変更する【sample_load_texture_uvrange.c】

10.2 テクスチャのラッピング【sample_texture_op_wrap_repeat.c】

10.3 テクスチャのフィルタ

10.4 Mipmapの問題点【sample_texture_op_mipmap_GL_LINEAR_MIPMAP_LINEAR_ex.c】

10.5 NPOTテクスチャを利用する【sample_texture_op_npot.c】

第11章 複数枚のテクスチャを利用する

11.1 複数枚のテクスチャを読み込む【sample_texture_use_2.c】

11.2 テクスチャ読み込みの関数化

11.3 描画ごとに異なるテクスチャユニットを利用する【sample_load_texture_2unit.c】

11.4 同時に複数のテクスチャユニットを利用する

第12章 スプライト描画

12.1 スプライトとはなにか

12.2 スプライトの座標系 282

12.3 スプライト描画の前提条件

12.4 任意の座標に四角形を描画する【sample_rendering_pixel_quad.c】

12.5 テクスチャアトラスを描画する【sample_rendering_textureatlas.c】

第13章 シェーダーと行列

13.1 行列とは

13.2 単位行列(Identity)

13.3 移動行列(Translate)

13.4 拡大縮小行列(Scale)

13.5 回転行列(Rotate)

13.6 行列の乗算

13.7 行列を使ってシンプルなシェーダーの処理を行う【sample_rendering_matrix_translate.c】

13.8 補助関数:mat4_translate

13.9 拡大縮小行列でポリゴンの拡大縮小を行う【sample_rendering_matrix_scale.c】

13.10 補助関数:mat4_scale

13.11 回転行列でポリゴンの回転を行う【sample_rendering_matrix_rotate.c】

13.12 複数の行列を適用する【sample_rendering_matrix_trs.c】

13.13 行列の転置

13.14 乗算済みの行列を利用する【sample_rendering_matrix_mult_trs.c】

13.15 まとめ

第14章 行列の実践的な利用(2D編)

14.1 行列を利用してスプライト座標への変換を行う

14.2 ポリゴンの位置を任意のスプライト座標へ変換する【sample_rendering_matrix_sprite.c】

14.3 ポリゴンの回転を行う【sample_rendering_matrix_spriterotate.c】

14.4 アスペクトの歪みを補正する【sample_rendering_matrix_spriterotate_aspect.c】

14.5 UV座標用の行列を生成する【sample_rendering_matrix_sprite_uv.c】

第15章 高度なテクスチャ利用

15.1 ブレンドの有効化【sample_blend_enable.c】

15.2 圧縮テクスチャ

15.3 圧縮テクステャ:ETC1

15.4 Adreno Texture Toolで圧縮を行う

15.5 KTXファイルからMipmap付きのETC1テクスチャを読み込む【sample_load_compress_texture_etc1_ktx.c】

15.6 圧縮テクステャ:PVR