2012-07-01 108 views
1

我在Blender中建模了两个对象,并使用不同的材质和不同的纹理UV映射到它们。我正在使用CanvasRenderer在Three.js中加载多个Blender导出的对象/ mesh +材质

如果我是export it,在结果JSON file中有多个材质但只有一个网格。

这是(简化)代码,我用它来加载模型three.js所:

var loader = new THREE.JSONLoader(); 
loader.load(myModelPath, function { 

    var material = geometry.materials[0]; 
    material.morphTargets = true; 
    material.overdraw = true; 

    var mesh = new THREE.Mesh(geometry, material); 

    mesh.scale.set(50, 50, 50); 
    mesh.position.set(0, 0, 0); 

    scene.add(mesh); 

}); 

正如你所看到的,我只使用了[0]材料。结果是第二个对象使用第一个对象的材质(如果我使用[1]材质,则会发生相反情况)。

但我不知道如何创建一个使用多种材质的网格!

这有可能吗?或者,有没有办法从Blender中导出多个JSON文件(每个对象一个)?

回答

1

他们可能已经做了改进,json的出口,因为这个问题被问过,但现在是可能的。在靠近设置底部的导出选项中,所有网格都有一个复选框。取消选中,只有选定的网格会被导出。

+0

Oooh,很高兴听到!我不会检查它是否有效,但假设它有效,我会接受你的答案。感谢分享信息。 –

3

你知道吗?有关这种情况的相对简单的方法。

  1. 模型在搅拌机照常。
  2. 保存为副本与您拥有的对象一样多的副本。
  3. 打开每个副本,并且删除除相关对象以外的所有内容。
    现在你有obj1.blendobj2.blend
  4. 在每个这些,出口到three.js你去。
  5. 加载全部。在我的代码中,这就像向数组添加字符串一样简单。

需要注意的是,如果有要去一个关于它的更直接的方式,我想太了解:)

0

您必须使用THREE.ObjLoader。在搅拌机导出设置中,您可以选择导出选项底部的场景和材质。 Voila

相关问题