Пытаясь понять свет и прорабатывать книгу OpenGL Superbible.Ниже приведено то, что я сейчас использую для освещения.Он помещен в функцию SetupRC.
Освещение в основном работает так, как я ожидал, в соответствии с положением и т. Д., Но меня смущает, почему, когда я поворачиваю камеру, она становится ярче в местах, где раньше было темнее.Я не сдвинул положение камеры, но свет все еще движется.
Почему это?Вроде запутался здесь.
GLfloat ambient[] = { 0.7f, 0.7f, 0.7f, 0.5f };
GLfloat diffuse[] = { 1.0, 1.0f, 1.0f, 1.0f };
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
glEnable(GL_LIGHT0);
GLfloat ambientLight[] = {1.0f, 0.0f, 1.0f, 0.5f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); //GL_AMBIENT_AND_DIFFUSE