首页 > 解决方案 > Three.js 从输入文件本地加载 FBX 和 Materials

问题描述

从几天开始,我试图从输入文件本地加载一个带有材料的 .fbx 文件,但没有成功。我发现此代码适用于 collada 文件,我已将其更改为适用于 .fbx 但没有...

$("#campoFile3dNascosto").change(function (e) {
    var files = e.currentTarget.files;
    var dae_path;

    var extraFiles = {}, file;
    for (var i = 0; i < files.length; i++) {
        file = files[i];
        extraFiles[file.name] = file;

        //Filename ends in .dae/.DAE
        if (files[i].name.match(/\w*.dae\b/i)) {
            dae_path = files[i].name;
        }
    }

    const manager = new THREE.LoadingManager();
    manager.setURLModifier(function (url, path) {

        url = url.split('/');
        url = url[url.length - 1];

        if (extraFiles[url] !== undefined) {

            var blobURL = URL.createObjectURL(extraFiles[url]);
            console.log("blob: "+blobURL); //Blob location created from files selected from file input
            return blobURL;

        }
        return url;
    });


    var loader = new THREE.FBXLoader(manager);
    loader.load(dae_path, function (object) {
       object.traverse(function (child) {
            if (child.isMesh) {
                child.castShadow = true;
                child.receiveShadow = true;
            }
        });
    });

});

我怎样才能做到这一点?

标签: three.js

解决方案


推荐阅读