2

我有一个导出的(三个 js json 格式)搅拌机模型。该模型有一些颜色的材料。如果我使用 THREE.MorphAnimMesh 和 THREE.MeshPhongMaterial 动画效果很好,但没有材质颜色。如果我使用 THREE.MeshFaceMaterial 它有颜色但动画不起作用。问题是,如何使用模型 js 文件中的材质颜色进行动画处理?

动画工作但没有颜色。模型是白色的:

var material = new THREE.MeshPhongMaterial({ morphTargets: true, morphNormals: true, vertexColors: THREE.FaceColors, shading: THREE.SmoothShading, perPixel: true }  );
var meshAnim = new THREE.MorphAnimMesh( geometry, material );

模型具有材质颜色但动画不起作用:

var material  = new THREE.MeshFaceMaterial({ morphTargets: true, morphNormals: true, vertexColors: THREE.FaceColors });
var meshAnim = new THREE.MorphAnimMesh( geometry, material );

这是模型 js 文件:http ://speedy.sh/rs39u/skeleton-0.js

顺便说一句,我从示例中看到了 flamingo.js 文件。它有一个 morphColors 对象,但如果我知道正确,我不能从搅拌机中导出它。

4

1 回答 1

1

知道了。也许有人可以使用它:

for (var i=0; i<geometry.materials.length; i++) {
    geometry.materials[i].morphTargets = true;
}
var material  = new THREE.MeshFaceMaterial({ morphTargets: true, morphNormals: true, vertexColors: THREE.FaceColors });
var meshAnim = new THREE.MorphAnimMesh( geometry, material );
于 2012-12-17T13:23:43.800 回答