资产压缩

在Verge3D中,可以使用高效的LZMA2压缩算法压缩场景文件,从而允许显著减小文件的大小。同时,LZMA2在浏览器端提供快速解压缩。对于Verge3D场景,观察到的典型压缩率为:.gltf文件为20x,.bin文件为6x。

资产压缩 - 图1

样本文件的大小比较:raw vs GZIP-compressed vs LZMA2-compressed

导出压缩文件

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

3ds Max:

资产压缩 - 图2

Blender:

资产压缩 - 图3

加载.xz文件

压缩的.xz文件(例如,my_awesome_app.gltf.xz和my_awesome_app.bin.xz)会出现在原始文件旁边。剩下的就是在您的应用中启用它们。为此,请转到拼图并切换到init选项卡:

资产压缩 - 图4

从init类别中拖出Initialization拼图(如果它不在工作区中),并勾选其上的compressed assets复选框:

资产压缩 - 图5

最后,点击保存,就这样!

检查文件

要确保您的应用程序现在加载的是压缩资产,请运行您的应用程序(从App Manager或部署它的网站)。打开浏览器控制台并切换到“network”选项卡。

资产压缩 - 图6

重新加载您的应用程序,以便控制台从头开始显示文件。在列表中查找场景文件 – 如果一切正常,则应以.xz结尾。

通常可以使用F12键(Chrome,Windows,Linux上的Firefox)打开浏览器控制台。在Mac上,使用Chrome中的View> Developer> JavaScript Console菜单(Option-Cmd-J),或Safari中的Develop> Show Error Console菜单(Option-Cmd-C)。

自定义应用程序或glTF查看器

对于Custom应用程序,只需在javescript代码中更改

  1. var url = my_awesome_app.gltf’;

为:

  1. var url = my_awesome_app.gltf.xz’;

对于具有URL中指定的场景.gltf文件的基于Player的应用程序,如下所示:

  1. https://cdn.soft8soft.com/demo/player/player.html?load=../applications/ring/ring.gltf

你可以简单地用压缩的.gltf.xz文件的路径替换它:

  1. https://cdn.soft8soft.com/demo/player/player.html?load=../applications/ring/ring.gltf.xz

如果使用.glb和.glb.xz文件而不是.gltf / .bin,则同样适用.glb和.glb.xz文件。

压缩

或者,您可以使用文件压缩程序(如7-Zip,XZ Utils或其他)创建.xz文件。

由于优化目的,.xz解压缩程序的Verge3D实现对压缩文件施加了一些限制,因此不能加载每个.xz文件。.tar.xz文件也不受支持。考虑到这一点,建议使用下面描述的设置。

windows

1)使用流行的7-zip压缩程序创建.xz文件

要压缩文件,您可以右键单击它,然后选择“7-Zip” – >“Add to arcive …” – 这将打开相应的对话框窗口:

资产压缩 - 图7

archivation设置应如下所示:

  • 存档格式:xz
  • 压缩级别:任何(正常,最大和超级给出最佳结果)
  • 压缩方法:LZMA2(唯一可用的选项)
  • 字典大小:最大8 MB – 越多越好(引擎不支持超过8 MB)
    其它选项使用默认。

您也可以使用7-Zip的命令行版本:

  1. 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二进制文件可以在预构建的二进制文件部分中找到。

用法很简单:

  1. xz.exe -k -f -6 scene.gltf
    xz.exe -k -f -6 scene.bin

Linux

1)7-Zip命令行端口可以开箱即用,也可以作为名为p7zip的软件包从官方存储库中获得。用法类似于Windows中的用法:

  1. 7z a -m0=LZMA2:d23 scene.gltf.xz scene.gltf
    7z a -m0=LZMA2:d23 scene.bin.xz scene.bin

2)XZ Utils也可以在大多数Linux发行版中开箱即用或从官方存储库中获得。用法类似于Windows中的用法:

  1. xz -k -f -6 scene.gltf
    xz -k -f -6 scene.bin

macOS

1)7-Zip命令行端口可以通过Homebrew安装为名为p7zip的包:

  1. $ brew update
    $ brew install p7zip

用法类似Linux。

2)XZ Utils二进制文件可用于预构建二进制文件部分中的macOS 10.5+。用法与Linux中的相同。