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

标签 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);
    }
}

如果任何人都可以发现问题,或者对问题可能是什么有建议,我将非常感谢您的帮助!

最佳答案

试试这个:

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);

看起来模型的位置距离相机的视野很远。

最后,您的项目是只读的,因此其他人不可能更改其中的某些内容。

关于javascript - 无法将从 Blender 导出的对象加载到 Three.js 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47361898/

相关文章:

c# - 将具有一对多关系的 .Net 核心实体映射到 Angular 2 接口(interface)

python - 如何将 3D 模型的 .obj 格式转换为 .json 格式?

javascript - AngularJS数据结构: Client side or API?

javascript - 如何在 JSON.stringify 中保留数字字段

javascript - 将一个 html (bootstrap) 表的数据附加到另一个 bootstrap 表

javascript - 没有参数的条件语句

c++ - 如何在QCustom3DLabel上重置文本?

javafx - 在javaFX中围绕对象旋转透视相机

math - 如何根据共享顶点的多个三角形计算法向量?

javascript - 是否可以删除我的代码中的 Ul 的子元素?