无法将从Blender导出的对象加载到three.js中?

时间:2017-11-18 02:34:34

标签: javascript json 3d three.js blender

我一直在玩Blender比我编码的时间长得多,当我得知你可以使用three.js在浏览器中加载和操作混合时,我感到非常兴奋。我查了一个教程,导出了一个简单的icosphere,并插入了我的.json文件。唉,在查看了许多不同的页面和示例后,我仍然无法让它出现在浏览器中,尽管我的代码中找不到任何可见的错误。我用它制作了一个codepen项目(这是我能找到让json文件在线的唯一方法。)

https://codepen.io/redheadedmandy/project/editor/ZjNEQG#0

以下是调用.json文件的代码片段:

function initMesh() {
    function addModelToScene(geometry, materials) {
        var material = new THREE.MeshFaceMaterial(materials);
        model = new THREE.Mesh(geometry, material);
        model.scale.set(1, 1, 1);
        model.position.set(50, 0, 0);
        scene.add(model);

        var loader = new THREE.JSONLoader();
        loader.load("casvusnion.json", addModelToScene);
    }
}

如果有人能发现问题,或者对问题可能有什么建议,我会非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

function initMesh() {

    var loader = new THREE.JSONLoader();
    loader.load("casvusnion.json", addModelToScene);

    function addModelToScene(geometry, materials) {

        var material = new THREE.MeshFaceMaterial(materials);
        model = new THREE.Mesh(geometry, material);
        model.scale.set(1, 1, 1);
        model.position.set(50, 0, 0);
        scene.add(model);

    }

}

并在浏览器的控制台日志中查看警告和错误消息。

另外,你的相机

camera = new THREE.PerspectiveCamera(70, WIDTH / HEIGHT, 1, 10);
camera.position.set(0, 3.5, 5);
camera.lookAt(scene.position);

和你的模特

model.position.set(50, 0, 0);

模特的位置看起来远离相机的视野。

最后,你的项目是只读的,所以其他人不可能在那里改变一些东西。