Verge3D资产压缩 - Soft8Soft
Description: Verge3D支持加载的资产了解如何在Verge3D中启用资产压缩功能。

# 资产压缩

在Verge3D中，可通过LZMA2算法高效压缩场景有效降低文件大小。同时，LZMA2提供了在浏览器端快速解压的解决方案。在Verge3D场景中的典型压缩率为：.gltf 文件20倍，.bin 文件6倍。

- 何时启用压缩
- 导出压缩文件
- 使用压缩文件
- 检查文件
- 基于代码或基于Verge3D播放器的应用
- 压缩工具
  - Windows
  - Linux
  - macOS

#

## 何时启用压缩

在以下情形中特别推荐使用资产压缩：

- .gltf/.bin或.glb场景文件相对较大， 压缩后文件大小减小显著；
- 预期的网络连接速度非常缓慢；
- 标准服务器端的GZIP选项压缩未启用或效果不明显， 或者您甚至无权访问服务器来为Verge3D场景文件设置GZIP压缩。

原始文件、GZIP压缩文件和LZMA2压缩文件的大小比较

#

## 导出压缩文件

Verge3D支持加载以 .xz 文件格式压缩的场景文件，其中包含LZMA2压缩算法。要在导出时自动创建 .xz 文件，只需在导出设置中打开相应的选项。

Blender
3ds Max
Maya

#

## 使用压缩文件

压缩过的 .xz 文件（例如， my_awesome_app.gltf.xz 和 my_awesome_app.bin.xz ）会保存在原始文件目录下。下一步就只需在应用中启用加载它们了。在场景中启用加载这些压缩文件，您需要打开拼图…

...并切换到 init 标签：

如果工作区中还没有 configure application(配置应用) 拼图，把它从 初始化 | Initialization 类目中拖拽出来，并且启用其上的 compressed assets(压缩资产) 复选框：

最后，点击 Save 按钮即可。搞定！

#

## 检查文件

若要确认应用现在实际加载的是否为压缩资产，请（从应用管理器或部署应用的网站）运行应用，打开浏览器控制台并切换到 网络 选项卡。打开 浏览器控制台 并切换到 网络 标签。

重新加载应用以便控制台从头开始显示文件。在列表中找到场景文件——如果一切正常，它们应该以 .xz 结尾。

或者，您可以使用 性能概况(performance profile) 功能检查是否启用了压缩资产。

#

## 基于代码或基于Verge3D播放器的应用

如果您不想使用拼图进行设置，请按照以下步骤为应用启用资产压缩。

对 Code-Based(基于代码) 的应用，只需修改文件 your_awesome_app.js `var url = 'my_awesome_app.gltf';` 为： `var url = 'my_awesome_app.gltf.xz';` 即可。

对于在URL中指定了 .gltf 文件的基于Verge3D播放器的应用，如下所示： `https://cdn.soft8soft.com/demo/player/player.html?load=../applications/ring/ring.gltf` 您只需将其替换为压缩的 .gltf.xz 文件的路径： `https://cdn.soft8soft.com/demo/player/player.html?load=../applications/ring/ring.gltf.xz`

同样，请将 .glb 替换为 .glb.xz ，如果他们没有使用 .gltf/.bin 格式。

#

## 压缩工具

作为替代，您可以使用压缩解压工具（如 7-Zip , XZ Utils 等）来创建 .xz 文件。

对于设计制作大型项目的团队来说，使用外部工具进行压缩会更节省时间。您可以编写一些批处理脚本，来自动执行压缩资产操作。

出于优化目的，Verge3D对.xz解压缩设置了一些限制， 因此并非每个.xz文件都可以加载，也不支持tar.xz文件。 考虑到这一点，建议使用如下描述的设置。

#

### Windows

1) 使用常用的 7-Zip 工具创建.xz文件时：

在您要压缩的文件上点击右键，选择"7-Zip" -> "添加到压缩包..." —— 这将打开对应的配置对话框：

压缩设置应如下所示：

- 压缩格式： xz
- 压缩等级： 任何(标准压缩, 最大压缩和极限压缩效果最好)
- 压缩方法：LZMA2 (必须使用此选项)
- 字典大小： 最高到8MB， 越高越好（引擎不支持超过8 Mb的字典）

其余选项可以保留默认。

此外，您也可以使用命令行版的 7-Zip ： `7z.exe a -m0=LZMA2:d23 scene.gltf.xz scene.gltf 7z.exe a -m0=LZMA2:d23 scene.bin.xz scene.bin`

2) 或者，您也可以使用一个名为 XZ Utils 的特殊命令行工具。 它的Windows安装包可以在 这里 的 Pre-built binaries 部分找到。

使用方法很简单： `xz.exe -k -f -6 scene.gltf xz.exe -k -f -6 scene.bin`

#

### Linux

1) 7-Zip 的官方存储库中 有一个开箱即用的命令行工具包 p7zip ：

其用法与Windows中的类似： `7z a -m0=LZMA2:d23 scene.gltf.xz scene.gltf 7z a -m0=LZMA2:d23 scene.bin.xz scene.bin`

2) 大多数Linux发行版都可以在 XZ Utils 的官方存储库中找到开箱即用的命令行工具包。

其用法与Windows中的类似： `xz -k -f -6 scene.gltf xz -k -f -6 scene.bin`

#

### macOS

1) 7-Zip 的命令行工具包可通过 Homebrew 安装， 名为 p7zip ： `$ brew update $ brew install p7zip` 用法与其在Linux中类似：

2) XZ Utils 二进制文件可在macOS 10.5+系统上运行， 请参见其 这里 的 Pre-built binaries ，其使用方法与在Linux类似。

## 遇到问题？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。