我正在编写一个OpenGL
使用GLUT
. 我不想滚动自己的字体渲染代码,而是想使用GLUT
. 让他们工作的步骤是什么?
Ash
问问题
28652 次
1 回答
29
在 OpenGL 中使用 GLUT 位图字体很容易实现简单的文本显示。这些是简单的 2D 字体,不适合在3D 环境中显示。但是,它们非常适合需要覆盖在显示窗口上的文本。
以下是在 GLUT 窗口上以绿色显示 Eric Cartman 最喜欢的名言的示例步骤:
我们将在屏幕坐标中设置光栅位置。因此,为 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 回答