2012-12-02 75 views
2

我有一个导出的(三js json格式)搅拌机模型。该模型有一些颜色的材料。如果我使用THREE.MorphAnimMesh和THREE.MeshPhongMaterial,动画工作正常,但没有材质颜色。如果我使用THREE.MeshFaceMaterial它有颜色但动画不起作用。 问题是,我如何使用模型js文件中的材质颜色动画?三种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

BTW,我看到了flamingo.js文件从例子。它有一个morphColors对象,但如果我知道我不能从搅拌机中导出。

回答

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);