OpenGL材质未正确加载

时间:2014-06-06 16:00:41

标签: c++ opengl 3d material

我有以下代码:

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),为什么?

0 个答案:

没有答案