A-frame 将 zip 包转换为 glb 用于草图工厂模型

Posted

技术标签:

【中文标题】A-frame 将 zip 包转换为 glb 用于草图工厂模型【英文标题】:A-frame convert zip package into glb for sketch fab model 【发布时间】:2021-06-27 17:49:43 【问题描述】:

我最近一直在 A-frame 中进行编码,并且我一直在我的场景中使用 gltf 模型。我一直在使用 tinkercad 模型,因为我不知道如何将 sketchfab.com 模型放入我的代码中。当我从sketchfab.com 下载模型并按gltf 下载时,它给了我一个zip 文件夹。 zip 文件夹内有 2 个文件和一个文件夹。 Scene.glf 和 scene.bin 是文件,textures 是文件夹。我想把这个 zip 文件夹变成一个单独的 glb 或 gltf 文件。我将如何做到这一点?

【问题讨论】:

【参考方案1】:

对于其他人的上下文,Sketchfab 返回类似...

model/scene.gltf model/scene.bin model/textures/diffuse.png model/textures/normal.png

...scene.gltf 文件包含对其他文件的相对引用。 A-Frame 可以加载仅给出 .gltf 引用 as documented 的所有这些文件,只要它们托管在您的项目中类似的文件夹结构下:

<a-gltf-model src="assets/model/scene.gltf"></a-gltf-model>

将整个模型组合成一个独立的(二进制).glb 文件也很常见,这是一种“无损”更改,如果通过正确实现的工具完成,则不应以任何方式影响内容。两个简单的选项是glTF-Pipeline 或glTF-Transform。示例:

npm install --global @gltf-transform/cli

gltf-transform cp model/scene.gltf output.glb

另见https://glb-packer.glitch.me/,但它可能不适用于某些文件。

注意:虽然技术上可以创建一个独立的 .gltf 文件,而不是 .glb,但不要这样做。在 (JSON) .gltf 文件中嵌入二进制资源会增加 20-30% 的文件大小并降低加载速度。 (二进制).glb 格式在这里更有效。

【讨论】:

以上是关于A-frame 将 zip 包转换为 glb 用于草图工厂模型的主要内容,如果未能解决你的问题,请参考以下文章

python 将pip安装的Python包目录转换为可导入的zip文件,以便在Google App Engine上使用。

unzip---解压缩“.zip”压缩包。

最新版 A-Frame 中的旋转天空

前端json数据 转换成zip压缩包下载

用于将 SQL 查询转换为 MongoDB 查询的 PQL 包

用于框架的自定义条组件