Poslední aktualizace: 21. září 2026

Image File Formats for Game Developers: DDS, TGA, PNG, and KTX Compared

Formáty souborů obrázků pro vývojáře her: DDS, TGA, PNG a KTX

Ve vývoji her představují textury největší podíl jak na spotřebě paměti během běhu, tak na velikosti instalace. Ať už vytváříte indie stylizovaný plošinovku nebo usilujete o fotorealismus v AAA otevřeném světě RPG, způsob, jakým ukládáte, zpracováváte a načítáte data textur, přímo určuje vaše snímkové rychlosti, časy načítání a kompatibilitu s hardwarem.

Běžnou chybou začátečníků je zacházet s herními texturami jako s webovou grafikou – předpokládat, že lehký soubor na disku se přeloží na lehký výkon ve vašem herním enginu. Ve světě GPU je realita během běhu naprosto odlišná.

V tomto podrobném rozboru rozebíráme čtyři nejdůležitější formáty souborů textur a obrázků v moderním vývoji her: DDS, TGA, PNG a KTX. Prozkoumáme, jak fungují, kde zapadají do pipeline assetů a kdy je použít.

Zlaté pravidlo: úložiště na disku vs. video RAM (VRAM)

Před rozborem jednotlivých formátů musí vývojáři pochopit základní rozdíl mezi kompresí úložiště na disku a blokovou kompresí hardwaru GPU.

1. Komprese disku (PNG, JPEG, WebP)

Formáty jako PNG používají bezztrátové kódování entropie (DEFLATE). Zatímco PNG ušetří obrovské množství místa na SSD nebo stahovacím serveru, moderní GPU nemohou přímo vzorkovat PNG soubory. Když váš herní engine načte PNG:

  • CPU musí rozbalit soubor do surových, nekomprimovaných 32bitových RGBA pixelů v systémové paměti.
  • Nekomprimovaná bitmapa je nahrána do VRAM.
  • Textura 2048×2048 zabírá přibližně 16 MB VRAM, bez ohledu na to, zda PNG byl na disku 1 MB nebo 3 MB.

2. Bloková komprese GPU (BCn, ASTC, ETC2)

Vyhrazené formáty GPU komprimují pevné bloky pixelů (typicky bloky 4×4 pixelů) do menších bitových reprezentací. Grafický hardware čte tyto bloky přímo ve VRAM bez dekomprese na straně CPU:

  • Přímý náhodný přístup do VRAM bez jakéhokoli režijního zatížení dekompresí během běhu.
  • Stejná textura 2048×2048 používající BC7/ASTC zabírá pouze přibližně 4 MB VRAM (snížení o 75 %).
  • Mipmapy lze vložit přímo do souboru kontejneru.

Kontejnery jako DDS a KTX jsou vytvořeny speciálně pro zabalení těchto nativních formátů GPU, zatímco PNG a TGA plní odlišné role dříve v pipeline.

1. DDS (DirectDraw Surface)

Představený společností Microsoft spolu s DirectX 7 je formát DirectDraw Surface (.dds) nepopiratelným pracovním koněm průmyslu pro vývoj her na PC, Xbox a konzolích.

Technické charakteristiky

  • Typ kontejneru: Nativní kontejner textur GPU.
  • Podporovaná komprese: BC1 až BC7 (Block Compression / rodina DXT), nekomprimované RGBA, formáty s plovoucí desetinnou čárkou (BC6H pro HDR).
  • Klíčové schopnosti: Předpřipravené mipmapy, cube mapy, pole textur, objemové (3D) textury.

Proč vývojáři používají DDS

DDS je v podstatě přímý výpis paměti toho, co grafický hardware potřebuje. Při načítání DDS textury s předgenerovanými mipmapami engine zcela vynechává dekompresi CPU a provádí přímou kopii paměti Direct3D nebo Vulkan na GPU. To eliminuje úzká místa CPU během streamování a načítání úrovní.

Výhody

  • Bleskově rychlé načítání: V runtime nejsou vyžadovány žádné cykly CPU na dekompresi.
  • Předpřipravené mipmapy: Offline generování mipmap umožňuje umělecky řízené filtrování, zaostřování a normalizaci normálových map napříč LODy.
  • Efektivita VRAM: Nativně používá průmyslové standardní algoritmy BC komprese.

Nevýhody

  • DirectX/Windows Bias: Historicky spjatý s ekosystémy Microsoftu, ačkoliv je široce podporován na moderních desktopových enginech.
  • Lossy Compression Artifacts: Bloková komprese (zejména BC1 na normálových mapách) může způsobit blokování, pokud se nepoužijí BC5/BC7.
  • Limited Mobile Support: Mobilní GPU typicky upřednostňují ASTC nebo ETC2 před desktopovými BC formáty.

2. TGA (Truevision Targa)

