Three.js阴影不能正常工作

And*_*ius 2 shadow light three.js

我试图了解Three.js中的阴影,我在jsfiddle中找到了这个很好的例子.但是我无法理解为什么当我将光线的y降低到65时,即:

light.position.set( 20, 65, 0 );
Run Code Online (Sandbox Code Playgroud)

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

mee*_*tar 6

这种情况正在发生,因为阴影只会被投射到天花板内的物体上light.shadowCamera.在这种情况下,默认设置light.shadowCameraNear似乎设置为大约50,因此截头体从光源开始太远,并且当光线position.y位于65条形时不包括在内.当光线的position.y70,在最亲密的边缘shadowCamera截头向上移动,包括酒吧,和阴影正确施放.

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

light.shadowCameraNear = 1;
Run Code Online (Sandbox Code Playgroud)

无论你移动光线有多低,都会出现阴影.