2017-07-18 129 views
0

我有单个带有不同元素的OBJ文件与唯一ID。 必须将此模型加载到Babylon.js,并使用这些ID重新分配材料 。Babylon.js OBJ加载程序通过ID分配材料

OBJ 
| 
|- Head 
|- Body 
|- RightLeg 
|- LeftLeg 
| 
|... 

material1 for Head 
material2 for Body 
... 

我知道该怎么做,在three.js所,但Babylon.JS我没有找到任何 解决方案。

到three.js所代码类似:

loader.load(OBJ_URL, function (object) { 

     object.traverse(function (child) { 

      if (child instanceof THREE.Mesh) { 

       if(child.name == "{name}") { assign material } 

      } 

     }); 

}, onProgress, onError); 

回答

0

应该是这样的,但这是出问题:

obj.onSuccess = function (task) { 

      group = new BABYLON.Mesh.CreateBox("sunglasses", 1E-9, scene); 
      var parts = []; 

      for(var i = 0, l = task.loadedMeshes.length; i < l; i++){ 

       parts.push(task.loadedMeshes[i]); 
       parts[parts.length - 1].material = materials[hierarchy[i].material]; 
       parts[parts.length - 1].parent = group; 

      } 

      group.rotation = modelAdjusment.rotation; 
      group.scaling = modelAdjusment.scaling; 
      group.position = modelAdjusment.position; 

      scene.addMesh(group); 
      group.alphaIndex = 1; 

};