如何在OpenGL中避免光线旋转?

时间:2016-01-19 14:06:43

标签: c++ opengl rotation lighting

在OpenGL中,我创建了一个我旋转的简单立方体。我正在旋转立方体,而不是相机!

然后我添加了一个光源。灯也随着立方体旋转。我怎么能避免这个?

有人可以告诉我何时激活哪种矩阵模式以及何时推送和弹出当前矩阵。我尝试了很多很多组合和序列,但该死的灯总是(!)跟随旋转。

我并不期待一个通用的答案,只是说它与矩阵堆栈有关。具有非旋转光的旋转物体的具体简短示例将非常棒!

1 个答案:

答案 0 :(得分:1)

光跟随旋转物体的可能原因是没有为物体定义(合适的)法向矢量。虽然物体的光线和运动都是正确编程的,但是错误的或没有法向矢量可以使整个场景看起来像光跟随旋转物体。

定义物体的法线向量,决定光线的反射方式,可以解决问题。