Компрессия ассетов

В «Вердж3Д» файлы сцен могут быть сжаты с помощью высокоэффективного алгоритма сжатия ЛЗМА-2, что позволяет значительно уменьшить размер файлов. В то же время ЛЗМА обеспечивает быструю декомпрессию на стороне браузера. Типичные показатели сжатия, наблюдаемые для сцен «Вердж3Д», составляют: 20x для файлов .gltf и 6x для файлов .bin.

Когда нужно использовать компрессию

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

Сравнение размеров файлов: необработанный файл, файл сжатый с помощью ГЗИП, файл сжатый с помощью ЛЗМА

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

«Вердж3Д» поддерживает загрузку файлов сцен, сжатых в формате .xz, который включает алгоритм сжатия ЛЗМА. Чтобы включить автоматическое создание файлов .xz при экспорте, достаточно включить соответствующую опцию в настройках экспорта.

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

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

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

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

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

Проверка файлов

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

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

Консоль браузера обычно открывается клавишей F12 (Хром, Файрфокс в Виндоус, Линукс). На Mac используйте меню View > Developer > JavaScript Console (Option-Cmd-J) в Хром или меню Develop > Show Error Console (Option-Cmd-C) в Сафари.

Code-Based приложения

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

Измените: var url = 'my_awesome_app.gltf'; на: var url = 'my_awesome_app.gltf.xz'; в файле your_awesome_app.js.

То же самое относится к файлам .glb и .glb.xz, если они используются вместо .gltf/.bin.

Архиваторы

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

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

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

«Виндоус»

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. Его двоичные файлы для Виндоус доступны здесь в разделе Pre-built binaries.

Простое использование: xz.exe -k -f -6 scene.gltf xz.exe -k -f -6 scene.bin

«Линукс»

1) Порт командной строки 7-Zip может быть доступен из коробки или из официальных репозиториев в виде пакета с именем p7zip.

Использование аналогично использованию в Виндоус: 7z a -m0=LZMA2:d23 scene.gltf.xz scene.gltf 7z a -m0=LZMA2:d23 scene.bin.xz scene.bin

2) XZ Utils также доступен из коробки или из официальных репозиториев в большинстве дистрибутивов «Линукса».

Использование аналогично использованию в Виндоус: xz -k -f -6 scene.gltf xz -k -f -6 scene.bin

«МакОС»

1) Порт командной строки 7-Zip может быть установлен через Homebrew как пакет с именем p7zip: $ brew update $ brew install p7zip Использование такое же, как и в «Линуксе».

2) Бинарные сборки XZ Utils доступны для «МакОС» 10.5+ здесь в разделе Pre-built binaries. Использование такое же, как и в «Линуксе».

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

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