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
})
为了通过我的网格的透明部分投射阴影,我使用 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
})