我的单个 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 );
答案 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;
};