我有一个导出的(三个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导出它。
答案 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 );