gpt4 book ai didi

c++ - 使用 Opengl 在 MFC 应用程序中显示文本

转载 作者:行者123 更新时间:2023-11-28 06:18:13 27 4
gpt4 key购买 nike

我是 OpenGL 的新手,我正在尝试创建一个包含视口(viewport)、3d 模型并显示一些文本的简单应用程序。我从未使用过 glut window 并且想使用 MFC 窗口来实现上述功能。视口(viewport)和 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]);
}

方法三:

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。

最佳答案

您使用的是固定管道,因此您必须根据 glutBitmapCharacter 使用的坐标系设置 ModelView Matrix 和 Projection Matrix。

看这个例子: http://www.programming-techniques.com/2012/05/font-rendering-in-glut-using-bitmap.html

关于c++ - 使用 Opengl 在 MFC 应用程序中显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29822228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com