У меня есть следующий код:
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), Почему?
Задача ещё не решена.