Представлен быстрый упаковщик текстур ETC2

1 год ago admin 0

Инженеры из компаний Google и Blue Shift опубликовали открытую реализацию упаковщика текстур с использованием алгоритма сжатия ETC2 (Ericsson Texture Compression), обеспечивающего высокую эффективность сжатия при сохранении качества исходного изображения. Формат ETC2 включён в стандарт OpenGL ES 3 и не требует выплаты отчислений за использование запатентованных технологий. Код распространяется под лицензией Apache 2.0.

Распространяется как инструментарий для сжатия текстур в командной строке, так и библиотека для применения в сторонних проектах. Основное внимание при разработке уделено скорости кодирования, что позволяет заметно сократить время компиляции игровых приложений, поставляемых с большим набором ресурсов, а также уменьшить размер итогового пакета. Например, инструментарий может помочь сократить размер приложений для устройств виртуальной реальности, которые требуют наличия значительно большего объёма высококачественных текстур.

Для того, чтобы ощутить насколько назрела необходимость появления быстрого упаковщика можно привести следующие сведения: наиболее популярный упаковщик Mali GPU Texture Compression tool в среднем тратит около 640 секунд (10 минут) на одну текстуру. В типичной игры на базе движка Unity поставляется от 500 до 1500 текстур, т.е. на упаковку всех текстур уходит от 3 до 12 дней. В ситуации приложений для работы с виртуальной реальностью объём текстур и время на их упаковку увеличивается в 2-4 раза.

Новый упаковщик тратит на сжатие текстуры в среднем 10 секунд, т.е. работает в 64 быстрее упаковщика Mali. Подобного ускорения удалось добиться благодаря тонким настройкам режимов работы, многопоточной архитектуре и реализации упорядоченного поиска блоков с учётом их типов (ETC2 разбивает изображение на блоки 4×4, каждый блок может быть 10 типов, что для картинки 1024×1024 требует выбора оптимального варианта из 10⁶⁵⁵³⁶ комбинаций).

Представлен быстрый упаковщик текстур ETC2


Source: pirates.in.ua