Останнє оновлення: 21 вересня 2026

Формати файлів зображень для розробників ігор: DDS, TGA, PNG та KTX
У розробці ігор текстури становлять найбільший окремий блок як споживання оперативної пам’яті під час виконання, так і розмір встановлюваного збірки. Незалежно від того, чи створюєте ви інді‑стилізований платформер, чи прагнете до фотореалізму в AAA відкритому світі RPG, спосіб зберігання, обробки та завантаження даних текстур безпосередньо визначає ваші частоти кадрів, час завантаження та сумісність з обладнанням.
Поширена помилка новачків — ставити текстури гри як веб‑графіку, припускаючи, що легкий файл на диску забезпечує легку продуктивність у вашому ігровому движку. У світі GPU реальність під час виконання зовсім інша.
У цьому глибокому огляді ми розберемо чотири найважливіші формати файлів текстур і зображень у сучасній розробці ігор: DDS, TGA, PNG та KTX. Ми розглянемо, як вони працюють, де вони вписуються в конвеєр активів і коли їх слід використовувати.
Золоте правило: дискове сховище vs. відеопам’ять (VRAM)
Перш ніж розбирати окремі формати, розробники повинні зрозуміти фундаментальну різницю між компресією дискового сховища та апаратною блоковою компресією GPU.
1. Стиснення диска (PNG, JPEG, WebP)
Формати, такі як PNG, використовують безвтратне ентропійне кодування (DEFLATE). Хоча PNG економить величезну кількість простору на SSD або сервері завантажень, сучасні GPU не можуть безпосередньо зчитувати PNG‑файли. Коли ваш ігровий движок завантажує PNG:
- CPU повинен розпакувати файл у необроблені, не стиснені 32‑бітові RGBA пікселі в системній пам’яті.
- Не стиснений bitmap завантажується у VRAM.
- Текстура розміром 2048×2048 споживає приблизно 16 МБ VRAM, незалежно від того, чи був PNG розміром 1 МБ чи 3 МБ на диску.
2. Блокове стиснення GPU (BCn, ASTC, ETC2)
Спеціалізовані формати GPU стискають фіксовані блоки пікселів (зазвичай блоки 4×4 пікселя) у менші бітові представлення. Графічне обладнання зчитує ці блоки безпосередньо у VRAM без розпакування на стороні CPU:
- Прямий випадковий доступ до VRAM без накладних витрат на розпакування під час виконання.
- Той же текстура 2048×2048 з використанням BC7/ASTC споживає лише приблизно 4 МБ VRAM (зменшення на 75%).
- Mipmaps можна вбудовувати безпосередньо у файл контейнера.
Контейнери, такі як DDS і KTX, створені спеціально для обгортання цих нативних форматів GPU, тоді як PNG і TGA виконують інші ролі на ранніх етапах конвеєра.
1. DDS (DirectDraw Surface)
Запроваджений Microsoft разом з DirectX 7, формат DirectDraw Surface (.dds) є беззаперечним робочим конем індустрії для розробки ігор на ПК, Xbox та консолях.
Технічні характеристики
- Тип контейнера: Нативний контейнер текстур GPU.
- Підтримуване стиснення: BC1‑BC7 (Block Compression / сімейство DXT), не стиснені RGBA, формати з плаваючою комою (BC6H для HDR).
- Ключові можливості: Запечені міпмапи, кубічні карти, масиви текстур, об’ємні (3D) текстури.
Чому розробники використовують DDS
DDS по суті є прямим дампом пам’яті того, що потрібне графічному апаратному забезпеченню. При завантаженні DDS‑текстури з попередньо згенерованими міпмапами, движок повністю пропускає декомпресію CPU і виконує пряме копіювання пам’яті Direct3D або Vulkan на GPU. Це усуває вузькі місця CPU під час потокової передачі та завантаження рівнів.
Переваги
- Блискавично швидке завантаження: Нульові цикли декомпресії CPU під час виконання.
- Запечені міпмапи: Офлайн‑генерація міпмапів дозволяє художникам контролювати фільтрацію, різкість та нормалізацію нормальних карток на різних рівнях деталізації (LOD).
- Ефективність VRAM: Нативно використовує стандартні в індустрії алгоритми стиснення BC.
Недоліки
- DirectX/Windows Bias: Історично пов’язаний з екосистемами Microsoft, хоча широко підтримується в сучасних настільних рушіях.
- Lossy Compression Artifacts: Блокове стиснення (особливо BC1 на нормальних картах) може спричиняти блоковість, якщо не використати BC5/BC7.
- Limited Mobile Support: Мобільні GPU зазвичай віддають перевагу ASTC або ETC2 замість настільних форматів BC.
2. TGA (Truevision Targa)
Створений у 1984 році, TGA (.tga) — це формат растрових графічних файлів без стиснення або зі стисненням методом Run-Length Encoding (RLE), який залишився незмінним елементом конвеєра протягом понад трьох десятиліть.
Технічні характеристики
- Container Type: Некомпресований бітмап для створення/обміну.
- Bit Depths: 8, 16, 24 та 32 біти на піксель (RGB + окремий 8‑бітний альфа‑канал).
- Compression: Відсутнє або базове RLE (Run-Length Encoding).
Чому розробники використовують TGA
TGA користується перевагою серед технічних художників та програмістів рушіїв завдяки своїй надзвичайній архітектурній простоті. На відміну від PNG, який вбудовує альфа‑канал у складні матриці фільтрації, TGA зберігає кольорові дані та альфа‑канали повністю окремо і незмінними.
При створенні користувацьких масок (наприклад, упакування Roughness у червоний, Metallic у зелений, Ambient Occlusion у синій та Height у альфа‑канал), TGA забезпечує відсутність тонкого алгоритмічного змішування або кольорових протікань між каналами.
Переваги
- Прецизна цілісність даних: Бітова точна збереження значень каналів; ідеально підходить для текстур з упакованими каналами ORM (Occlusion‑Roughness‑Metallic).
- Тривіальний парсинг: Внутрішні інструменти конвеєра, кастомні експортери та автоматизовані скрипти можуть читати та записувати TGA‑файли з мінімальною кількістю коду.
- Універсальна підтримка DCC: Maya, 3ds Max, Blender, Substance 3D та Photoshop пропонують вбудований, безпроблемний експорт у TGA.
Недоліки
- Величезні розміри файлів: Значний простір у репозиторіях Git/Perforce та повільна швидкість завантаження в розподілених командах.
- Непридатний для виконання: Не може бути використаний безпосередньо GPU як стиснутий формат; повинен бути конвертований движком під час приготування (cook).
3. PNG (Portable Network Graphics)
PNG (.png) — найвідоміший у світі безвтратний формат зображень, який використовує стиснення zlib/DEFLATE для упакування насичених 24‑бітних та 32‑бітних зображень у надзвичайно малі файли.
Технічні характеристики
- Тип контейнера: Безвтратний формат створення та доставки.
- Глибина кольору: До 16 біт на канал (48-бітний RGB, 64-бітний RGBA).
- Стиснення: Безвтратний алгоритм DEFLATE.
Чому розробники використовують PNG
PNG слугує основним форматом розповсюдження UI‑активів, спрайтів, рекламних матеріалів та проміжних вихідних текстур. Для 2D‑ігор, створених у Unity, Godot або Unreal Engine, PNG забезпечує чітку піксельну точність з бездоганними масками прозорості.
Переваги
- Компактний розмір репозиторію: Значно зменшує розмір завантаження проекту порівняно з не стисненим TGA.
- Безвтратна якість кольору: Нульові артефакти стиснення на висококонтрастних краях та векторних ілюстраціях.
- Нативна альфа‑прозорість: Чистий 8‑бітний альфа‑канал для складних прозорих UI‑елементів та листів частинок.
Недоліки
- Важке декодування CPU: Розпакування великих PNG у режимі виконання уповільнює частоту кадрів і різко збільшує використання пам’яті перед завантаженням на GPU.
- Проблеми з премультиплікованою альфою: Деякі графічні редактори видаляють дані RGB у повністю прозорих пікселях, що руйнує розтікання текстур і викликає темні контури навколо спрайтів.
- Нульове заощадження VRAM: Декомпресується до повної 32‑бітної необробленої пам’яті всередині GPU, якщо її не обробить текстурний кухар движка.
4. KTX (Khronos Texture) та KTX 2.0
Розроблено Khronos Group — організацією, що керує Vulkan, OpenGL та glTF — KTX (.ktx) та KTX 2.0 представляють сучасний відкритий стандарт для крос‑платформних текстур GPU.
Технічні характеристики
- Тип контейнера: Стандартизований відкритий контейнер текстур GPU.
- Підтримка стиснення: Basis Universal (ETC1S та UASTC), ASTC, BCn, ETC2.
- Ключові можливості: Універсальне транскодування текстур, міпмапи, кубічні карти, масивні текстури, інтеграція з glTF.
Чому розробники використовують KTX
KTX 2.0 вирішує проблему фрагментованого крос‑платформного стиснення. Традиційно розробникам доводилося постачати DDS (BCn) для настільних ПК/консолей та ASTC/ETC2 для мобільних пристроїв/планшетів.
З KTX 2.0 та Basis Universal:
- Ви зберігаєте текстури у компактному, універсально стискаємому форматі.
- Під час виконання клієнтське обладнання транскодує файл безпосередньо у будь‑який блоковий формат, який віддає перевагу локальний GPU (наприклад, BC7 на GeForce RTX, ASTC на iPhone, ETC2 на старішому Android‑пристрої).
- Суперкомпресія (Zstandard) створює файли, менші за JPEG на диску, які транскодуються у нативні блоки VRAM за мілісекунди.
Переваги
- Справжній крос‑платформений стандарт: Працює безперешкодно на Vulkan, WebGL, WebGPU та мобільних пристроях.
- Транскодування Basis Universal: Один єдиний збірка активу орієнтується на десктоп, мобільні пристрої та браузер без дублювання експорту текстур.
- Першокласний супутник glTF: Необхідний для сучасних 3D веб‑досвідів, мета‑всесвітніх движків та відкритих рендерингових конвеєрів.
Недоліки
- Зрілість інструментів конвеєра: Потребує сучасних ланцюжків збірки (наприклад,
toktxз набору KTX-Software); старі пропрієтарні движки можуть не мати готової інтеграції. - Навантаження транскодера: Невелика затримка транскодування під час виконання (хоча в десятки разів швидше, ніж повне програмне декодування PNG).
Порівняння один до одного
| Функція / Критерій | DDS | TGA | PNG | KTX / KTX 2.0 |
|---|---|---|---|---|
| Основний випадок використання | Середовище виконання для ПК/консолей | Створення джерела та маски | 2D-спрайти та вихідне мистецтво | Кросплатформне та веб-середовище виконання |
| Пряма вибірка GPU | Так (нативний) | Ні | Ні | Так (нативний або транскодований) |
| Стиснення VRAM | Так (BC1–BC7) | Ні (не стиснутий) | Ні (не стиснутий) | Так (ASTC, BCn, Basis) |
| Попередньо створені міпмапи | Так | Ні | Ні | Так |
| Розмір диска | Помірний | Дуже високий | Малий | Надзвичайно малий (Basis + Zstandard) |
| Екосистема | DirectX / настільні рушії | DCC Software / Конвеєри джерела | Універсальні веб- та 2D-движки | Vulkan, WebGPU, glTF |
Практичний посібник: створення ідеального конвеєра активів
Як організувати ці чотири формати у комерційному виробничому конвеєрі? Ось як провідні студії структурують свої конвеєри текстур:
[DCC & Authoring] [Engine Ingestion / Cook] [Runtime GPU Target]
Substance / Photoshop / Blender Unreal / Unity / Custom Toolset VRAM Memory Blocks
• TGA (Clean packed masks) ──────► Build Engine Texture Cooker ──────► DDS (DirectX / Windows / Xbox)
• PNG (UI & 2D Sprites) ──────► Generates Mipmaps & Block ──────► KTX2 (Vulkan / WebGPU / Mobile)
• PSD / EXR (HDR & masters) ──────► Compression Automatically
- Вихідні активи: Зберігайте майстер‑файли та дані, упаковані по каналах, у форматах TGA або PNG у репозиторіях вашого проєкту, щоб гарантувати незмінність кольорової інформації.
- Збірки для ПК та консолей: Обробляйте вихідні текстури у файли DDS, використовуючи BC7 для високодеталізованих карт альбедо/нормалей та BC4/BC5 для одноканальних і двоканальних масок.
- Крос‑платформенні, веб‑ та мобільні збірки: Упакуйте 3D‑активи під час виконання у KTX 2.0, щоб скористатися універсальним транскодуванням на Android, iOS та WebGPU без підтримки окремих гілок арт‑ресурсів.
- Користувацькі інтерфейси: Зберігайте текстури UI під час виконання або у чітких незапакованих форматах, або у безвтратних атласах движка, отриманих з високороздільних вихідних файлів PNG.
Поширені запитання (FAQ)
Q1. Чи може ігровий движок зчитувати PNG безпосередньо з відеопам’яті?
A1: Ні; GPU не можуть розпізнавати стиснення PNG, тому движки повинні розпаковувати PNG‑файли у необроблені 32‑бітові бітмапи в пам’яті перед їх завантаженням у VRAM.
Q2. Чому технічні художники віддають перевагу TGA над PNG для упаковки масок?
A2: TGA зберігає чисті, не стиснені дані каналів без розтікання кольору або руйнівного фільтрування прозорості країв у окремих каналах RGB та Alpha.
Q3. Який алгоритм блочного стиснення слід використовувати в контейнері DDS для нормалей?
A3: Використовуйте BC5 (стиснення у тангенціальному просторі з двома каналами) для нормалей, щоб зберегти чисту кривизну поверхні без стандартних артефактів блоків BC1.
Q4. Чим KTX 2.0 кращий за DDS для кросплатформених ігор?
A4: KTX 2.0 підтримує Basis Universal, що дозволяє одному файлу в режимі реального часу транскодуватися у формати BCn для настільних ПК або у формати ASTC/ETC для мобільних пристроїв під час запуску.
Q5. Чи збільшує попереднє створення міпмап у файлах DDS або KTX розмір диска?
A5: Так, включення повних ланцюжків міпмапів додає приблизно 33 % більше необроблених даних до файлу, але усуває мерехтіння під час виконання, покращує локальність кешу та підвищує продуктивність рендерингу на GPU.