javascript - ThreeJS MeshDepthMaterial 阴影不适用于动画
问题描述
为了通过我的网格的透明部分投射阴影,我使用了,MeshDepthMaterial
但是当我这样做时,我的对象的动画部分的阴影会随着动画停止移动。
您可以在这里查看示例:https ://jsfiddle.net/miger/kj8gwue5/
var customDepthMaterial = new THREE.MeshDepthMaterial( {
depthPacking: THREE.RGBADepthPacking,
alphaMap: alphaTex,
alphaTest: 0.5
})
child.customDepthMaterial = customDepthMaterial;
如果您注释掉customDepthMaterial
-input,您可以看到阴影通常会与动画一起出现,如此处的示例所示。但是,正如您所见,阴影不再投射到我的网格的透明部分,这不是我想要的效果。
我怎样才能解决这个问题?用 更新深度材料needsUpdate
,没有做任何事情..
使用深度材质时,甚至可以使阴影与动画一起正常工作吗?
解决方案
添加skinning: true
到您的深度材料:
var customDepthMaterial = new THREE.MeshDepthMaterial( {
depthPacking: THREE.RGBADepthPacking,
alphaMap: alphaTex,
alphaTest: 0.5,
skinning: true // add this property
})
推荐阅读
- php - Laravel - Hash::make(),如何不超过执行时间?
- ruby-on-rails - Cocoapods 问题等
- android - 登录时是否可以根据 Firebase 数据库上的属性将用户定向到同一目录中?
- spring-integration - ActiveMQ Artemis 代理上未发布消息“正在传递”状态
- python - 将多个正则表达式匹配附加到列表列表
- google-app-engine - 谷歌应用引擎 - 如何禁用缓存
- python - 如何使用 python PIL 在处理后的图像中获取一组颜色
- database - 订单排名列算法
- flutter - 如何在flutter中只写十个动态标签的条件
- python - 使用 LPproblem 类添加“每隔一天约束”