我是OpenGL的新手,我无法知道如何做到这一点:
我想渲染一个字母并且能够改变它的颜色,所以我在透明背景上有一个带有字母的纹理。我设法使用此代码渲染它:
glEnable(GL_BLEND)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
但是这会将字母呈黑色,因为它在纹理上。如何使用glColor4f
设置的颜色进行渲染?
答案 0 :(得分:2)
你有没有搞乱glTexEnv?如果你这样做,请致电:
glTexEnv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)
这将恢复默认行为,即将纹理颜色与顶点颜色相乘。
答案 1 :(得分:1)
还有其他几种可能性。一种方法是将字母的形状放入模板缓冲区,然后以您喜欢的颜色绘制四边形。另一种方法是用浅灰色绘制文本,并使用光照使其以您想要的颜色显示。