OpenGLで文字の描画
OSや環境に依存しない方法を考えるとなかなか厄介な問題。
1.ビットマップで描画する
最も一般的に使われてる手法?文字を並べた画像をあらかじめ作成しておき、その画像をテクスチャとしてそれぞれの文字に応じて振り分けて表示する。
弱点はビットマップなので拡大すると荒くなることと、文字数の多い日本語などを扱おうとすると馬鹿でかいテクスチャが必要になる。
ちなみに透視投影の3D画面でテキストを表示する場合は
glMatrixMode(GL_PROJECTION); //透視変換モードに glPushMatrix(); glLoadIdentity(); glOrtho(0,640,480,0,-1,1); //平行投影にする glMatrixMode(GL_MODELVIEW); glLoadIdentity(); //////////////////////////////////// // ここにテキスト描画コードを書く //////////////////////////////////// glMatrixMode(GL_PROJECTION); glPopMatrix(); // 元に戻してやるのを忘れない glMatrixMode(GL_MODELVIEW);
みたいにして、一度平行投影で座標系をウィンドウにあわせてやる必要がある。
2.wglを使う
Windows限定になるけれど、一番お手軽な方法。
wglUseFontOutlinesW, wglUseFontBitmaps
というそのものズバリな機能がある。
3.TrueType、PostScriptフォントを利用する(不明)
そもそもできるの?できたとしても超面倒そうなのでヘタレな漏れは他の方法をあたりまつ('A`)