Я знал, что в [openGL] есть только два режима затенения: GL_FLAT и GL_SMOOTH. Я просто хочу знать, есть ли способы добиться затенения Гуро и затенения Фонга, используя только указанные выше режимы затенения в [openGL]?
Некоторая путаница в моделях затенения openGL для GL_FLAT и GL_SMOOTH
Ответы (1)
Функциональность, о которой вы говорите, слишком устарела. GL_FLAT и GL_SMOOTH — это режимы фиксированного функционального конвейера, в котором использовалось освещение Блинна-Фонга.
Оба режима дают одну и ту же модель освещения, но значения GL_FLAT для пикселей внутри полигона не интерполируются. Таким образом, каждый полигон с GL_FLAT освещается равномерно и выглядит плоским.
Отвечая на ваш вопрос, вы не можете получить ничего, кроме Блинна-Фонга с GL_SMOOTH и GL_FLAT.
Я знал, что есть только два режима затенения
Это неправда, так как ~ 15 лет назад.
В настоящее время функциональность фиксированного конвейера устарела. Пожалуйста, используйте шейдеры и реализуйте любое освещение, которое вы хотите, если только вы не вынуждены использовать устаревший GL из-за угроз насилия.