2013-11-21 222 views
2

我在3ds Max中有一個場景,我想在threejs中導出。問題在於紋理似乎不會出現在三維空間中,並且物體會變形。3DS Max => ThreeJs。導出場景

這是我的工作流(我是新來threejs所以必須有一些錯誤的步驟):

  1. 出口從3ds Max中的obj到+ .mtl(對象是簡單的網格和材料標準的)

  2. 導入Blender 2.66使用io_mesh_threejs將場景轉換爲JavaScript(因爲我無法找到合適的3ds Max轉換器)。

  3. 導出後,我無法在threejs中看到我的場景,但如果我在沒有材質的情況下導出它,那就沒關係。

此外,我發現座標系是不同的,導致不可預知的場景佈局和交互性。

我在想如果您有任何關於如何直接從3ds Max將場景導出到JavaScript的建議?

+1

看看這有助於:http://bkcore.com/blog/3d/webgl-three-js-workflow-tips.html – WestLangley

回答

2

您可以使用A3dsViewer到3ds模型導出到three.js所 並直接預覽結果在瀏覽器中。

+0

對我來說,對象未在呈現我的場景。 –

0

使用「ThreeJSExporter」腳本,實際上,只需複製腳本代碼並在3dsMax(代碼https://github.com/timoxley/threejs/blob/master/utils/exporters/max/ThreeJSExporter.ms)中運行腳本,因爲可以在那裏運行.ms文件,而無需任何安裝或命令行。然後你會得到.js文件(json),手動檢查這個文件以確保避免像數組中的「#」這樣的字符(我花了很多小時找到這個錯誤源),這些值有時會生成腳本重新計算了數據,我通過數字更改了這些值(「#」的出現不必在字符串中改變:-)),然後使用THREE.js的加載器。

下面是代碼:

var loader = new THREE.JSONLoader(); 
loader.load('js/file.js', function (geometry) { 
     var mesh = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial({color: 0x07624a})); 
         mesh.position.x =0; 
         mesh.position.y =0; 
         mesh.position.z =0; 
     scene.add(mesh); 
}); 

這是WebGL的的渲染場景。在之間,我發現建議使用OBJLoader而不是JSONLoader,但是JSONLoader對THREE.js r71更好。

來源爲類似的方法:http://bkcore.com/blog/3d/webgl-three-js-workflow-tips.html