在OpenGL中使用颜色绘制多边形会导致纹理颜色发生变化

时间:2012-03-04 00:29:12

标签: opengl texture-mapping

我正在研究一个模拟程序,该程序在一个大的2D矩形上绘制点和其他基元,并在其上映射纹理。

问题是,当我使用glColor3f绘制多边形并为顶点指定颜色时,该颜色似乎会影响纹理的颜色而不仅仅是我绘制的多边形。因此,绘制一个红色多边形似乎会出现'#34;出血"在整个纹理上,一切都显得微红。

我试图通过在绘制多边形之前使用glDisable(GL_TEXTURE_2D)然后再次启用来解决此问题。但这似乎没有任何影响。

1 个答案:

答案 0 :(得分:4)

当您设置OpenGL的颜色状态时,

glColor3f会更改您调用后绘制的所有内容的颜色。这就是OpenGL的一般工作方式。 (glTranslate/Rotate/ScalefglMultMatrixglLoadIdentity等工作方式与使用矩阵模式状态选择的矩阵(使用glMatrixMode设置)更改转换状态的方式相同)

要将颜色“重置”回默认值,请拨打glColor3f(1.0f, 1.0f, 1.0f);