2017-11-18 166 views
1

我一直在使用Blender比我编写代码的时间长得多,当我知道您可以使用three.js加载和操作浏览器中的混合时,我感到很兴奋。我查了一个教程,导出了一个简单的icosphere,并插入我的.json文件。唉,在查看了许多不同的页面和示例之后,尽管我无法在代码中发现任何可见的错误,但仍然无法使其显示在浏览器中。我做了一个codepen项目(这是我能找到的在线json文件的唯一途径)。无法将从Blender导出的对象加载到three.js中?

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

如果任何人能发现问题或有什么问题,可能是一个建议,我将非常感激帮助!

+0

所以,这次是r75。比r71好得多:)虽然最新版本是r88。 – prisoner849

+0

首先尝试将模型导入[threejs编辑器](https://threejs.org/editor/)以确保其正确导出通常是一个好主意。在这种情况下,它可以工作,但请注意它离开中心。 –

+0

它对您有帮助吗? – prisoner849

回答

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

它看起来像该模型的位置的方式远离摄像头的视野。

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

相关问题