我在Blender中建模了两个物体,不同的材质和不同的纹理紫外线映射到它们。我用CanvasRenderer
渲染它如果我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文件(每个对象一个)?
答案 0 :(得分:3)
obj1.blend
,obj2.blend
等请注意,如果有更直接的方式,我也想知道:)
答案 1 :(得分:1)
自从提出这个问题以来,他们可能对json导出器进行了改进,但现在可能了。在设置底部附近的导出选项中,所有网格都有一个复选框。取消选中该选项,仅导出选定的网格。
答案 2 :(得分:0)
您必须使用THREE.ObjLoader。在混合器导出设置中,您可以选择导出选项底部的场景和材质。瞧