我同时使用绘制一个带纹理的立方体旁边的顶点彩色立方体,并发现在glDrawArrays()启用照明的情况下,该带纹理的立方体变得“稍微明亮”。
经过一些调试后,我发现glEnable(GL_COLOR_MATERIAL)被调用的第一个瞬间,即使glDisable(GL_COLOR_MATERIAL)此后立即被调用,也会在带纹理的立方体上产生“稍微更亮”的效果!
这是简短的说明:
glEnable(GL_COLOR_MATERIAL);
glDisable(GL_COLOR_MATERIAL);
(...)
glDrawArrays(GL_QUADS, 0, n);
Run Code Online (Sandbox Code Playgroud)
如果glEnable(GL_COLOR_MATERIAL)根本没有调用,则用黄色绘制多维数据集。如果glEnable(GL_COLOR_MATERIAL)调用,即使后跟glDisable(GL_COLOR_MATERIAL),也将多维数据集绘制为稍亮的黄色,并且我无法切换回“初始较暗的黄色多维数据集颜色”。
您能否告诉我这是否是预期的行为?