资产压缩
在Verge3D中,可通过LZMA2算法高效压缩场景有效降低文件大小。同时,LZMA2提供了在浏览器端快速解压的解决方案。在Verge3D场景中的典型压缩率为:.gltf 文件20倍,.bin 文件6倍。
何时启用压缩
在以下情形中特别推荐使用资产压缩:
- .gltf/.bin或.glb场景文件相对较大, 压缩后文件大小减小显著;
- 预期的网络连接速度非常缓慢;
- 标准服务器端的GZIP选项压缩未启用或效果不明显, 或者您甚至无权访问服务器来为Verge3D场景文件设置GZIP压缩。
导出压缩文件
Verge3D支持加载以 .xz 文件格式压缩的场景文件,其中包含LZMA2压缩算法。要在导出时自动创建 .xz 文件,只需在导出设置中打开相应的选项。
使用压缩文件
压缩过的 .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),在线寻求帮助。