Verge3D場景資料壓縮方式
概要
Verge3D通常使用glTF檔案格式載入場景。在這種格式中,場景資料的大部分通常包含在一對.gltf / .bin檔案或單個.glb檔案中(取決於所選的匯出方法)。為了減小應用程式的整體大小,可以壓縮這些檔案,然後由引擎而不是原始檔案載入。
樣本檔案的大小比較:原始檔案 vs GZIP壓縮檔案 vs LZMA2壓縮檔案
Verge3D支援載入以.xz檔案格式壓縮的場景檔案,該格式包含LZMA2壓縮演算法。在Verge3D中使用場景壓縮的優點是:
- LZMA2提供高壓縮級別,可以顯著減小檔案大小
- 與常見的伺服器端GZIP壓縮相比,壓縮級別更高,也需要在伺服器上進行配置
- 在瀏覽器端快速解壓縮
在下列情況下,特別推薦使用LZMA壓縮:
- .gltf / .bin或.glb場景檔案相對較大,因此有必要進行壓縮以減小體積
- 網路連線速度很慢,因此每MB都很重要
- 標準伺服器端GZIP壓縮要麼不受支援要麼不滿意,或者無法訪問伺服器來配置它
建立壓縮檔案
要在匯出時自動建立.xz檔案,您只需在匯出設定中開啟相應的選項即可。
3ds Max:
Blender:
載入xz壓縮檔案
Verge3D應用程式可以使用一對檔案my_scene.gltf / my_scene.bin或單個檔案my_scene.glb來載入場景。在這兩種情況下,您都需要具有相應的xz壓縮檔案,例如:my_scene.gltf.xz / my_scene.bin.xz
您還需要指定壓縮場景檔案的路徑,以便應用程式可以載入它。
對於基於播放器或自定義應用程式,其中包含主.js檔案中指定的.gltf場景檔案的路徑,如下所示:
var URL = '__URL__my_scene.gltf';
或:var
url = 'my_scene.gltf';
您只需將其更改為壓縮檔案的路徑:
var URL = '__URL__my_scene.gltf.xz';
或:var url = 'my_scene.gltf.xz';
對於基於播放器的應用程式,會在URL中指定場景.gltf的檔案,例如:
http
你可以簡單地將其替換為壓縮.gltf.xz檔案的路徑:
http://localhost:8668/player/player.html?load=../applications/my_awesome_app/my_awesome_app.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 ...” - 這將開啟相應的對話方塊視窗:
壓縮設定應如下所示:
- 存檔格式:xz
- 壓縮級別:任何(正常,最大和超級給出最佳結果)
- 壓縮方法:LZMA2(唯一可用的選項)
- 字典大小:最大8 MB - 越多越好(引擎不支援超過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可執行檔案都可以 在這裡的預建的二進位制檔案部分。
用法很簡單:
xz.exe -k -f -6 scene.gltf
xz.exe -k -f -6 scene.bin
Linux系統
1)7-Zip命令列可以在大多數Linux發行版中安裝即用,也可以從官方儲存庫中獲得名為p7zip的軟體包。
用法類似於Windows中的用法:
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中的用法:
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+ 這裡的預建的二進位制檔案部分。用法與Linux中的相同。