OpenGL中奇怪的位置光

时间:2014-03-16 01:35:14

标签: opengl lwjgl lighting

在OpenGL中尝试照明(使用LWJGL)时,我发现位置灯照亮了模型中实际应该在阴影中的部分。这是一个例子: Falsely illuminated part

我做错了什么,或者这只是OpenGL的位置灯工作方式?

2 个答案:

答案 0 :(得分:7)

Shadow mapping不是OpenGL的内置功能。在正常情况下,镜面光的可见度仅考虑表面相​​对于光源和相机的角度。确定光源和表面之间是否存在某种东西需要更高的复杂性和额外的计算。

答案 1 :(得分:3)

你做得对,结果如预期。

通过引入定向光,您不会投射任何阴影。您只需使法线面对光源的像素变暗。

尾巴只是不知道兔子的存在。要使尾部变暗,您需要实现阴影贴图(基本上,您需要知道从光源的角度看尾部的几何形状是否可见,或者它是否被兔子遮挡)。