【问题标题】:no materials applied and missing faces when exporting from blender to three.js从 blender 导出到 three.js 时没有应用材质和缺少面
【发布时间】:2016-09-23 03:48:58
【问题描述】:

我正在尝试将我在搅拌机中制作的喷气机导出到 three.js。该模型正确显示,但它缺少一些面并且没有应用任何材料,即使它们清楚地存在于 json 中。这是它在搅拌机中的外观:

这是它在浏览器中的外观:

如您所见,大部分机盖、机身和进气口的一部分都不见了。任何部分都没有应用任何材料,颜色仅来自环境光。它是这样称呼的:

var x29;
function createFighter() {
    var loader = new THREE.JSONLoader();
    loader.load('x29.json', function(geometry, materials) {
        x29 = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials));
        x29.castShadow = true;
        x29.receiveShadow = true;
        scene.add(x29);
    });
}

导出器中的更改、对模型进行三角剖分或其他任何操作都不会产生任何结果。我做错了什么?

【问题讨论】:

  • 我认为你有一些向内的法线,试着让你的材料双面去除孔或修复搅拌机。至于应用材质,你是用纹理贴图吗?纹理图像是异步加载的,必须先加载。基色看起来不正确,您是否在调用 THREE.Mesh() 之前确认材质纹理贴图实际上已加载并准备就绪?
  • 我没有使用任何纹理贴图,我实际上并没有在这里使用任何纹理,因为我想将复杂性和大小保持在最低限度。搅拌机屏幕截图中的所有颜色都来自材料本身。然而,双面材料确实修复了缺失的面,所以谢谢你
  • 我发现了这一点,github.com/mrdoob/three.js/issues/6264

标签: json three.js blender


【解决方案1】:

原来三个可以识别,但不会应用循环创建的材料。搅拌机渲染将。正如@Radio 指出的那样,由于法线翻转而导致面部丢失。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 2015-03-26
    • 2018-05-19
    • 2017-09-29
    • 2013-12-08
    • 2015-05-13
    • 2017-11-03
    • 2012-04-04
    • 2023-03-20
    相关资源
    最近更新 更多