javascript - 在 Three.js 中加载多个 Blender 导出的对象/网格+ Material

标签 javascript three.js blender uv-mapping

我在 Blender 中模拟了两个对象,具有不同的 Material 和不同的纹理 UV 映射到它们。我用 CanvasRenderer 渲染它

如果我export it ,在生成的 JSON file 中有不止一种 Material 但只有一个网格.

这是我使用 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] Material 。结果是第二个对象使用第一个对象的 Material (如果我使用 [1] Material ,则相反)。

但我不知道如何创建使用多种 Material 的网格!

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

最佳答案

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

  1. 像往常一样在 blender 中建模。
  2. Save as copy 与您拥有的对象一样多的副本。
  3. 打开每个副本,删除相关对象以外的所有内容
    现在您有 obj1.blendobj2.blend 等。
  4. 在其中的每一个中,随时导出到 three.js。
  5. 全部载入。在我的代码中,这就像将字符串添加到数组一样简单。

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

关于javascript - 在 Three.js 中加载多个 Blender 导出的对象/网格+ Material ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281814/

相关文章:

javascript - 使用 jQuery .css() 将元素的字体设置为 Google Fonts 字体

javascript - 如何获取当前 session 的JSESSIONID

javascript - 关于自动刷新php文件中<div>的一部分

javascript - 捕获提交事件,验证,如果可以的话。继续提交表格

javascript - 如何在 Three.js 形状几何中添加正面和背面纹理?

javascript - Three.js:如何计算相机图像中物体的最小外接矩形?

python - 如何使用 Python 在 Blender 2.78a 中制作关键帧?

javascript - Three.js加载多个分离对象/JSONLoader

javascript - ThreeJS 在异步加载后更新 FBX 对象的属性

python - 如何在 python 中从 .obj 文件获取坐标?