2

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

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

我还没有看到任何关于morphTargetInfluences属性的文档,所以我没有太多工作要做。

我不能真正发布代码,因为它在代码库中过于分散。

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

4

1 回答 1

1

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

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

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

Buffergeometry.morphTargets = [];
Buffergeometry.morphTargets.push(0);
于 2016-02-14T08:33:43.980 回答