Vytvořen v roce 1984, TGA (.tga) je nekomprimovaný nebo běhově kódovaný (RLE) rastrový grafický souborový formát, který zůstává pevnou součástí pipeline již více než tři desetiletí.

Technické charakteristiky

  • Container Type: Nezkomprimovaná bitmapa pro tvorbu / výměnu.
  • Bit Depths: 8, 16, 24 a 32 bitů na pixel (RGB + dedikovaný 8‑bitový alfa kanál).
  • Compression: Žádná nebo základní RLE (Run-Length Encoding).

Proč vývojáři používají TGA

TGA je preferována technickými umělci a programátory engineů pro svou naprostou architektonickou jednoduchost. Na rozdíl od PNG, který vkládá alfa kanál do složitých filtrujících matic, TGA udržuje barevná data a alfa kanály zcela oddělené a nedotčené.

Při vytváření vlastních masek (např. zabalení drsnosti do červené, kovovosti do zelené, ambientní okluze do modré a výšky do alfa kanálu) formát TGA zajišťuje, že mezi kanály nedochází k žádnému jemnému algoritmickému míchání ani k úniku barev.

Výhody

  • Dokonalá věrnost dat: Bitově přesná zachování hodnot kanálů; ideální pro textury s kanálově zabaleným ORM (Okluze‑Drsnost‑Kovovost).
  • Jednoduché parsování: Interní nástroje pipeline, vlastní exportéry a automatizované skripty mohou číst a zapisovat soubory TGA s minimálním počtem řádků kódu.
  • Univerzální podpora DCC: Maya, 3ds Max, Blender, Substance 3D a Photoshop nabízejí nativní, bezproblémový export TGA.

Nevýhody

  • Obrovské velikosti souborů: Velký objem v repozitářích Git/Perforce a pomalé rychlosti stahování v distribuovaných týmech.
  • Nevhodné pro runtime: Nelze jej přímo použít GPU jako komprimovaný formát; musí být převáděn enginem během přípravy (cook time).

3. PNG (Portable Network Graphics)

PNG (.png) je nejrozpoznatelnější bezztrátový formát obrázků na světě, využívající kompresi zlib/DEFLATE k zabalení bohatých 24‑bitových a 32‑bitových obrázků do pozoruhodně malých souborů.

Technické charakteristiky

  • Typ kontejneru: Bezztrátový formát pro tvorbu i distribuci.
  • Hloubka bitů: Až 16 bitů na kanál (48-bit RGB, 64-bit RGBA).
  • Komprese: Bezeztrátový algoritmus DEFLATE.

Proč vývojáři používají PNG

PNG slouží jako primární distribuční formát pro UI assety, sprity, propagační materiály a mezilehlé zdrojové textury. Pro 2D hry vytvořené v Unity, Godotu nebo Unreal Engine poskytuje PNG ostrou pixelovou věrnost s dokonalými maskami průhlednosti.

Výhody

  • Kompaktní stopa repozitáře: Výrazně snižuje velikost stažení projektu ve srovnání s nekomprimovaným TGA.
  • Bezeztrátová kvalita barev: Žádné artefakty komprese na hranách s vysokým kontrastem a vektorových ilustracích.
  • Nativní alfa průhlednost: Čistá podpora 8bitového alfa kanálu pro složité průsvitné UI prvky a částicové listy.

Nevýhody

  • Náročné dekódování CPU: Rozbalování velkých PNG souborů za běhu zpomaluje snímkovou frekvenci a zvyšuje využití paměti před nahráním na GPU.
  • Problémy s přednásobenou alfu: Některé editory obrázků zahazují RGB data v úplně průhledných pixelech, což poškozuje rozšíření textury a způsobuje tmavé obrysy kolem spritů.
  • Žádná úspora VRAM: Rozbalí se do plné 32‑bitové surové paměti uvnitř GPU, pokud není vstřebáno texturovým kuchařem enginu.

4. KTX (Khronos Texture) a KTX 2.0

Vyvinuto skupinou Khronos—správním orgánem za Vulkan, OpenGL a glTF—KTX (.ktx) a KTX 2.0 představují moderní otevřený standard pro multiplatformní GPU textury.

Technické charakteristiky

  • Typ kontejneru: Standardizovaný otevřený GPU texturový kontejner.
  • Podpora komprese: Basis Universal (ETC1S a UASTC), ASTC, BCn, ETC2.
  • Klíčové schopnosti: Univerzální převod textur, mipmapy, kubemapy, pole textur, integrace s glTF.

Proč vývojáři používají KTX

KTX 2.0 řeší roztříštěný problém komprese napříč platformami. Tradičně vývojáři museli distribuovat DDS (BCn) pro desktop/konsoly a ASTC/ETC2 pro mobilní zařízení/tablety.

