2012-11-29 41 views
3

我试图在opengl中模仿手电筒。基本上我想要的焦点是在相同的位置,摄像头和点相机在指向同一个方向opengl让聚光灯像手电筒一样行动

这里是我的代码:

gluLookAt (xAt, yAt, zAt, xLookAt, yLookAt, zLookAt, 0, 1, 0); 
light_pos [4] = {xAt, yAt, zAt, 1.0}; 
glLightfv (GL_LIGHT0, GL_POSITION, light_pos); 

spotDir [] = {xLookAt - xAt, yLookAt - yAt, zLookAt - zAt}; 
glLightfv (GL_LIGHT0, GL_SPOT_DIRECTION, spotDir); 

我做了调用初始化光和我计算了我所有物体的表面法线。

现在上面的代码类作品,当相机被移动,然后聚光灯下面。但是,当我将相机靠近物体时,物体的光线较少。当我将相机移开时,物体会变得更亮。

我想要发生相反的情况 - 相机距离物体越远,物体照射的光线越少。这是如何完成的?或者,这不是一个opengl聚光灯的行为?

回答

1

所以我研究了这一点,显然修改光线的衰减会产生正确的结果。希望这可以帮助其他任何绊倒这一点的人。