【问题标题】:Can't render obj using objloader.js无法使用 objloader.js 渲染 obj
【发布时间】:2017-04-25 21:15:38
【问题描述】:

我无法加载我的对象。屏幕是空白的。要加载的代码是:

        var mtlLoader = new THREE.MTLLoader();
        mtlLoader.setBaseUrl('assets/');
        mtlLoader.setPath('assets/');
        mtlLoader.load('Gita.mtl', function (materials) {

            materials.preload();

            materials.materials.default.map.magFilter = THREE.NearestFilter;
            materials.materials.default.map.minFilter = THREE.LinearFilter;

            var objLoader = new THREE.OBJLoader();
            objLoader.setMaterials(materials);
            objLoader.setPath('assets/');
            objLoader.load('Gita.obj', function (object) {

                scene.add(object);

            });

        });

这是我的对象:https://drive.google.com/drive/folders/0B71ivPfsz82mYzVxYU1TZkt5ekk?usp=sharing

希望你能帮助我。 感谢您的关注。

【问题讨论】:

  • 您正在尝试从驱动器加载 tga 纹理,但名称中有空格。尝试将纹理放在您的 mtl 文件所在的位置。
  • 还要确保它是未加载的对象。您可以拥有对象,但没有适当的材质/纹理,甚至没有灯光/法线。

标签: three.js render objloader


【解决方案1】:

这是我加载 Obj 文件的代码。我在我的代码中尝试了你的 Object 并且它有效,也许它也适用于你。

                var manager = new THREE.LoadingManager();
                var loader = new THREE.OBJLoader(manager);     
                var fileloader = new THREE.FileLoader();
                fileloader.load('Gita.obj', function(data){

                    var object = loader.parse(data);
                    object.scale.set(0.5, 0.5, 0.5);
                    scene.add(object);
                },
                    function (xhr) {

                        console.log((xhr.loaded / xhr.total * 100) + '% loaded');
                    },
                      //if download fails
                    function (xhr) {

                        //console.error('An error happened : ' + xhr);
                    }
                );

【讨论】:

    猜你喜欢
    • 2012-09-13
    • 2014-04-06
    • 1970-01-01
    • 2012-05-22
    • 2012-10-30
    • 2020-10-20
    • 2017-09-09
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多