【发布时间】:2011-01-20 12:35:32
【问题描述】:
我正在编写我的第一个 OpenGL 程序(在 C 中使用 freeglut)。我的显示函数中有以下代码,它运行良好并打印出灰色文本:
glColor3f(0.5f, 0.5f, 0.5f);
glRasterPos2f(0, 0);
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (unsigned char*)"some text");
现在我想尝试使用 glutStrokeString 而不是 glutBitmapString。在我对 API 的(谦虚)理解中,以下内容应该有效:
glScalef(0.003,0.003,1);
glutStrokeString(GLUT_STROKE_ROMAN, (unsigned char*)"some text");
使用这两行而不是 glutBitmapString 调用运行我的程序会在文本消失之前显示一次。此外,从那时起,我用 glutBitmapString 显示的所有文本也不起作用。我在这里错过了什么?
【问题讨论】:
-
您是否在每帧清除深度缓冲区和颜色缓冲区?
-
是的。 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
终于解决了,只是缺少glLoadIdentity()。该死!