在opengl中创建太阳能系统 - 照明不按计划运行

sta*_*ess 5 c opengl lighting

我正试图在openGL中创建一个太阳系(只有太阳,地球和月亮).我唯一的光源是太阳,它应该点亮其他行星.到目前为止我已经开始工作了,但是这个行星的面向太阳的面也被照亮了,我希望它们是黑暗的.

在此输入图像描述

对象是glutSolidSpheres,太阳在原点,也有我的光源.这是我的照明设置的代码:

    GLfloat light_position[] = {0.0, 0.0, 0.0, 1.0};
    GLfloat light_ambient_color[] = {0.0, 0.0, 0.0, 0.0};
    GLfloat light_diffuse_color[] = {1.0, 1.0, 1.0, 1.0};

    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient_color);
    glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse_color);
    glEnable(GL_LIGHTING);
    glEnable(GL_LIGHT0);
    glColorMaterial ( GL_FRONT, GL_DIFFUSE ) ;
    glEnable(GL_COLOR_MATERIAL);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?你们能给我一个暗示吗?

sta*_*ess 2

事实上,我刚刚意识到评论中的棘轮怪胎是正确的。我在设置灯光位置后调用了 gluLookAt,因此它“旋转”了它。我现在打电话给它,现在它可以工作了!