![]() ![]() ![]() ![]() ![]() ![]() ![]() | ![]() | |
SDL+OpenGLによるフォント表示2003/11/23 ゲーム等で画面に文字が表示されるのは当然のことですが,OpenGLを用いてフォントを 表示するのは初心者にとって面倒な問題です.私も同様にOpenGLで文字を表示させたい と思いweb上を渡り歩き,OpenGLによるフォント表示について調査し, 私なりの実装を試みました. ここではその結果を示したいと思います. ![]() サンプルプログラム実行画面 対象者ここで対象とするのはOpenGLについて基本的な知識を持った方です. 表題にはSDL+OpenGLとありますが,フォント表示についてはOpenGLの機能のみを 使用していますので,SDLを知らない方でも参考になるかと思います. サンプルプログラム
サンプルプログラムはこちらからダウンロードしてください. ![]() ビットマップフォント
本プログラムで用いたビットマップは32bit targaフォーマットです.
これですとアルファチャネルがあるので背景にあたる部分を抜いて表示することができます.
ビットマップ生成にはフリーのBitmapFontBuilderを用いました. これはGFont初期化部分です.上記コード2行目のtgaLoadAndBind()でビットマップロードおよび OpenGLテクスチャオブジェクト生成を行い,そのIDを返します. このIDはglGenTexture()が生成するものです. 4行目のSetPitch()は文字間隔を設定します.1.0fのときデフォルトの文字間隔になります.(下図参照) ![]() SetPitch(1.f)のとき ![]() SetPitch(0.9f)のとき ![]() SetPitch(0.6f)のとき 表示にはPrint()メソッドを用います.第1第2引数がx, y座標を表しますが,その後の引数は C言語標準ライブラリのprintf()と同じです. 以上がGFontの使用法でした. 終わりに
ここでは,サンプルプログラムを中心に,OpenGLにおけるフォント表示についてご説明しました. | ||
![]() | ||