我有以下代码:
for (all the meshes)
{
if (any material exists)
{
if (glIsEnabled(GL_COLOR_MATERIAL))
glDisable(GL_COLOR_MATERIAL);
// some meaterial stuff as glMaterialfv
}
else if (!glIsEnabled(GL_COLOR_MATERIAL))
glEnable(GL_COLOR_MATERIAL);
//Draw the model by using display list
}
问题是材料未正确加载。当我删除这些行时:
if (!glIsEnabled(GL_COLOR_MATERIAL))
和
if (glIsEnabled(GL_COLOR_MATERIAL))
代码完美无缺。为什么? glIsEnabled检查GL_COLOR_MATERIAL是否启用,这意味着即使GL_COLOR_MATERIAL被启用我也需要调用glEnable(GL_COLOR_MATERIAL),为什么?