三种js动画搅拌器模型与材料颜色

时间:2012-12-02 10:21:34

标签: three.js blender

我有一个导出的(三个js json格式)blender模型。该模型有一些颜色的材料。如果我使用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对象,但如果我知道我不能从blender导出它。

1 个答案:

答案 0 :(得分: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 );