不能使用.obj和.mtl文件应用Three.js材料

时间:2018-08-10 14:29:34

标签: javascript three.js 3d

我下载了免费的3D模型,并尝试使用three.js进行查看。模型加载良好,但是材料加载不正确。唯一装载的是酒吧后面的酒瓶,没有其他东西应用任何纹理。

Example site showing problem here

这是我在模型中的加载方式:

// load in the bar 3d model
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load( 'bar1/3d-model.mtl', function ( materials ) {

    materials.preload();

    var objLoader2 = new THREE.OBJLoader2();
    objLoader2.setMaterials( materials.materials );
    objLoader2.load( 'bar1/3d-model.obj', function ( event ) {

    scene.add( event.detail.loaderRootNode );

    }, function() {
        // success
    }, function() {
        // error
    });
});

1 个答案:

答案 0 :(得分:1)

如果查看OBJ文件使用的the MTL file,您会发现它没有任何对纹理贴图的引用。纹理贴图通常用以下行引用:

Properties/Items/Targets

如果您的模型不包含它们,则可以使用3D编辑器(如Blender)添加它们。有关更多信息,请查看Texture Maps section of the OBJ file format