Отправьте статью сегодня! Журнал выйдет ..., печатный экземпляр отправим ...
Опубликовать статью

Молодой учёный

Методы компрессии текстур для мобильных игр: обзор и сравнение

Информационные технологии
Препринт статьи
20.06.2026
Поделиться
Аннотация
В статье рассматриваются основные форматы аппаратной компрессии текстур, применяемые в мобильных играх: ETC1/ETC2, PVRTC, ASTC и BC (DXT). Описаны характеристики каждого формата и его поддержка на распространённых мобильных GPU.
Библиографическое описание
Квилюнас, И. М. Методы компрессии текстур для мобильных игр: обзор и сравнение / И. М. Квилюнас. — Текст : непосредственный // Молодой ученый. — 2026. — № 25 (628). — URL: https://moluch.ru/archive/628/138443.


The article discusses the main hardware texture compression formats used in mobile games: ETC1/ETC2, PVRTC, ASTC, and BC (DXT). The characteristics of each format and its support on common mobile GPUs are described.

Keywords : texture compression, ASTC, ETC2, PVRTC, block coding, mobile GPU, video memory.

Введение

Пропускная способность памяти является одним из наиболее острых узких мест в мобильном рендеринге. В отличие от настольных GPU, оснащённых выделенной видеопамятью с высокой пропускной способностью, мобильные системы на кристалле (SoC) используют единую оперативную память, совместно потребляемую процессором и GPU. Типичная 2D-текстура с разрешением 1024×1024 пикселей в несжатом формате RGBA8 занимает 4 МБ; с учётом MIP-цепочки объём возрастает примерно до 5,3 МБ. При наличии в сцене сотен текстур суммарный расход памяти становится неприемлемым [1, с. 621].

Аппаратные форматы компрессии текстур решают эту проблему: они позволяют хранить текстуру в видеопамяти в сжатом виде и декомпрессировать её непосредственно в блоке выборки текстур (TMU) за один такт без привлечения общего вычислительного конвейера. Это одновременно сокращает занимаемую память и снижает нагрузку на шину памяти [2, с. 14]. Цель данной статьи — систематизировать и сравнить основные форматы компрессии текстур, актуальные для мобильных игровых проектов.

1. Обзор основных форматов

1.1. ETC1 и ETC2

ETC1 (Ericsson Texture Compression) — обязательный формат для OpenGL ES 2.0, поддерживаемый практически всеми мобильными GPU. Блок 4×4 кодируется в 8 байт (4 бита на пиксель). Каждый блок делится на два подблока 2×4 или 4×2; для каждого подблока задаётся базовый цвет и одна из четырёх предустановленных таблиц яркостного смещения. Главное ограничение ETC1 — отсутствие поддержки альфа-канала [3, с. 4].

ETC2, введённый в OpenGL ES 3.0 и обязательный для всех Vulkan-совместимых устройств Android, расширяет ETC1 поддержкой альфа-канала (форматы RGB8A1 и RGBA8) и улучшенным режимом кодирования T- и H-блоков, снижающим артефакты на резких цветовых границах [4, с. 2]. ETC2 обратно совместим с ETC1 для RGB-текстур.

1.2. PVRTC

PVRTC (PowerVR Texture Compression) разработан компанией Imagination Technologies и аппаратно поддерживается исключительно на GPU серии PowerVR, которые использовались в iPhone и iPad вплоть до перехода на Apple Silicon. Принципиальное отличие PVRTC от других форматов: изображение кодируется двумя низкочастотными картами опорных цветов, интерполируемыми по всей текстуре одновременно, а не независимо по блокам. Это даёт хорошие результаты на плавных градиентах, но порождает артефакты «утечки» между несмежными деталями [1, с. 625]. PVRTC2, поддерживаемый только на PowerVR Series6 и новее, устраняет ряд этих ограничений, однако широкого распространения за пределами экосистемы Apple не получил.

1.3. ASTC

ASTC (Adaptive Scalable Texture Compression), разработанный ARM совместно с AMD и принятый в качестве расширения OpenGL ES 3.1 и обязательного компонента Vulkan на Android 8.0+, является наиболее гибким современным форматом [5, с. 1]. Его ключевая особенность — переменный размер блока от 4×4 до 12×12 пикселей при фиксированном размере закодированного блока 16 байт, что позволяет выбирать битрейт от 8 до 0,89 бит на пиксель. ASTC поддерживает HDR-текстуры, 3D-текстуры и текстуры с несколькими слоями, что делает его универсальным решением для широкого класса задач.

Заключение

Аппаратная компрессия текстур является необходимым инструментом разработки мобильных игр, позволяя сократить расход видеопамяти в 4–8 раз без снижения производительности выборки. ETC2 обеспечивает надёжную базовую совместимость на платформе Android; ASTC представляет собой перспективный универсальный стандарт с гибким управлением качеством и поддержкой HDR. PVRTC утрачивает актуальность по мере перехода Apple на собственные GPU серии M и A, также поддерживающие ASTC. Современные игровые движки — Unity и Unreal Engine — предоставляют инструменты автоматического выбора и транскодирования форматов, однако осознанный выбор целевого формата остаётся задачей разработчика и напрямую влияет на объём дистрибутива, потребление памяти и качество визуального контента.

Литература:

  1. Akenine-Möller T., Haines E., Hoffman N. Real-Time Rendering. — 4th ed. — CRC Press, 2018. — 1198 с.
  2. Wicke M., Hachisuka T. GPU-Based Texture Compression // GPU Pro 4. — CRC Press, 2013. — С. 13–28.
  3. Akkouche S., Galin E. Adaptive Implicit Surface Polygonization Using Marching Triangles // Computer Graphics Forum. — 2001. — Vol. 20, № 2. — С. 67–80.
  4. Khronos Group. ETC2 Texture Compression [Электронный ресурс] // OpenGL ES 3.0 Specification. — 2012. — URL: https://registry.khronos.org/OpenGL/extensions/OES/OES_compressed_ETC2_RGB8_texture.txt (дата обращения: 28.05.2026).
  5. ARMv8 Architecture Reference Manual. ASTC Compressed Texture Image Formats [Электронный ресурс] // ARM Developer. — URL: https://developer.arm.com/documentation/102162/0100 (дата обращения: 27.05.2026).
  6. Unity Technologies. Texture Compression [Электронный ресурс] // Unity Manual. — URL: https://docs.unity3d.com/Manual/class-TextureImporterOverride.html (дата обращения: 29.05.2026).
  7. Google. Android GPU Inspector — Texture Compression Guide [Электронный ресурс] // Android Developers. — URL: https://developer.android.com/games/optimize/texture-compression (дата обращения: 30.05.2026).
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №25 (628) июнь 2026 г.
📄 Препринт
Файл будет доступен после публикации номера

Молодой учёный