我正在编写一个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();