Babylon.js OBJ Loader Назначение материалов по идентификаторам

У меня есть один файл OBJ с различными элементами с уникальными идентификаторами. Необходимо загрузить эту модель в Babylon.js с повторным назначением материалов по этим идентификаторам.

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 ответ

Это должно быть что-то вроде этого, но это глюк:

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;

};
Другие вопросы по тегам