Компрессия ассетов
В «Вердж3Д» файлы сцен могут быть сжаты с помощью высокоэффективного алгоритма сжатия ЛЗМА-2, что позволяет значительно уменьшить размер файлов. В то же время ЛЗМА обеспечивает быструю декомпрессию на стороне браузера. Типичные показатели сжатия, наблюдаемые для сцен «Вердж3Д», составляют: 20x для файлов .gltf и 6x для файлов .bin.
- Когда нужно использовать компрессию
- Экспорт сжатых файлов
- Использование сжатых файлов
- Проверка файлов
- Code-Based приложения
- Архиваторы
Когда нужно использовать компрессию
Использование сжатия активов особенно рекомендуется в следующих случаях:
- файлы сцен .gltf/.bin или .glb относительно велики, поэтому эффект от сжатия значителен с точки зрения уменьшения размера;
- вы ожидаете медленного соединения и каждый килобайт на счету;
- стандартное сжатие ГЗИП на стороне сервера не включено или неудовлетворительно, или у вас даже нет доступа к серверу, чтобы настроить ГЗИП для файлов сцен «Вердж3Д».
Экспорт сжатых файлов
«Вердж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" → "Добавить в архив...". Откроется соответствующее диалоговое окно:
Настройки архивации должны выглядеть следующим образом:
- Формат архива: xz
- Уровень сжатия: any (Normal, Maximum и Ultra обеспечивают лучший результат)
- Метод сжатия: LZMA2 (единственная доступная опция)
- Размер словаря: до 8 MB - чем больше, тем лучше (более 8MB не поддерживается движком)
Также вы можете использовать версию 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. Использование такое же, как и в «Линуксе».
Остались вопросы?
Задайте их на нашем форуме!