伙计们,这怎么可能。但在我之前的项目中,情况并非如此。而且我不知道我是如何尝试这种效果的。请告诉我真相。
问问题
4954 次
1 回答
4
第 18.050 节,如何让我的灯移动或不移动并控制灯的位置?:
首先,您必须了解 OpenGL 是如何转换灯光位置的。
当您通过调用
glLightfv( GL_LIGHTn, GL_POSITION, ... )
. 如果您稍后更改 ModelView 矩阵,例如在下一帧的视图发生更改时,灯光位置不会被 ModelView 矩阵的新内容自动重新转换。如果你想更新灯光的位置,你必须再次通过调用来指定灯光的位置glLightfv( GL_LIGHTn, GL_POSITION, ... )
。...
- 如何使我的灯光位置相对于我的眼睛位置保持固定?怎么做大灯?
您需要在眼睛坐标空间中指定您的光线。为此,请将 ModelView 矩阵设置为标识,然后指定您的灯光位置。要制作头灯(看起来位于或靠近眼睛并沿视线发光的灯),请将 ModelView 设置为标识,将灯位置设置为(或靠近)原点,并将方向设置为负 Z 轴。
当灯光相对于眼睛的位置是固定的时,您不需要为每一帧重新指定灯光位置。通常,您在程序初始化时指定一次。
于 2011-04-06T19:18:44.623 回答