2

我是 OpenGL 的新手,我不知道如何做到这一点:
我想渲染一个字母并能够改变它的颜色,所以我在透明背景上有一个带有字母的纹理。我设法使用以下代码渲染它:

glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)  

但这会将字母呈现为黑色,因为它在纹理上。如何使用设置的颜色渲染它glColor4f

4

2 回答 2

2

你一直在搞乱 glTexEnv 吗?如果你这样做了,请致电:

glTexEnv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)

这将恢复默认行为,即将纹理颜色与顶点颜色相乘。

于 2010-06-11T11:47:42.843 回答
1

还有其他几种可能性。一种是将字母的形状放入模板缓冲区,然后以您喜欢的颜色绘制一个四边形。另一种方法是将文本绘制为浅灰色,并使用照明使其以您想要的颜色显示。

于 2010-06-11T13:51:43.943 回答