Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载多个混合器导出的对象/网格+;Three.js中的材质_Javascript_Three.js_Blender_Uv Mapping - Fatal编程技术网

Javascript 加载多个混合器导出的对象/网格+;Three.js中的材质

Javascript 加载多个混合器导出的对象/网格+;Three.js中的材质,javascript,three.js,blender,uv-mapping,Javascript,Three.js,Blender,Uv Mapping,我在中建模了两个对象,使用不同的材质和UV映射到它们的不同纹理。我正在用 如果I,则结果中有多个材质,但只有一个网格 这是我用来加载带有三个.js的模型的(简化)代码: var loader = new THREE.JSONLoader(); loader.load(myModelPath, function { var material = geometry.materials[0]; material.morphTargets = true; material.ov

我在中建模了两个对象,使用不同的材质和UV映射到它们的不同纹理。我正在用

如果I,则结果中有多个材质,但只有一个网格

这是我用来加载带有三个.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文件(每个对象一个)?

你知道吗?有一个相对简单的方法来处理这样的案件

  • 像往常一样在搅拌机里做模型
  • 另存为副本与对象的副本数相同
  • 打开每个副本,删除除相关对象之外的所有内容。
    现在您有了
    obj1.blend
    obj2.blend
    ,等等
  • 在每种情况下,都可以在运行时导出到three.js
  • 把它们都装上。在我的代码中,这就像向数组中添加字符串一样简单

  • 请注意,如果有更直接的方法,我也想知道:)

    你知道吗?有一个相对简单的方法来处理这样的案件

  • 像往常一样在搅拌机里做模型
  • 另存为副本与对象的副本数相同
  • 打开每个副本,删除除相关对象之外的所有内容。
    现在您有了
    obj1.blend
    obj2.blend
    ,等等
  • 在每种情况下,都可以在运行时导出到three.js
  • 把它们都装上。在我的代码中,这就像向数组中添加字符串一样简单

  • 请注意,如果有更直截了当的方法,我也想知道:)

    自从提出这个问题以来,他们可能对json导出器进行了改进,但现在这是可能的。在“设置”下底部附近的“导出选项”中,所有网格都有一个复选框。取消选中该选项,将只导出选定的网格。

    自提出此问题以来,他们可能对json导出器进行了改进,但现在可以了。在“设置”下底部附近的“导出选项”中,所有网格都有一个复选框。取消选中该选项,将仅导出选定的网格。

    您必须使用THREE.ObjLoader。在“混合器导出设置”中,可以选择导出选项底部的场景和材质。瞧,你必须使用THREE.ObjLoader。在“混合器导出设置”中,可以选择导出选项底部的场景和材质。瞧

    哦,听到这个消息真高兴!我不会检查它是否有效,但假设有效,我会接受你的答案。谢谢分享这些信息。哦,很高兴听到你这么说!我不会检查它是否有效,但假设有效,我会接受你的答案。谢谢分享信息。