ThreeJS:对象不会在其他人身上投下阴影

ThreeJS : objects don't cast shadow on others

我正在使用 three v0.85.2

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

const mesh = new Mesh(geometry, material)

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

shadowMap 已启用。

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

问题似乎出现在我所有的网格上。 我找不到让它们出现的方法。

DirectionalLightShadow,您可以在那里阅读在场景中使用 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 例子