スマートフォンアプリ作成

AppStoreにて無料公開中! ”システム手帳”で検索! - AppStoreへ iPad版 - iPhone版

OpenGL(ES)2.0の概念と言葉の定義

OpenGL(ES)2.0の概念と言葉の定義

OpenGL ES 1.1とOpenGL ES 2.0は全く互換性がなく全く違うものという言質が多く見られた。

しかし、実際にはプログラムするうえでのAPIが異なるだけで概念と扱い方は同じものだった。

OpenGLプログラムを学習するうえで避けて通れないのが、OpenGLが持っている概念を理解することだ。

キーワードは「望遠レンズ」である。

学習方法は、googleやappleが各種サンプルプログラムを提供しているので、それを一行づつ読み取りながら見ていくことになる。

プログラムを眺めながらOpenGLの概念を徐々に理解していくこと。

プログラムのコメントや変数名は英語なので、英単語が何を表すかを理解するとプログラムの理解を助けてくれるのだ。

・行列(マトリクス)

\*行列値はopenGl関数により自動生成されるので意識する必要はない。

\*行列値を座標値(ベクトル値)に乗ずると回転移動拡大などの効果が生じる。

・OpenGLで必要な行列には次の5種類がある

1. modelView ローカル座標空間 モデル座標 プログラムで指定するトライアングル座標

2. world ワールド座標 ローカルモデルをtransform,rotete,scaleなどで配置した座標空間

3. viewMatrix ビュー座標空間 カメラ位置指定 カメラ位置を原点に移動 ←オブジェクトを見る視点・方向・頭上を指定する

4. projectionMatrix 投影クリッピング空間 スクリーン定義 正規化デバイス座標空間 描画範囲を指定 原点を画面中央に移動+2.0x2.0x2.0に座標サイズを正規化  (描画空間(箱)の前後左右の座標を指定する) *この座標系だけZ軸が奥に進む(奥が+)

5. viewPort glViewport() ウィンドウ座標空間 ビューポート変換 ←スマホ画面の描画範囲を指定する

・OpenGLで描画されるまでに座標値は2回変換される

640, 80, -2.0 プログラム上の座標 三次元  *最初から正規化した値を使っても良い

↓projectionMatrix * viewMatrix * modelView(world)

1.0, 0.3, -0.5 2.0x2.0x2.0に正規化 三次元

↓Viewport

1024, 860 スマホ座標 二次元

・正規化デバイス座標空間定義(3種類)

ここで指定したスクリーン定義(左右・上下・奥行き)とカメラ位置をもとにopenGlが正規化を行う

Perspective 遠近法 3D 画面中央が原点 gluPerspective() gluLookAt() *glu関数は各環境で独自実装される

frustum 円錐 透過投影 3D glFrustum() gluLookAt()

Orthogonal 直交 平行投影 2D glOrtho()

・カメラ位置

原点(描画位置)から遠ざかるほどモデル(物体)は縮小表示される

原点(描画位置)に近づくほどモデル(物体)は拡大表示される

カメラ位置とスクリーンの距離(焦点距離)が遠くなるほど物体は画面相対的に拡大表示される(望遠レンズ)

カメラ位置とスクリーンの距離(焦点距離)が近くなるほど物体は画面相対的に縮小表示される(広角レンズ)

・OpenGLの座標軸(右手座標)

X軸は左から右 例:-1.0 <― 0.0 ―> 1.0

Y軸は下から上

Z軸は奥から手前(* projectionMatrixの指定だけ逆)

\*プログラムで扱う座標は自由に設定できる(-1.0 <― 0.0 ―> 1.0ではなくてもよい)

\*gluPerspective()などでスクリーン定義することでopenGlが自動的に正規化してくれる

・テクスチャUV座標

左上原点

X軸は左から右 0.0 ―> 1.0

Y軸は上から下

・スマホフレームワーク座標(タップ位置座標、View配置座標)

左上原点

X軸は左から右 0 ―> 1080

Y軸は上から下 0 ―> 1920

・英単語

Vertex Position 頂点

UVcoord textureCoordinate テクスチャ座標 UV座標

Matrix 行列 座標値に乗じて座標位置を変化させるためにOpenGL関数が自動生成するもの

Shader カメラ位置と光源から計算して陰影をつける者。GPUで数千から数百万同時実行される

pipeline 複数の簡単な命令を同時実行するGPUの仕組み RISCプロセッサ

2018年11月
    123
45678910
11121314151617
18192021222324
252627282930 
android
iOS
アプリの著作権
ブロックチェーン/暗号技術
日本のなりたち

AppStoreにて無料公開中! ”システム手帳”で検索! - AppStoreへ iPad版 - iPhone版
スマートフォンアプリ作成