【发布时间】:2015-04-23 11:34:36
【问题描述】:
我是 OpenGL 的新手,我正在尝试创建一个包含视口、3d 模型并显示一些文本的简单应用程序。我从未使用过 glut 窗口,并且想使用 MFC 窗口来实现上述功能。视口和 3d 模型工作正常,但没有显示给定的文本。我已经测试了文本显示工作的基于 glutWindow 的应用程序。因为我不想在我的应用程序中使用 glutwindow,所以我避免了以下几行
glutInit(&argc, argv);
glutInitWindowSize (window_width, window_height);
glutInitWindowPosition (window_X_position, window_Y_position);
glutInitDisplayMode (GLUT_RGB);
glutCreateWindow (window_title);
glutDisplayFunc (display);
仅使用 MFC 和 OpenGL 我必须显示文本。
方法一:
/* glPushMatrix();
glRotatef( -25.0f, 0.0f, 1.0f, 0.0f );
glTranslatef( -2.5f, -0.7f, 0.0f );
lListBase( m_TextID );
glCallLists( 20, GL_UNSIGNED_BYTE, (const GLvoid*)"welcome" );
glPopMatrix();*/
方法二:
void renderstring2d(char string[], float r, float g, float b, float x, float y)
{
glColor3f(r, g, b);
glRasterPos2f(x, y);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
方法3:
void renderstring3d(char string[], float r, float g, float b, float x, float y, float z)
{
glDisable(GL_LIGHTING);
glColor3f(r, g, b);
glRasterPos3f(x, y, z);
for(unsigned int i = 0; i < strlen(string); i++)
glutBitmapCharacter(GLUT_BITMAP_9_BY_15, string[i]);
}
我尝试了以上所有方法,但都失败了。请帮我显示文字 MFC 应用程序中的 OpenGL。
【问题讨论】:
-
失败意味着根本没有文本或显示但位置错误?在您的
renderstring函数中,作为x、y、z的文本位置传递的值是什么?最好把调用这些renderstring函数的代码贴出来看看。