如何在OpenGl中设置文本颜色

3

我刚接触OpenGL,想要设置文本颜色。尝试使用glColor3f函数,但它会改变绘图颜色,而我只想改变文本颜色。我该怎么做呢?


3
OpenGL无法绘制文本。您正在使用哪个框架来绘制文本(WGL,GLUT等)? - user269597
glut是一个用于编写OpenGL程序的工具包,它提供了创建窗口、处理输入和基本图形渲染等功能。 - PUG
1
你能发一下相关的代码吗?可能有几个地方出了问题。 - user269597
我无法上传代码,但我可以告诉你的是,winManager被用来绘制文本,并且使用CGLText创建了一个字体。 - PUG
2个回答

4
您可以将当前颜色推入属性堆栈,更改颜色,绘制文本,然后弹出堆栈以恢复原始颜色:
glPushAttrib(GL_CURRENT_BIT);
glColor3f(...);
// Draw your text
glPopAttrib(); // This sets the colour back to its original value

我正在连续绘制两个文本,TEXT1和TEXT2。使用上述方法,我试图给TEXT1添加一些颜色,但是颜色却被赋予了TEXT2,这对我来说毫无意义。 - Vipin Verma

2

glColor3f是正确的调用方法,但您必须意识到颜色是全局状态,因此设置它将使所有内容都以该颜色绘制,直到您再次更改它。因此,请执行以下操作:

glColor3f(your text color)
draw text
glColor3f(your normal color (white maybe))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接