OpenGLで 画面上でちょっとした座標や変数の値を表示するだけでも、フォント、テクスチャ、ビルボード の問題をクリアする必要があります。
このページでは、 Allegro +AllegroGL(OpenGL ) + GlyphKeeper(FreeType)を使って、
必要最低限の自由度が保証される、カメラのひな形をつくることにしました。
これによって、画面上で値の確認ができ、試行錯誤がしやすくなります。
なお、このプログラムの使用については自己責任でお願いします。
OpenGLのカメラ
初期設定を疑似2D投影にすることにより、最初はZ軸の存在を省略することができる。
OpenGLの 二次元図形の描画 ( Push/PoPMatrix と Displaylist )
カメラ視点を変える。今まで2D見えていたオブジェクト は実は 3D上の平面。Z軸の存在。
OpenGLの 三次元図形の描画
glOrtho とgluPerspective ,glfrustum の違い
スクリーンに表示される要素
- ビルボード(BillBoard : 表示板)による 2Dテクスチャ
- 3Dモデルの表示
- (カメラ)
各部分にOpenGLのコードを追加する。
試行錯誤(キー入力による、視点の変更や、回転アニメーション)
- 回転による、カメラ視点の変更
- 回転による、3Dモデルのアニメーション
- ズーム
使い方

キーボードの操作:
A, S ..... ビルボード(茶色の四角形)のズーム
F, R ..... カメラ Z 軸 にズーム
→↑↓←......矢印キーでカメラ X,Y軸を中心に回転
ESC .........終了
カメラ角度は 0〜360度 で 補正
3Dモデルを映すカメラの初期位置は、Z軸に垂直になっています。
テキストとビルボードは カメラの行列を共用しているので、ともにZ軸に垂直に位置しています。
変数/モード表示 : テキスト要素 を扱う部分に 追加する。
疑似 2Dスプライトのテスト : ビルボード要素を扱うbillboard(); に コードや、テクスチャ等を追加する。
3Dモデル/その他キー入力 : 3Dモデルを扱うdisplay(); に 追加する。 / keyboard(); に追加
テキスト、ビルボード、3Dモデル は、カメラ行列 を OpenGL の popMatrix と pushMatrix 関数によって、
スタックに退避、復帰させ、切替えを行ってます。
テキストを描画する場合は(X,Y)座標を指定するだけでOK 、TrueType,OpenTypeフォントが使用できますが、OpenGL上での日本語の表示がまだできません。
数値を表示する場合は、いったん文字列に変換する必要があります。