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

Posted

技术标签:

【中文标题】无法将从 Blender 导出的对象加载到 three.js 中?【英文标题】:Inability to load objects exported from Blender into 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 不客气) 【参考方案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);

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

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

【讨论】:

以上是关于无法将从 Blender 导出的对象加载到 three.js 中?的主要内容,如果未能解决你的问题,请参考以下文章

无法将动画从 Blender 导出到 Unity

Blender导出.fbx模型到Unity贴图丢失

检测 Blender 对象中的更改以更有效地导出脚本

如何从Blender导出fbx纹理以用于Monogame

SCNView 导出的 Collada (.dae) 文件看起来不同,无法导入到 Blender

如何从 Blender 导出到 unity3d