【问题标题】:opengl make spotlight act like a flashlightopengl 使聚光灯像手电筒一样
【发布时间】:2012-11-29 12:37:03
【问题描述】:

我正在尝试在 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 聚光灯的行为?

【问题讨论】:

    标签: c opengl graphics


    【解决方案1】:

    所以我对此进行了研究,显然修改光的衰减会产生正确的结果。希望这可以帮助其他偶然发现此问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多