Функциональность, о которой вы говорите, слишком устарела. GL_FLAT и GL_SMOOTH - режимы конвейера с фиксированными функциями, в которых используется освещение Блинна-Фонга.
Оба режима дают одну и ту же модель освещения, но значения GL_FLAT для пикселей внутри поли не интерполируются. Таким образом, каждый многоугольник с GL_FLAT становится равномерно освещенным и выглядит плоским.
Отвечая на ваш вопрос, вы не можете получить ничего, кроме Blinn-Phong с GL_SMOOTH и GL_FLAT.
Я знал, что тамтолько два режима затенения
Это не так с ~ 15 лет назад.
В настоящее время функциональность фиксированного конвейера устарела. Пожалуйста, используйте шейдеры и применяйте любое освещение, если только вы не вынуждены использовать устаревшие GL из-за угроз насилия.