OpenGL:跟随相机的光源?

时间:2011-04-06 18:58:49

标签: opengl light

伙计们,这怎么可能。但在我以前的项目中,事实并非如此。而且我不知道我是如何尝试这种效果的。请告诉我实话。

1 个答案:

答案 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轴。

     

当灯的位置固定时   相对于眼睛,你不需要   为每个人重新指定灯光位置   帧。通常,您只需指定一次   当你的程序初始化时。