2012-11-29 44 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

所以我研究了這一點,顯然修改光線的衰減會產生正確的結果。希望這可以幫助其他任何絆倒這一點的人。