没有在three.js中使用OBJ + MTL加载器加载纹理

时间:2017-06-18 07:24:44

标签: javascript three.js

我有问题。我写了这个函数来加载一个obj和mtl模型 (摘自:https://threejs.org/examples/#webgl_loader_obj_mtl):

var mtlLoader = new THREE.MTLLoader();

//mtlLoader.setTexturePath(path)
mtlLoader.setPath(path);

mtlLoader.load(material, function( materials ) {

    materials.preload();

    var objLoader = new THREE.OBJLoader();
    objLoader.setMaterials(materials);
    objLoader.setPath(path);

    objLoader.load(model, function ( mesh ) {

        mesh.position.set(x, y, z);
        mesh.scale.set(s, s, s);
        mesh.rotation.y = Math.PI;
        mesh.castShadow = false;
        mesh.receiveShadow = true;

        scene.add(mesh);

        if(handler) {

            handler(mesh);
        }

    }, function(e){}, function(e){} );
});

其中material是file.mtl,model是file.obj。它适用于此模型:https://free3d.com/3d-model/hk416-with-animation-37927.html但它不适用于另一个obj + mtl。纹理未加载,我只看到白色模型。为什么?

我使用three.js r85。

谢谢!

0 个答案:

没有答案