2017-11-18 165 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); 

它看起來像該模型的位置的方式遠離攝像頭的視野。

最後,你的項目是隻讀的,所以其他人不可能改變那裏的東西。

相關問題