ThreeJS MeshDepthMaterial 阴影不适用于动画

ThreeJS MeshDepthMaterial Shadows Not Working With Animations

为了通过我的网格的透明部分投射阴影,我使用 MeshDepthMaterial 但是当我这样做时,我的对象的动画部分的阴影停止随动画移动。

你可以看看这里的例子:https://jsfiddle.net/miger/kj8gwue5/

var customDepthMaterial = new THREE.MeshDepthMaterial( {
    depthPacking: THREE.RGBADepthPacking,
    alphaMap: alphaTex,
    alphaTest: 0.5
})
    
child.customDepthMaterial = customDepthMaterial;

如果注释掉 customDepthMaterial 输入,您可以看到阴影通常会随动画一起出现,如本例 here 所示。然而,正如您所看到的,阴影不再通过我的网格的透明部分投射,这不是我想要的效果。

我该如何解决这个问题?用 needsUpdate 更新深度 material,没有做任何事情..

在使用深度 material 时,甚至可以使阴影与动画一起正常工作吗?

skinning: true 添加到您的深度 material:

var customDepthMaterial = new THREE.MeshDepthMaterial( {
    depthPacking: THREE.RGBADepthPacking,
    alphaMap: alphaTex,
    alphaTest: 0.5,
    skinning: true // add this property
})