2013-07-18 84 views
10

我有一个导出到OBJ和MTL的Maya文件。我可以成功地看到OBJ纹理,但是我怎样才能真正获得纹理?我看着搅拌机中的“three.js”格式,它看上去只是形状,没有纹理。如何从three.js中的OBJ + MTL文件加载纹理?

three.js example出现在OBJ罚款形状加载,但质地似乎来自一个jpg图像,而不是一个MTL:

loader.load('textures/ash_uvgrid01.jpg', function(image) { 
    texture.image = image; 
    texture.needsUpdate = true; 
}); 

我的问题是,我该如何得到这个“uvgrid01 .jpg“图片为我的模型?有没有办法将MTL转换为此纹理的.jpg格式?还是有其他的方式我应该出口的纹理,以便能够加载它?

回答

12

您可以使用OBJLoader和MTLLoader,如this example看到(至少three.js所R77):

var mtlLoader = new THREE.MTLLoader(); 
mtlLoader.setPath('obj/male02/'); 
mtlLoader.load('male02_dds.mtl', function(materials) { 
    materials.preload(); 
    var objLoader = new THREE.OBJLoader(); 
    objLoader.setMaterials(materials); 
    objLoader.setPath('obj/male02/'); 
    objLoader.load('male02.obj', function(object) { 
    object.position.y = -95; 
    scene.add(object); 
    }, onProgress, onError); 
}); 
+1

不幸的是,这不再是真实的,因为OBJMTLLoader一直[删除](https://开头github.com/mrdoob/three.js/commits/master/examples/js/loaders/OBJMTLLoader.js)来自THREE.js – nachteil

+1

@nachteil它被分成2个装载机,示例已更新。 – approxiblue

+0

谢谢你!寻找合适的装载机几个小时。 –