我一直在遵循照明指南并为我的旋转立方体设置光源(通过用户交互在 3 轴上旋转)
但是,无论我做什么,我都无法让光源保持在正确的位置,它似乎随着立方体旋转。因此,如果我旋转立方体,一部分会被点亮,而另一部分则不会。
我正在做很多矩阵操作。我尝试重置矩阵,然后应用光源,我尝试glLoadIdentity()
重置视图。
我似乎无法保持静止。
static const Vertex3D light0Position[] = {{0.0, 10.0, 10.0}};
glLightfv(GL_LIGHT0, GL_POSITION, (const GLfloat *)light0Position);
// Calculate light vector so it points at the object
static const Vertex3D objectPoint[] = {{8.0, 8.0, -4.0}};
const Vertex3D lightVector = Vector3DMakeWithStartAndEndPoints(light0Position[0], objectPoint[0]);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, (GLfloat *)&lightVector);