【问题标题】:Inability to load objects exported from Blender into three.js?无法将从 Blender 导出的对象加载到 three.js 中?
【发布时间】:2018-05-01 21:28:08
【问题描述】:

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

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

这是调用.json文件的sn-p代码:

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

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

【问题讨论】:

  • 所以,这次是 r75。比 r71 好多了 :) 虽然最新版本是 r88。
  • 最好先尝试将模型导入threejs editor,以确保正确导出。在这种情况下它可以工作,但请注意它偏离了中心。
  • 有帮助吗?
  • ... 我不敢相信我还没有使用最新版本。叹。由于您提醒使用控制台日志,我还意识到,它失败的原因是由于本地文件的跨域请求问题......我将不得不找到一个解决方法,但分心了另一个项目!
  • @AmandaHarvey 不客气)

标签: javascript json 3d three.js blender


【解决方案1】:

试试这个:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-11-09
    • 2017-08-24
    • 2023-03-20
    • 2012-04-04
    • 2015-03-28
    • 2018-09-09
    • 2017-09-29
    • 2015-03-27
    • 2016-03-04
    相关资源
    最近更新 更多