【问题标题】:How to load textures from OBJ+MTL files in three.js?如何在three.js中从OBJ+MTL文件加载纹理?
【发布时间】:2013-07-16 18:39:39
【问题描述】:

我有一个导出到 OBJ 和 MTL 的 Maya 文件。我可以成功看到 OBJ 纹理,但我如何才能真正获得纹理呢?我在搅拌机中查看了“three.js”格式,它似乎只有形状,没有纹理。

这个three.js example 似乎可以加载到适合形状的 obj 中,但纹理似乎来自 jpg 图像而不是 mtl:

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

我的问题是,如何为我的模型获取此“uvgrid01.jpg”图像?有什么方法可以将 MTL 转换为仅用于纹理的 .jpg 格式吗?还是有其他方式我应该导出纹理以便能够加载它?

【问题讨论】:

    标签: three.js


    【解决方案1】:

    你可以使用OBJLoader和MTLLoader,见this example(至少三个.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);
    });
    

    【讨论】:

    • 不幸的是,这不再是真的,因为 OBJMTLLoader 已经是来自 THREE.js 的 removed
    • @nachteil 拆分成2个loader,例子已经更新。
    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2020-02-11
    • 2017-06-13
    • 2014-10-03
    相关资源
    最近更新 更多