2013-05-10 59 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

相关问题