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;
};