【问题标题】:Problem when using glutStrokeString instead of glutBitmapString使用 glutStrokeString 而不是 glutBitmapString 时出现问题
【发布时间】: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()。该死!

标签: opengl glut freeglut


【解决方案1】:

我终于解决了。问题是,由于某种原因 glutIdleFunc 被设置为我的显示功能,我忘记重置我的矩阵(所以我一次又一次地调用 glScalef)。现在可以正常使用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 2015-06-25
    • 1970-01-01
    相关资源
    最近更新 更多