【问题标题】:Drawing a polygon with color in OpenGL causes texture colors to change在 OpenGL 中用颜色绘制多边形会导致纹理颜色发生变化
【发布时间】:2012-03-04 00:29:12
【问题描述】:

我正在开发一个模拟程序,该程序在一个大的 2D 矩形顶部绘制点和其他图元,并在其上映射纹理。

问题是,当我绘制多边形并使用 glColor3f 为顶点指定颜色时,该颜色似乎会影响纹理的颜色,而不仅仅是我绘制的多边形。因此,绘制红色多边形似乎会“渗出”到整个纹理上,并且一切都显得偏红。

我尝试在绘制多边形之前使用 glDisable(GL_TEXTURE_2D) 解决此问题,然后再次启用。但这似乎没有任何效果。

【问题讨论】:

    标签: opengl texture-mapping


    【解决方案1】:

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

    为了将颜色“重置”回默认值,请致电glColor3f(1.0f, 1.0f, 1.0f);

    【讨论】:

    • 你是一位先生。谢谢。我花了很长时间才弄清楚 glColor3f 会影响一切,更不用说 glColor3f(1.0f, 1.0f, 1.0f) 会重置它......
    猜你喜欢
    • 2018-05-09
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    相关资源
    最近更新 更多