2012-12-20 38 views
0

我的模型罚款与此代码加载:MeshFaceMaterial/JSON材料错误

loader.load("js/charWalk01.js", function(geometry, materials) { 
       mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial()); 
       scene.add(mesh); 

      }); 

然而,当我尝试使用MeshFaceMaterial(以便使用该材料在JSON文件),我得到两个非常奇怪three.min.js错误消息(如下)。

loader.load("js/charWalk01.js", function(geometry, materials) { 
       materials[ 0 ].morphTargets = true; 
       mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial()); 
       scene.add(mesh); 
      }); 

的错误是:

TypeError: 'undefined' is not an object (evaluating 'a.map') three.min.js:347 

    TypeError: 'undefined' is not an object (evaluating 'ma.attributes') three.min.js:429 

JSON文件是完全正常的(与OBJ转换器创建的),这里的材料代码是:

"materials": [ { 
"DbgColor" : 15658734, 
"DbgIndex" : 0, 
"DbgName" : "Mat.1", 
"colorDiffuse" : [1.0, 1.0, 1.0], 
"colorSpecular" : [0.4, 0.52, 0.53], 
"illumination" : 4, 
"mapDiffuse" : "Character_01.jpg" 
}], 

任何帮助来为什么这些错误可能出现?

干杯, 伊恩

+2

尝试'THREE.MeshFaceMaterial(材料) ' - 请参阅迁移wiki :: https://github.com/mrdoob/three.js/wiki/Migration。 three.js r.53 – WestLangley

+0

这就是獾!谢谢你,祝你新的快乐! – Ian

回答

1

您需要通过materials作为参数传递给MeshFaceMaterials,像这样:

loader.load("js/charWalk01.js", function(geometry, materials) { 
    materials[ 0 ].morphTargets = true; 
    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 
    scene.add(mesh); 
}); 

three.js所r.53