具有morphattributes的动画缓冲测量不会更新阴影

时间:2016-02-13 00:45:14

标签: javascript three.js buffer-geometry

我已将库中的MD2代码转换为使用THREE.BufferGeometry而不是THREE.Geometry来大大改善内存占用。为此,我只需在加载完成后将模型转换为THREE.BufferGeometry。我还必须修改MorphBlendMesh代码以使用morphTargetInfluences

的属性

除了问题之外,效果很好:阴影在动画期间不会更新,它总是使用动画第一帧的阴影。

我还没有看到关于morphTargetInfluences属性的任何文档,所以我没有太多可以继续下去。

我无法发布代码,因为它在代码库中分布太多。

我只是希望有人可以对变形动画期间阴影如何更新有所了解,并且可能指出我如何研究这个问题的正确方向。

1 个答案:

答案 0 :(得分:0)

我找到了问题,并找到了解决方法!

着色器渲染器中的代码在决定设置geometry.morphTargets标志之前检查'usemorphing'是否具有非零长度。转换后的缓冲区几何图形没有.morphTargets字段,因为此信息似乎已移至.morphAttributes缓冲区域。

我的黑客解决方法是添加一个假的.morphTarget列表,如下所示:

Buffergeometry.morphTargets = [];
Buffergeometry.morphTargets.push(0);