19

を使用する簡単なOpenGLアプリケーションを作成していますGLUT。独自のフォントレンダリングコードをロールしたくはありません。代わりに、に付属している単純なビットマップフォントを使用したいと思いますGLUT。それらを機能させるための手順は何ですか?

4

1 に答える 1

29

シンプルなテキスト表示は、GLUTビットマップフォントを使用してOpenGLで簡単に実行できます。これらは単純な2Dフォントであり、3D環境での表示には適していません。ただし、表示ウィンドウにオーバーレイする必要のあるテキストには最適です。

以下は、GLUTウィンドウに緑色で色付けされたEricCartmanのお気に入りの見積もりを表示するためのサンプル手順です。

画面座標でラスター位置を設定します。したがって、2Dレンダリング用に射影行列とモデルビュー行列を設定します。

glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(0.0, WIN_WIDTH, 0.0, WIN_HEIGHT);

glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

フォントの色を設定します。(後でではなく、今すぐ設定してください。)

glColor3f(0.0, 1.0, 0.0); // Green

テキストを表示するウィンドウの場所を設定します。これは、画面座標でラスター位置を設定することによって行われます。ウィンドウの左下隅は(0、0)です。

glRasterPos2i(10, 10);

フォントを設定し、 glutBitmapCharacterを使用して文字列文字を表示します。

string s = "Respect mah authoritah!";
void * font = GLUT_BITMAP_9_BY_15;
for (string::iterator i = s.begin(); i != s.end(); ++i)
{
    char c = *i;
    glutBitmapCharacter(font, c);
}

行列を復元します。

glMatrixMode(GL_MODELVIEW);
glPopMatrix();

glMatrixMode(GL_PROJECTION);
glPopMatrix();
于 2008-08-18T08:18:38.433 に答える