ThreeJS:物体不能在其他物体上投射阴影

3

我正在使用 three v0.85.2 版本。

默认情况下,我的所有对象都已配置为投射和接收阴影:

const mesh = new Mesh(geometry, material)

mesh.castShadow = meshConfig.castShadow
mesh.receiveShadow = meshConfig.receiveShadow

renderershadowMap已启用。

自身阴影似乎被正确渲染(如下图中的绿色方块)。 但是投射到其他物体的阴影缺失(如下图中的红色方块)。

enter image description here

这个问题似乎发生在我所有的网格中。 我找不到让它们出现的方法。


1
如果您使用THREE.DirectionalLight(),请阅读此文档。此外,您可以尝试调整light.shadow.camera.left.top.right.bottom属性。 - prisoner849
@prisoner849:这个完美地运作了。你可以把它发表为答案。谢谢。 - Elorfin
不用客气)将其发布为答案。 - prisoner849
1个回答

5

定向光阴影,在那里您可以了解如何在场景中使用THREE.DirectionalLight()处理阴影。

此外,您还可以尝试调整光源的阴影相机的.left.top.right.bottom属性。

var light = new THREE.DirectionalLight(0xffffff,1);
light.position.set(50, 500, 22);
light.target.position.set(300, 400, 200);

light.shadow.camera.near = 0.5;       
light.shadow.camera.far = 5000;      
light.shadow.camera.left = -500;
light.shadow.camera.bottom = -500;
light.shadow.camera.right = 500;
light.shadow.camera.top = 500;

light.castShadow = true;
scene.add(light);

three.js r85

jsfiddle 示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接