THREE.js objetloader不会从Blender导出的3d模型的json文件中加载纹理

时间:2018-03-30 04:05:56

标签: three.js blender

所以我现在有两个问题。

  1. 似乎对象加载器从不从json文件加载3d模型的纹理。

  2. 我不知道怎么回事,三个模型的位置在THREE.js加载器加载后会稍微改变一下。

  3. 这应该是什么样子

    Here is what it should look like

    以下是我浏览器的内容

    Here is what it looks like on my browser

    这是THREE.JS代码:

    var loader = new THREE.JSONLoader();
    loader.load("./script/treehouse.json",function ( geometry) {
        var mesh = new THREE.Mesh( geometry);
        $scene.add( mesh );
    });
    

    导出设置:

    enter image description here

    enter image description here

    以下是json文件的样子:

    enter image description here

    更新:既然我选择了dae格式,它看起来与blender完全相同,但是纹理仍然不存在,每次打开dae文件或刷新页面时模型的颜色都会改变。{{3} }

1 个答案:

答案 0 :(得分:0)

我建议使用与THREE.js内部格式不同的格式。 众所周知,它会在修订版之间稍作修改,最终会要求您在以后重新导出资产。您最好使用标准格式,如GLTF,Collada,OBJ或FBX。此外,三种json格式相当臃肿,导致文件很容易阅读,但可能非常大。

我推荐使用GLTF 2.0(gltf)或Collada(.dae)格式。您将获得较小的文件,格式应保持更稳定。如果您使用Gltf,您还可以使用Don McCurdys漂亮的GLTF预览工具,以便在遇到问题时对文件进行健全检查。

https://gltf-viewer.donmccurdy.com/

还有three.js编辑器可以帮助完整性检查文件..尝试在这里拖动你的json:

https://threejs.org/editor/