0

免责声明:

首先,我想说我对 Web 开发很陌生 - 也许这个问题是由于缺乏基础知识造成的,因此我将不胜感激任何有用的建议。

问题:

我正在尝试在我的网络应用程序上加载 gltf 格式的 3D 数据,但是数据是动态的 -> 在使用网站时可能会发生变化。由于我想避免在每次更改之间创建一个新文件,我宁愿从 JSON 字符串上传 gltf 数据。这可以通过三个库本身来实现:

    let loader = new THREE.GLTFLoader();
    loader.parse(JSON.stringify(jsonGltf),'' ,(gltf) => {
        model = gltf.scene;scene.add(model);
    }, true);

但是,我想坚持使用 react-three-fiber + drei,因为它易于与 React 一起使用。不幸的是,我在示例或其他人的代码中找不到解决方案。

可以在这里找到可编辑的沙箱:

https://codesandbox.io/s/priceless-knuth-cb1mo?file=/src/App.js

字符串数据存储在 const surfGltgData

4

1 回答 1

0

这很简单,因为 GLTFLoader 有一个解析函数。只需获取您的数组缓冲区并将其输入加载程序即可。这是一个仍然使用 suspense 的示例,因此您可以在较长的解析时间内获得某种加载屏幕https://codesandbox.io/s/arraybuffer-dof-1sjyd

于 2020-12-06T17:02:43.413 回答