Babylon.js OBJ Loader按ID分配材料

时间:2017-07-18 08:35:06

标签: hierarchy assign material .obj babylonjs

我的单个 OBJ文件包含唯一ID 的不同元素。 必须使用重新分配材料将此模型加载到Babylon.js 通过这些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 );

1 个答案:

答案 0 :(得分: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;

};