Сжатие Ассетов

В Verge3D файлы сцен могут быть сжаты с помощью высокоэффективного алгоритма сжатия LZMA2, что позволяет значительно уменьшить размер файлов. В то же время LZMA2 обеспечивает быструю декомпрессию на стороне браузера. Типичные показатели сжатия, наблюдаемые для сцен Verge3D, составляют: 20x для файлов .gltf и 6x для файлов .bin.

Когда Сжимать Файлы

Использование сжатия активов особенно рекомендуется в следующих случаях:

Сравнение размеров для образца файла: необработанный файл, GZIP-сжатый файл, LZMA2-сжатый файл

Экспорт Сжатых Файлов

Verge3D поддерживает загрузку файлов сцен, сжатых в формате .xz, который включает алгоритм сжатия LZMA2. Чтобы включить автоматическое создание файлов .xz при экспорте, достаточно включить соответствующую опцию в настройках экспорта.

Использование Сжатых Файлов

Сжатые .xz файлы (например, my_awesome_app.gltf.xz и my_awesome_app.bin.xz) должны появиться рядом с оригинальными. Осталось только включить их загрузку в вашем приложении. Для этого перейдите в раздел Пазлы...

...и переключитесь на вкладку init:

Перетащите пазл configure application из категории Initialization, если он еще не присутствует в рабочей области, и включите на нем флажок compressed assets:

Наконец, нажмите кнопку Save. Вот и все!

Проверка Ваших Файлов

Чтобы убедиться, что ваше приложение теперь действительно загружает сжатые активы, запустите ваше приложение (либо из App Manager, либо с веб-сайта, на котором оно развернуто). Откройте консоль браузера и переключитесь на вкладку Сеть.

Перезагрузите приложение, чтобы консоль начала отображать файлы с самого начала. Найдите в списке файлы сцены - если все в порядке, они должны заканчиваться .xz.

Консоль браузера обычно открывается клавишей F12 (Chrome, Firefox в Windows, Linux). На Mac используйте меню View > Developer > JavaScript Console (Option-Cmd-J) в Chrome или меню Develop > Show Error Console (Option-Cmd-C) в Safari.

Code-Based или Player-Based Приложения

Если по каким-то причинам вы не хотите использовать пазлы, выполните следующие шаги, чтобы включить сжатие активов для ваших приложений.

Для Code-Based приложений просто измените var url = 'my_awesome_app.gltf'; на: var url = 'my_awesome_app.gltf.xz'; в файле your_awesome_app.js.

Для Player-based приложений, у которых файл сцены .gltf указан в URL следующим образом: 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.

Архиваторы

В качестве альтернативы можно создавать файлы .xz с помощью таких архивных утилит, как 7-Zip, XZ Utils или других.

Архивирование с помощью внешних инструментов рекомендуется в качестве меры экономии времени для команд, работающих над большими проектами. Возможно, вам потребуется написать несколько пакетных скриптов для автоматизированного архивирования ваших активов.

Реализация Verge3D декомпрессора .xz накладывает некоторые ограничения на сжатые файлы в целях оптимизации, поэтому не каждый файл .xz может быть загружен. Файлы .tar.xz также не поддерживаются. Учитывая это, рекомендуется использовать настройки, описанные ниже.

Windows

1) Для создания файлов .xz можно использовать популярный файловый архиватор 7-Zip.

Чтобы сжать файл, можно щелкнуть его правой кнопкой мыши, а затем выбрать "7-Zip" -> "Добавить в архив...". - это откроется соответствующее диалоговое окно:

Настройки архивации должны выглядеть следующим образом:

Остальные параметры можно оставить по умолчанию.

Также вы можете использовать версию 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) 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+ здесь в разделе Pre-built binaries. Использование такое же, как и в Linux.

Остались вопросы?

Задайте их на нашем форуме!