我一直在尝试使用glutBitmapCharacter()来渲染文本。
这就是我所拥有的2D文本渲染功能:
void drawString(int x, int y, char* string) {
int i, len;
glDisable(GL_TEXTURE);
glDisable(GL_TEXTURE_2D);
glDisable(GL_LIGHTING);
glColor3f(1.0f, 0.0f, 0.0f);
glRasterPos2i(x, y);
for (i = 0, len = strlen(string); i < len; i++) {
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, (int)string[i]);
}
glEnable(GL_TEXTURE);
glEnable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
}
在场景渲染功能中,我进行了这个调用:
drawString(0, 0, "TESTING");
这些是唯一显示任何文本的x和y值,在这种情况下,“TESTING”出现在屏幕中间,“TE”为红色(我想要的颜色),“STING”为黑色
我所见过的处理这个函数的所有代码都使用了早期版本的openGL和弃用的代码,所以我不知道该怎么做。
答案 0 :(得分:4)
以上绝对不是符合openGL 4标准的代码。
请参阅the OpenGL 4 Reference manual,你会看到 glColor , glRasterPos 甚至不存在(它们已被弃用..我相信甚至回到openGL 3 )
为了学习如何使用不使用固定功能的现代方式使用openGL,我建议this tutorial
所以基本上答案是没有 glRasterPos 我相信这个功能不起作用 在openGL 4.(或3)(
)对于可行的方法,请参阅此answer