Three.js阴影不能正常工作

时间:2013-05-10 07:36:08

标签: three.js shadow light

我试图了解Three.js中的阴影,我发现this nice example in jsfiddle。 但是我无法理解为什么当我将光线的y降低到65时,就是:

light.position.set( 20, 65, 0 );

阴影完全消失。 与此同时,70以上的一切都非常精细,并且投下阴影。像往常一样,我可能会遗漏一些明显的东西,但我真的看不出有什么可以防止光线产生阴影。

2 个答案:

答案 0 :(得分:6)

这种情况正在发生,因为阴影只会被light.shadowCamera的截头体内的物体施放;在这种情况下,默认light.shadowCameraNear似乎设置为大约50,因此截头光源距离光源太远,而当灯光position.y位于65时酒吧不包括在内。当灯光position.y70时,shadowCamera截头柱的最近边缘向上移动以包含条形,阴影投射正确。

您可以通过将light.shadowCameraNear设置为较小的数字来解决此问题。在那个小提琴中,取消注释:

light.shadowCameraNear = 1;

无论移动灯光有多低,都会出现阴影。

答案 1 :(得分:4)

您可以尝试:

light.shadowCameraVisible = true;

要在屏幕上查看灯光的位置和方向,这将有助于您了解正在发生的变化。

希望有所帮助:)