我一直在尝试使用 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);
}
Run Code Online (Sandbox Code Playgroud)
在场景渲染函数中,我进行了这个调用:
drawString(0, 0, "TESTING");
Run Code Online (Sandbox Code Playgroud)
这些是唯一将显示任何文本的 x 和 y 值,在这种情况下,“TESTING”出现在屏幕中间,“TE”为红色(我想要的颜色),“STING”为黑色。
我看到的处理这个函数的所有代码都使用了早期版本的 openGL 和不推荐使用的代码,所以我不知道该怎么做。
以上绝对不是openGL 4兼容的代码。
请参阅OpenGL 4 参考手册,您将看到glColor、glRasterPos甚至不存在(它们已被弃用......我相信甚至回到 openGL 3)
为了学习如何以不使用固定功能的现代方式使用 openGL,我会推荐本教程
所以基本上答案是,如果没有glRasterPos,我相信这个函数不能在 openGL 4 中工作。(或者 3 就此而言)
有关可行的方法,请参阅此答案
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |