2012-12-02 70 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);