OpenGL聚光灯从后面照射

时间:2009-07-28 06:06:47

标签: opengl

我在OpenGL中有一个Spotlight源,指向纹理映射的球体。

我用球体旋转lightsource,这样如果我将球体旋转到“非光”侧,那边应该是黑暗的。

奇怪的是,聚光灯似乎在我的球体上闪耀(它是一个坚固的,三角形之间没有间隙。光似乎是'泄漏'到另一边。

有关为何发生这种情况的任何想法?

截图:

Front view, low light to emphasize the problem

Back view, notice the round area that is 'shining through'

2 个答案:

答案 0 :(得分:1)

很难从图像中分辨出来,但是:

检查是否正在设置GL_LIGHT_MODEL_TWO_SIDE(双面照明),但更重要的是要查看正在渲染的球体的法线。

编辑:此外 - 将背景颜色更改为更轻的颜色。哦,并确保你没有打开alpha混合渲染(​​可能是多边形排序问题)。

答案 1 :(得分:1)

好的,我是个笨蛋 - 我正在指定我的法线,但没有调用glEnableClientState(GL_NORMAL_ARRAY)。因此所有法线都面向一个方向(我认为这是默认的,不是吗?)

无论如何 - 从中​​学到的经验 - 总是回过头来看。