S KTX 2.0 a Basis Universal:

  1. Ukládáte textury v kompaktním, univerzálně komprimovatelném formátu.
  2. Za běhu hardware klienta překládá soubor přímo do libovolného blokového formátu, který upřednostňuje místní GPU (např. BC7 na GeForce RTX, ASTC na iPhonu, ETC2 na starším zařízení Android).
  3. Superkomprese (Zstandard) vytváří soubory menší než JPEG na disku, které se během milisekund překládají do nativních bloků VRAM.

Výhody

  • Skutečný multiplatformní standard: Běží hladce na Vulkan, WebGL, WebGPU a mobilních zařízeních.
  • Basis Universal Transcoding: Jedna jediná sestava assetu cílí na desktop, mobil a prohlížeč bez duplicitních exportů textur.
  • Prvotřídní doprovodný glTF: Nezbytný pro moderní 3D webové zážitky, metaverzové enginy a otevřené renderovací pipeline.

Nevýhody

  • Zralost nástrojů pipeline: Vyžaduje moderní build řetězce (např. toktx ze sady KTX-Software); starší proprietární enginy mohou postrádat integraci bez úprav.
  • Překladová zátěž: Mírná latence při překladu za běhu (ačkoliv je řády rychlejší než úplné softwarové dekódování PNG).

Srovnání hlava v hlavě

Funkce / KritériaDDSTGAPNGKTX / KTX 2.0
Primární případ použitíRuntime pro PC/konzoleTvorba zdrojů a masky2D Sprity a zdrojová grafikaCross-platform a webové runtime
Přímé vzorkování GPUAno (Native)NeNeAno (Native nebo Transkódováno)
Komprese VRAMAno (BC1–BC7)Ne (Nezkomprimováno)Ne (Nezkomprimováno)Ano (ASTC, BCn, Basis)
Předpřipravené mipmapyAnoNeNeAno
Velikost diskuStředníVelmi vysokáMaláExtrémně malá (Basis + Zstandard)
EkosystémDirectX / Desktopové enginySoftware DCC / Zdrojové pipelineUniverzální webové & 2D enginyVulkan, WebGPU, glTF

Praktický průvodce: Vytvoření ideálního asset pipeline

Jak byste měli organizovat těchto čtyři formáty v komerční produkční pipeline? Zde je, jak špičková studia strukturovaně organizují své texturové pipeline:

[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   
  1. Zdrojová aktiva: Uložte hlavní soubory a data zabalená do kanálů ve formátech TGA nebo PNG ve vašich projektových repozitářích, aby byla zajištěna nepoškozená barevná informace.
  2. PC a konzolové sestavení: Převádějte své zdrojové textury do souborů DDS pomocí BC7 pro vysoce detailní albedo/normal mapy a BC4/BC5 pro jednorázové a dvojité kanálové masky.
  3. Cross-platformové, webové a mobilní sestavení: Zabalte runtime 3D aktiva do KTX 2.0, abyste využili univerzální transkódování napříč Androidem, iOS a WebGPU, aniž byste museli udržovat samostatné umělecké větve.
  4. Uživatelská rozhraní: Uchovávejte runtime UI textury buď v ostrých nekomprimovaných formátech, nebo v bezztrátových engine atlasech odvozených z vysokorozlišovacích PNG zdrojových souborů.

Často kladené otázky (FAQ)

Q1. Dokáže herní engine načíst PNG přímo z video paměti?

A1: Ne; GPU nedokážou parsovat PNG kompresi, takže enginy musí dekomprimovat PNG soubory do surových 32-bitových bitmap v paměti před jejich nahráním do VRAM.

Q2. Proč technickí umělci upřednostňují TGA před PNG pro balení masek?

A2: TGA ukládá čistá, nekomprimovaná data kanálů bez rozmazání barev nebo destruktivního filtrování průhlednosti okrajů napříč jednotlivými kanály RGB a alfa.

Q3. Který algoritmus blokové komprese bych měl použít v kontejneru DDS pro normálové mapy?

A3: Použijte BC5 (komprese dvoukanálového tangentního prostoru) pro normálové mapy, aby se zachovala čistá křivost povrchu bez standardních artefaktů bloků BC1.

Q4. Co dělá KTX 2.0 lepším než DDS pro multiplatformní hry?

A4: KTX 2.0 podporuje Basis Universal, což umožňuje jednomu souboru během běhu převádět do desktopových formátů BCn nebo mobilních formátů ASTC/ETC při spuštění.

Q5. Zvyšuje předgenerování mipmap v souborech DDS nebo KTX velikost disku?

A5: Ano, zahrnutí kompletních řetězců mipmap přidá přibližně o 33 % více surových dat do souboru, ale eliminuje během běhu blikání, zlepšuje lokálnost cache a zvyšuje výkon renderování na GPU.

Viz také