我正在编写一个简单的基于 OpenGL
和 GLUT
的应用程序。我不想自己编写字体渲染代码,而是希望使用 GLUT
提供的简单位图字体。那么要让它们起作用,需要哪些步骤?
使用GLUT位图字体在OpenGL中显示简单的文本非常容易。这些是简单的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();
glOrtho2D
иҖҢдёҚжҳҜglOrtho
гҖӮиҝҷи§ЈеҶідәҶй—®йўҳгҖӮ - Papouh