伙计们,这怎么可能。但在我以前的项目中,事实并非如此。而且我不知道我是如何尝试这种效果的。请告诉我实话。
答案 0 :(得分:4)
Section 18.050, How can I make my light move or not move and control the light position?:
首先,你必须了解如何 光位置被转换 的OpenGL。灯光位置被转换 当前顶部的内容 你的ModelView矩阵堆栈 通过调用指定灯光位置 到
glLightfv( GL_LIGHTn, GL_POSITION, ... )
。 如果以后更改ModelView 矩阵,例如视图改变时 对于下一帧,灯光位置 不会自动重新转换 ModelView的新内容 矩阵。如果你想更新 光的位置,你必须再次 通过调用指定灯光位置 到glLightfv( GL_LIGHTn, GL_POSITION, ... )
。...
- 如何让我的光线位置相对于我的眼睛保持固定 位置?我如何制作大灯?
你需要在眼睛中指定光线 坐标空间。为此,请设置 ModelView矩阵的标识,然后 指定你的灯光位置。做一个 前灯(似乎是一盏灯 位于眼睛处或附近 集合在一起 将ModelView设置为标识,设置 在(或附近)的轻微位置 原点,并设置方向 负Z轴。
当灯的位置固定时 相对于眼睛,你不需要 为每个人重新指定灯光位置 帧。通常,您只需指定一次 当你的程序初始化时。