Формат ASTC: полное руководство по сжатию текстур
ASTC (Адаптивное масштабируемое сжатие текстур) — самый продвинутый и гибкий формат сжатия текстур, доступный на сегодняшний день. Разработанный ARM и принятый в качестве официального стандарта Khronos, ASTC обеспечивает беспрецедентный контроль над качеством и степенью сжатия, что делает его идеальным выбором для современной мобильной и настольной графики.
Что такое АСТК?
ASTC — это формат сжатия текстур на основе блоков с потерями, разработанный для замены старых форматов, таких как ETC, PVRTC и DXT/BCn. Он был специально разработан для обеспечения единого унифицированного формата, который работает на всех платформах и поддерживает широкий спектр компромиссов между качеством и размером.
В отличие от предыдущих форматов с фиксированной степенью сжатия, ASTC позволяет разработчикам выбирать из 14 различных размеров 2D-блоков (от 4×4 до 12×12) и нескольких уровней качества, предлагая детальный контроль над балансом между визуальным качеством и потреблением памяти.
ASTC поддерживает контент LDR (низкий динамический диапазон) и HDR (высокий динамический диапазон), 1–4 цветовых канала, а также 2D- и 3D-текстуры. Эта универсальность делает его подходящим практически для любого типа текстур в современных графических приложениях.
Ключевые особенности ASTC
Гибкие размеры блоков
14 различных размеров 2D-блоков от 4×4 (8 бит на пиксель) до 12×12 (0,89 бит на пиксель), что позволяет точно контролировать степень и качество сжатия.
Регулируемое качество
Несколько уровней качества кодирования (быстрое, среднее, тщательное, исчерпывающее) для баланса времени кодирования и визуальной точности.
Поддержка HDR
Встроенная поддержка текстур расширенного динамического диапазона, необходимая для современных рабочих процессов PBR (физический рендеринг).
Аппаратное обеспечение эффективное
Разработан для эффективной аппаратной распаковки с минимальным энергопотреблением и использованием полосы пропускания памяти.
Объяснение размеров блоков ASTC
Размер блока ASTC определяет степень сжатия и качество. Меньшие блоки сохраняют больше деталей, но обеспечивают меньшее сжатие:
| Размер блока | Биты/пиксели | Качество | Лучший вариант использования |
|---|---|---|---|
| 4x4 | 8.00 | Самый высокий | Детализированные текстуры, карты нормалей |
| 5x5 | 5.12 | Высокий | Качественные цветные текстуры |
| 6x6 | 3.56 | Средне-высокий | Сбалансированное качество/размер (рекомендуется по умолчанию) |
| 8x8 | 2.00 | Середина | Фоновые текстуры, элементы пользовательского интерфейса |
| 12x12 | 0.89 | Ниже | Максимальное сжатие для больших текстур |
Уровни качества кодирования
Кодеры ASTC поддерживают несколько предустановок качества, которые влияют на время кодирования и качество вывода:
Быстрый
~1-2 секундыСамое быстрое кодирование с хорошим качеством. Подходит для быстрой итерации во время разработки.
Середина
~5-10 секундСбалансированное качество и скорость. Рекомендуется для большинства случаев использования и производственных сборок.
Тщательный
~30-60 секундВысококачественное сжатие с более исчерпывающим поиском. Хорошо подходит для героев и финальных сборок.
исчерпывающий
~2–5 минутМаксимальное качество при очень медленном кодировании. Используйте для критически важных активов, где качество имеет первостепенное значение.
Преимущества АСТЦ
Поддержка универсальной платформы
Поддерживается на всех современных мобильных графических процессорах (OpenGL ES 3.2+, Vulkan), заменяя несколько форматов, зависящих от платформы, одним решением.
Непревзойденная гибкость
14 размеров блоков и несколько уровней качества обеспечивают больший контроль, чем любой другой формат сжатия, оптимизируясь для каждого типа текстуры.
Превосходное качество
Усовершенствованные алгоритмы сжатия обеспечивают лучшее качество изображения, чем ETC, PVRTC или DXT при сопоставимых скоростях передачи данных.
Современные возможности
Поддержка HDR, 3D-текстуры и оптимальное кодирование материалов PBR делают ASTC перспективным для современных методов рендеринга.
ASTC против других форматов
Чем ASTC отличается от традиционных форматов сжатия текстур:
против ETC1/ETC2
ETC — это устаревший формат Android с фиксированным сжатием 4:1 (ETC1) или 8:1 (ETC2 RGBA).
Преимущество АСТК: ASTC предлагает лучшее качество при том же битрейте и поддерживает больше степеней сжатия (0,89–8 бит/пиксель против 4–8 бит/пиксель).
против PVRTC
PVRTC — это устаревший формат iOS со сжатием 2 или 4 бита на пиксель.
Преимущество АСТК: ASTC обеспечивает лучшее качество, большую гибкость и позволяет избежать артефактов на границах блоков PVRTC.
против DXT/BCn
DXT/BCn — это стандарт настольных компьютеров с 4–8 битами на пиксель для разных форматов.
Преимущество АСТК: ASTC соответствует качеству BCn или превосходит его, предлагая при этом более низкую скорость передачи данных (до 0,89 бит/с) для мобильных устройств.
Как использовать формат ASTC
Использовать ASTC в ваших проектах очень просто благодаря нашим онлайн-инструментам:
Кодирование в ASTC
- Загрузите исходное изображение (PNG, JPG) — работает с любыми размерами.
- Выберите размер блока в соответствии с вашими требованиями к качеству/размеру (в большинстве случаев рекомендуется 6×6).
- Выберите качество кодирования (среднее для разработки, тщательное/исчерпывающее для производства)
- Загрузите файл .astc и интегрируйте его в свой проект.
Декодирование файлов ASTC
- Загрузите файл .astc, чтобы проверить его содержимое.
- Просмотр распакованной текстуры с информацией о размере блока и формате.
- Экспорт в PNG для редактирования или проверки качества.
Лучшие практики
- Используйте блоки 6×6 в качестве отправной точки (3,56 бит на пиксель) — это обеспечивает превосходный баланс качества и размера для большинства текстур.
- Выбирайте блоки меньшего размера (4×4, 5×5) для текстур, требующих детализации, таких как карты нормалей или текст пользовательского интерфейса.
- Используйте блоки большего размера (8×8, 10×10, 12×12) для фона, скайбоксов или текстур, видимых на расстоянии.
- Тестируйте разные уровни качества: часто достаточно «среднего», используйте «тщательное» или «исчерпывающее» только для героев.
- Рассмотрите возможность использования блоков разных размеров для разных типов текстур в одном приложении, чтобы оптимизировать использование памяти.
- Всегда предварительно просматривайте сжатые текстуры на целевых устройствах — восприятие качества зависит от контента и условий просмотра.
Заключение
ASTC представляет собой вершину технологии сжатия текстур, предлагая беспрецедентную гибкость, качество и поддержку платформ. Его адаптивный характер позволяет разработчикам точно настраивать сжатие для каждого ресурса, оптимизируя баланс между визуальной точностью и потреблением памяти.
Независимо от того, занимаетесь ли вы разработкой для мобильных, настольных или консольных платформ, ASTC предлагает перспективное решение, которое масштабируется от устройств начального уровня до высокопроизводительной графики. Наши онлайн-инструменты ASTC позволяют легко экспериментировать с различными настройками и находить идеальную конфигурацию для нужд вашего проекта.
Дальнейшее чтение и ссылки
Углубитесь в ASTC с помощью этих авторитетных ресурсов:
- Спецификация ASTC (Хронос) - Официальная спецификация формата ASTC и техническая справка
- Оценочный кодек ARM ASTC - Справочная реализация кодировщика и документация от ARM
- Адаптивное масштабируемое сжатие текстур (Википедия) - Комплексный обзор технологии ASTC и ее внедрения
- ASTC: максимальное сжатие текстур - Документация разработчика ARM по передовым практикам ASTC
- Руководство по сжатию Unity ASTC - Практическое руководство по использованию ASTC в игровых движках