导入的模型可能是一个复杂的物体,由多个子物体或子部分组成。在Three.js中,只有当一个物体的 castShadow
属性被设置为 true
时,它才会投射阴影。因此,即使我们为整体模型设置了 castShadow
属性,但如果模型的某个子部分没有设置这个属性,那么该子部分就不会投射阴影。
这也是为什么基本的Three.js几何体可以正常产生阴影,而导入的模型不能的原因。基本几何体是单一的物体,不包含子部分,所以当我们为其设置 castShadow
属性时,整个物体都会响应。而对于导入的模型,我们需要确保每一个子部分都被正确地设置。
nameNode1!.children.forEach(child => {
// 设置每个子对象的 castShadow 属性为 true
child.castShadow = true;
});