2013-05-10 57 views
3

我在攪拌器中做了一個簡單的3d模型並將其導出到.obj文件。現在我使用three.js加載它,並且我希望名稱中包含字符串'clickable'的對象在點擊時在Y軸上移動。Three.js加載導出的攪拌器模型

你可以看一下在這裏:http://three.parkz.cz/shop.html

的問題是,從對象的名稱(這是我在攪拌機設置)解析的信息不對應正確的對象。

加載和解析:

var loader = new THREE.OBJMTLLoader(); 
loader.addEventListener('load', function(event) { 
    object = event.content; 
    object.name = 'CustomObjects'; 
    for(var i = 0; i < object.children.length; i++) {  

    //console.log(object.children[i]); 
    var properties = object.children[i].name.split('_'); 
    if(properties[1] == 'clickable') { 
     object.children[i].clickable = true; 
    } else object.children[i].clickable = false; 

    } 
    object.rotation.x = 0.5; 
    object.rotation.y = 0.5;         
    scene.add(object); 
}); 
loader.load('shop.obj', 'shop.mtl'); 

例如,在中心兩個立方體(稱爲「005_kiosek」和「010_kiosek2」)不應該被點擊,但他們!您可以打開控制檯,點擊它後,您可以看到它們錯誤地命名爲'004_clickable'和'009_clickable'!

這裏是我的攪拌機文件:http://three.parkz.cz/shop.blend

是它的問題在JavaScript端或攪拌機出口是錯誤的?

預先感謝您!

馬丁

P.S:有誰知道爲什麼沒有那麼簡單網格呈現良好(綠色和藍色)?

回答

3

綠色和藍色網格不能正確呈現,因爲在當前實現下,obj加載器只接受三角形作爲面。由於這些網格使用多邊形,因此它們不能正確渲染。

至於名稱,我會嘗試驗證我放入攪拌器文件的內容是否正確。所以,當你加載模型時,只需打印名稱和可點擊屬性,看看是否所有的都是正確的,而不是理所當然的。

+0

嗨Gaitat,謝謝你的迴應!我會嘗試驗證攪拌機是否能很好地輸出。你能否建議如何解決渲染問題?我應該使用攪拌器以不同方式對物體進行建模嗎 – 2013-05-11 13:26:57

+0

是的,當您從攪拌機導出時,應該有一個選項來對模型的面進行三角測量。 – gaitat 2013-05-11 13:46:42

+0

渲染問題解決了,現在玩點擊。謝謝!你真的幫助了我。 – 2013-05-11 14:02:09

相關問題