Текстурная компрессия

«Вердж3Д» позволяет использовать текстуры, сжатые с помощью высокоэффективного алгоритма КТХ-2/БазисУ, что существенно снижает потребление видеопамяти и ускоряет рендеринг приложений.

Сравнение тестовой модели использующей текстуры в разных форматах (изображение от консорциума «Кронос»).

Включение текстурной компрессии

Чтобы включить автоматическую конверсию всех текстур при экспорте, активируйте соответствующую опцию в настройках экспорта:

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

Чтобы проверить, что приложение загружает текстуры с компрессией, запустите его (из диспетчера приложений или сайта где оно развёрнуто). Далее откройте консоль браузера и переключитесь на вкладку Network.

Перезагрузите приложение, чтобы консоль начала показывать загрузку файлов с самого начала. Найдите в списке ваши текстуры — если всё нормально он будут иметь расширение .ktx2.

Другой способ проверки компрессии — посмотреть в профиле производительности.

Настройки компрессии

Вы можете переключить используемый алгоритм компрессии для каждой текстуры, для чего предусмотрена соответствующая настройка:

Auto
Выбрать алгоритм автоматически. В данный момент эта опция просто включает UASTC.
UASTC
Самый совершенный алгоритм, обеспечивающий максимальное качество. Он подходит для любых текстур включая карты нормалей, ОРМ-карты и др.
ETC1S
Предлагает максимальную степень компрессии и генерирует файлы минимального размера. Тем не менее, он может вызывать артефакты компрессии, поэтому рекомендуется только для текстур с невысокой контрастностью (трава, дерево, кирпичи и т.д.).
Disable
Отключить текстурную компрессию для данной текстуры.

Специальный случай — ХДР текстуры

В силу своих особенностей, компрессия не работает для ХДР-изображений. Вместо этого мы используем алгоритм ЛЗМА для сжатия текстур без потерь (аналогичный метод мы используем для компрессии ГЛТФ-файлов). Использование ЛЗМА уменьшает размер файлов текстур в 4-6 раз, однако это никак не сказывается на количестве потребляемой видеопамяти. Если вы не хотите использовать такой вид сжатия, переключите настройку алгоритма в Disabled.

Ограничения

И хотя в целом мы рекомендуем включать компрессию для всех сцен, в ряде случаев вам следует иметь в виду некоторые ограничения, которые связаны с использованием этой функции.

Компрессия увеличивает размер загружаемых данных

Как заявлено в начале этого раздела, компрессия текстур существенно сокращает количество видеопамяти требуемое вашим приложениям. Однако это не всегда справедливо для файлов текстур, загружаемых по сети. При использовании алгоритма компрессии UASTC (или Auto), текстуры могут стать значительно больше чем исходные изображения. Если вам важнее именно скорость загрузки (или трафик), отключите компрессию полностью, либо переключитесь на более продвинутый алгоритм ETC1S.

Начиная с «Вердж3Д» версии 4.2, мы реализовали дополнительную защиту, чтобы размер текстур не увеличивался слишком сильно. Если сжатое изображение становится больше чем в 3 раза больше оригинального, экспортер автоматически отключает компрессию для данного изображения.

Замедление экспорта

Компрессия требует времени, что может замедлить экспорт. Чтобы ускорить процесс создания приложения, включайте компрессию только в самом конце.

Работает только для JPEG и PNG изображений

Компрессия работает только с JPEG/PNG текстурами. Другие форматы, такие как WebP, BMP и др. не поддерживаются.

Не поддерживается для размеров текстур не являющихся степенью двойки

Если экспортер установит, что размеры текстуры не являются степенью двойки (мы не рекомендуем создавать такие текстуры даже если компрессия не нужна), компрессии не произойдёт и в сцене окажется оригинальное изображение. В консоли пакета моделирования будет выведено соответствующее уведомление.

Не поддерживается для PNG текстур со встроенным ICC-профилем

PNG изображения со встроенным цветовым профилем (ICC или iCCP) не поддерживаются. Если экспортер обнаружит такой профиль, он будет удалён из изображения перед компрессией. Данная операция может исказить цвета текстуры, особенно если используется нестандартный цветовой профиль (не sRGB).

Если удаление профиля не приемлемо, откажитесь от компрессии или примените этот профиль к изображению в каком-нибудь инструменте редактирования («Фотошоп», «ГИМП» и др.).

Не работает с режимом дополненной реальностью на устройствах «Ай ОС»

Отключите компрессию, если вам требуется использовать формат ЮСДЗ для показа в режиме дополненной реальности на устройствах «Ай ОС». Другой способ — использовать две сцены с компрессией и без, либо статическая загрузка ЮСДЗ-моделей сделанных в каком-нибудь пакете моделирования или конвертере. Смотрите раздел про дополненную реальность и ЮСДЗ для получения дополнительной информации.

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

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