使用灯光

时间:2010-01-19 05:49:36

标签: opengl lighting

尝试掌握灯光并完成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

1 个答案:

答案 0 :(得分:2)

反射光的方向由表面法线设定 光线,表面和相机的位置会影响相机看到的光线量。

或者可能会看到OpenGL lighting problem when rotating the camera