javascript - 将本地 glTF 文件加载到 Javascript 内存中

标签 javascript three.js capacitor gltf

我正在使用 Three.js 和 Capacitor 创建 native iOS 和 Android 应用程序。我有一些 GLTF 模型,我想从某种与代码捆绑在一起并交付给用户的 Assets 文件夹中加载,但我不知道如何去做。

This有关 GLTF Loader 的 load 函数的文档,需要某种 url。 Parse但是,它接受“要解析的 glTF Assets ,作为 ArrayBuffer”。如何将此 glTF 文件加载到内存中以及这样做的最佳实践是什么?我尝试 import * as Model from './models/myModel.gltf' 但收到 Cannot find module 错误。

最佳答案

这是我加载 gltf 文件的方法,我使用 reader 加载场景中的任何文件,然后使用 loader.parse 进行解析。 但如果您想要示例模型文件夹,我认为您不需要阅读器方法和解析器。只需使用加载 GLTF 基本方法并将样本存储在数组或对象中。 希望对您有所帮助。

loadGltf(file, filename) {
        reader.onload = readerEvent => {
            const contents = readerEvent.target.result;
            const loader = new THREE.GLTFLoader()
            try {
                loader.parse(contents, '', function (gltf) {
                    gltf.scene.traverse(function(child) {
                        if (child.isMesh) {
                            child.castShadow = true;
                            child.receiveShadow = true;
                        }
                    });
                    currentModel = gltf.scene;
                    scene.add(gltf.scene);
                });
            }
            catch(error) {
                alert("Your file " + Load.filename + " was not parsed correctly." + "\n\n" + "ERROR MESSAGE : " + error.message);
            }
        }
        reader.readAsArrayBuffer(file);
    }

关于javascript - 将本地 glTF 文件加载到 Javascript 内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61263287/

相关文章:

javascript - 无效的 Unicode 转义\。使用命名捕获组时

three.js - 三个js : why is wireframe thickness not adjusting for me?

angular - Ionic Capacitor Camera,生成完整质量图像并在不生成 Base64 和 DataUri 的情况下显示它

javascript - 为从数组加载的数据指定 id 标签

javascript - 创建一个带有类似于 MetaLabs 页面上的过渡的 slider ? (使用 jQuery)

javascript - 三个js : make custom shader match the standard rendering

javascript - 将OBJ文件加载到Three.js中的过程

ionic-framework - RevenueCat - Ionic React - CocoaPods 找不到 pod "PurchasesHybridCommon": 的兼容版本

angular - 将电容器相机结果转换为 Blob

javascript - 在 node.js 中使用 partials 和 express