用three.js加载带mtl文件的obj模型,使用下面的方法,为什么不能加载贴图文件呢?

THREE.Loader.Handlers.add( /.dds$/i, new THREE.DDSLoader() );

    var mtlLoader = new THREE.MTLLoader();
    mtlLoader.setBaseUrl( mtl_base_path );
    mtlLoader.setPath( mtl_base_path );
    mtlLoader.load( mtl_name, function( materials ) {
        materials.preload();

        // model
        var objLoader = new THREE.OBJLoader();
        objLoader.setMaterials( materials );
        objLoader.setPath(mtl_base_path);
        objLoader.load( obj_mtl_name, function ( object ) {
            object.position.y = - 95;
            scene.add( object );
            target_obj = object;

        }, onProgress, onError );

    });
阅读 12.8k
2 个回答

你需要重新加载图片,代码如下:

object.traverse( function (child) {
                    if ( child instanceof THREE.Mesh ) {
                        THREE.ImageUtils.crossOrigin = "";
                        child.material.map = THREE.ImageUtils.loadTexture('http://localhost:4040/jpg');
                        child.material.needsUpdate = true;
                    }
                });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进