Utoljára frissítve: 2026. szeptember 21.

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

Képfájl-formátumok játékfejlesztőknek: DDS, TGA, PNG és KTX

A játékfejlesztésben a textúrák a futásidejű memóriahasználat és a telepítési build méretének egyetlen legnagyobb részét teszik ki. Akár egy indie, stilizált platformert építesz, akár a fotórealizmust hajtod egy AAA nyílt világú RPG-ben, a textúraadatok tárolása, feldolgozása és beolvasása közvetlenül meghatározza a képkockasebességet, a betöltési időket és a hardverkompatibilitást.

Egy gyakori kezdő hiba, ha a játéktextúrákat webgrafikaként kezelik – azt feltételezve, hogy egy könnyű fájl a lemezen könnyű teljesítményt jelent a játékmotorban. A GPU világában a futásidejű valóság teljesen más.

Ebben a mélyreható elemzésben lebontjuk a modern játékfejlesztés négy legkritikusabb textúra- és képfájlformátumát: DDS, TGA, PNG, és KTX. Megvizsgáljuk, hogyan működnek, hol illeszkednek az eszközcsővezetékbe, és mikor érdemes őket használni.

Az aranyszabály: Lemez tárolás vs. Video RAM (VRAM)

Mielőtt az egyes formátumokat részleteznénk, a fejlesztőknek meg kell érteniük az alapvető különbséget a lemez tárolási tömörítés és a GPU hardver blokk tömörítés között.

1. Lemez tömörítés (PNG, JPEG, WebP)

A PNG-hez hasonló formátumok veszteségmentes entrópiakódolást (DEFLATE) használnak. Bár a PNG hatalmas mennyiségű helyet takarít meg egy SSD-n vagy letöltő szerveren, a modern GPU-k nem tudják közvetlenül mintavételezni a PNG fájlokat. Amikor a játékmotor betölt egy PNG-t:

  • A CPU-nak fel kell bontania a fájlt nyers, tömörítetlen 32 bites RGBA pixelekké a rendszer memóriában.
  • A tömörítetlen bitmap feltöltődik a VRAM-ba.
  • Egy 2048×2048-as textúra körülbelül 16 MB VRAM-ot használ, függetlenül attól, hogy a PNG 1 MB vagy 3 MB volt a lemezen.

2. GPU blokk tömörítés (BCn, ASTC, ETC2)

A dedikált GPU-formátumok rögzített képpontblokkokat (általában 4×4 képpontos blokkokat) tömörítenek kisebb bitábrázolásba. A grafikus hardver ezeket a blokkokat közvetlenül a VRAM-ban mintavételezi CPU-oldali kitömörítés nélkül:

  • Közvetlen VRAM véletlenszerű hozzáférés nulla futásidejű kitömörítési terheléssel.
  • Ugyanaz a 2048×2048-as textúra BC7/ASTC használatával csak körülbelül 4 MB VRAM-ot fogyaszt (75%-os csökkenés).
  • A mipmap-ek közvetlenül a konténerfájlba beágyazhatók.

Az olyan konténerek, mint a DDS és a KTX, kifejezetten ezeknek a GPU-nativ formátumoknak a becsomagolására készülnek, míg a PNG és a TGA a folyamat korábbi szakaszaiban különböző szerepeket töltenek be.

1. DDS (DirectDraw felület)

A Microsoft által a DirectX 7-tel együtt bevezetett DirectDraw Surface (.dds) formátum a kétségtelen ipari munkakocsi a PC, Xbox és konzolos játékfejlesztéshez.

Műszaki jellemzők

  • Konténer típusa: Natív GPU textúra konténer.
  • Támogatott tömörítés: BC1-től BC7-ig (Block Compression / DXT család), tömörítetlen RGBA, float formátumok (BC6H HDR-hez).
  • Kulcsfontosságú képességek: Előre elkészített mipmapek, kockatérképek, textúra tömbök, térfogat (3D) textúrák.

Miért használják a fejlesztők a DDS-t

A DDS lényegében a grafikus hardvernek szükséges adat közvetlen memória kiírása. Amikor egy előre generált mipmapekkel rendelkező DDS textúrát tölt be, a motor teljesen kihagyja a CPU-dekompressziót, és közvetlen Direct3D vagy Vulkan memória másolást hajt végre a GPU-ra. Ez megszünteti a CPU szűk keresztmetszeteket a streaming és a szintbetöltés során.

Előnyök

  • Villámgyors betöltési idők: Futásidőben nulla dekompressziós CPU-ciklus szükséges.
  • Előre elkészített mipmapek: Az offline mipmap generálás lehetővé teszi a művész által vezérelt szűrést, élesítést és a normál térkép normalizálását a LOD-okon át.
  • VRAM hatékonyság: Natív módon alkalmaz ipari szabványú BC tömörítési algoritmusokat.

Hátrányok

  • DirectX/Windows Elfogultság: Történelmileg a Microsoft ökoszisztémához kötődik, bár széles körben támogatott a modern asztali motorokban.
  • Veszteséges tömörítési artefaktusok: A blokk tömörítés (különösen a BC1 a normál térképeken) blokkszerűséget okozhat, hacsak nem használják a BC5/BC7-et.
  • Korlátozott mobil támogatás: A mobil GPU-k általában az ASTC vagy ETC2 formátumokat részesítik előnyben az asztali BC formátumokkal szemben.

2. TGA (Truevision Targa)

1984-ben létrehozott, TGA (.tga) egy tömörítetlen vagy futamhossz‑kódolt (RLE) raszteres grafikai fájlformátum, amely több mint három évtizeden át megbízható csővezeték‑alapanyagnak bizonyult.

Műszaki jellemzők

  • Konténer típusa: Tömörítetlen szerkesztési / csere bitmap.
  • Bitek mélysége: 8, 16, 24 és 32 bit pixelenként (RGB + dedikált 8 bites alfa csatorna).
  • Tömörítés: Nincs vagy alap RLE (Futamhossz‑kódolás).

Miért használják a fejlesztők a TGA-t

A TGA‑t a technikai művészek és a motorprogramozók kedvelik tiszta architekturális egyszerűsége miatt. A PNG‑től eltérően, amely az alfa csatornát komplex szűrési mátrixokba ágyazza, a TGA a színadatokat és az alfa csatornákat teljesen elkülönítve és érintetlenül tartja.

Egyedi maszkok (például a Durvaság piros csatornába, a Fémesség zöldbe, a Környezeti Occlusion kékbe és a Mag magba) szerkesztésekor a TGA biztosítja, hogy a csatornák között ne forduljon elő semmilyen finom algoritmikus keveredés vagy színátmosás.

Előnyök

  • Tiszta adatpontosság: Bit-pontos megőrzése a csatornaértékeknek; ideális a csatorna-csomagolt ORM (Occlusion-Roughness-Metallic) textúrákhoz.
  • Triviális feldolgozás: A házon belüli pipeline eszközök, egyedi exporterek és automatizált szkriptek minimális kódsorokkal képesek olvasni és írni a TGA fájlokat.
  • Univerzális DCC támogatás: A Maya, 3ds Max, Blender, Substance 3D és Photoshop natív, gond nélkül használható TGA exportot kínál.

Hátrányok

  • Masszív fájlméretek: Óriási helyigény a Git/Perforce tárolókban és lassú letöltési sebesség a távoli csapatoknál.
  • Nem alkalmas futásidőben: Nem használható közvetlenül a GPU által tömörített formátumként; a motoron belül a főzési (cook) időben kell konvertálni.

3. PNG (Portable Network Graphics)

PNG (.png) a világ legelismertebb veszteségmentes képfájlformátuma, amely a zlib/DEFLATE tömörítést használja a gazdag 24‑bit és 32‑bit képek rendkívül kicsi fájlokba csomagolásához.

Műszaki jellemzők

  • Konténer típus: Veszteségmentes szerkesztési és szállítási formátum.
  • Bitmélységek: Legfeljebb 16 bit csatornánként (48 bites RGB, 64 bites RGBA).
  • Tömörítés: Veszteségmentes DEFLATE algoritmus.

Miért használják a fejlesztők a PNG-t

A PNG az UI eszközök, sprite-ok, promóciós anyagok és köztes forrástextúrák elsődleges terjesztési formátuma. 2D játékok esetén, amelyeket Unity, Godot vagy Unreal Engine használ, a PNG tiszta pixelhűséget biztosít makulátlan átlátszósági maszkokkal.

Előnyök

  • Kompakt tároló lábnyom: Jelentősen csökkenti a projekt letöltési méretét a tömörítetlen TGA-hoz képest.
  • Veszteségmentes színminőség: Nulla tömörítési artefaktum a nagy kontrasztú élek és vektoros illusztrációk esetén.
  • Natív alfa átlátszóság: Tiszta 8 bites alfa csatorna támogatás összetett áttetsző UI elemekhez és részecske lapokhoz.

Hátrányok

  • Nehéz CPU dekódolás: Nagy PNG-k futásidőben történő kitömörítése lelassítja a képkocka sebességet és memóriafogyasztást növeli a GPU feltöltése előtt.
  • Előre szorzott alfa buktatók: Egyes képszerkesztők eldobják az RGB adatot a teljesen átlátszó pixelekben, ami tönkreteszi a textúra átszivárgását és sötét körvonalakat okoz a sprite-okon.
  • Nulla VRAM megtakarítás: A GPU-n belül teljes 32 bites nyers memóriába tömöríti ki, hacsak a motor textúra főzője nem dolgozza fel.

4. KTX (Khronos Texture) és KTX 2.0

A Khronos Group által fejlesztve—amely a Vulkan, OpenGL és glTF mögötti irányító testület—KTX (.ktx) és KTX 2.0 a modern nyílt szabványt képviselik a platformok közötti GPU textúrákhoz.

Műszaki jellemzők

  • Konténer típusa: Szabványosított nyílt GPU textúra konténer.
  • Tömörítési támogatás: Basis Universal (ETC1S és UASTC), ASTC, BCn, ETC2.
  • Kulcsfontosságú képességek: Univerzális textúra transzkódolás, mipmapek, kocka térképek, tömb textúrák, glTF integráció.

Miért használják a fejlesztők a KTX-et

A KTX 2.0 megoldja a széttagolt platformok közötti tömörítési dilemmát. Hagyományosan a fejlesztőknek DDS (BCn) formátumot kellett szállítaniuk asztali/konzolos rendszerekhez, és ASTC/ETC2-t a mobil/tablettekhez.

A KTX 2.0-val és a Basis Universal-rel:

  1. A textúrákat egy kompakt, univerzálisan tömöríthető formátumban tárolod.
  2. Futásidőben a kliens hardvere közvetlenül a helyi GPU által preferált blokkformátumba transzkódolja a fájlt (pl. BC7 egy GeForce RTX-en, ASTC egy iPhone-on, ETC2 egy régebbi Android-eszközön).
  3. A szuperkompresszió (Zstandard) a lemezen a JPEG-nél kisebb fájlokat hoz létre, amelyek ezredmásodpercek alatt natív VRAM blokkokra transzkódolódnak.

Előnyök

  • Igaz keresztplatformos szabvány: Zökkenőmentesen fut Vulkanon, WebGL-en, WebGPU-n és mobil eszközökön.
  • Basis Universal transzkódolás: Egyetlen eszközépítés célozza meg az asztali, mobil és böngésző platformokat duplikált textúra exportok nélkül.
  • Első osztályú glTF kiegészítő: Elengedhetetlen a modern 3D webes élményekhez, metaverzum motorokhoz és nyílt renderelési csővezetékekhez.

Hátrányok

  • Csővezeték eszközök érettsége: Modern build láncokat igényel (például a KTX-Software csomag toktx eszközét); a régebbi, saját fejlesztésű motorok esetleg nem rendelkeznek beépített integrációval.
  • Transzkóder terhelés: Enyhe futásidejű transzkódolási késleltetés (bár nagyságrendekkel gyorsabb, mint a teljes PNG szoftveres dekódolás).

Fej‑fej összehasonlítás

Jellemző / KritériumDDSTGAPNGKTX / KTX 2.0
Elsődleges felhasználási esetPC/konzol futtatókörnyezetForrás szerkesztés és maszkok2D sprite-ok és forrásgrafikaKeresztplatformos és webes futtatókörnyezet
Közvetlen GPU mintavételezésIgen (Natív)NemNemIgen (Natív vagy átkódolt)
VRAM tömörítésIgen (BC1–BC7)Nem (Tömörítetlen)Nem (Tömörítetlen)Igen (ASTC, BCn, Basis)
Előre elkészített mipmapokIgenNemNemIgen
LemezméretMérsékeltNagyon magasKicsiRendkívül kicsi (Basis + Zstandard)
ÖkoszisztémaDirectX / Asztali motorokDCC szoftver / Forrás csővezetékekUniverzális Web & 2D motorokVulkan, WebGPU, glTF

Gyakorlati útmutató: Az ideális eszközcsővezeték felépítése

Hogyan kell ezeket a négy formátumot egy kereskedelmi gyártási folyamatban rendszerezni? Íme, hogyan építik fel a csúcstudiók a textúra pipeline-jaikat:

[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. Source Assets: Tárold a mesterfájlokat és a csatorna-csomagolt adatokat TGA vagy PNG formátumban a projekt tárolóidban, hogy biztosítsd a színek sértetlen információját.
  2. PC & Console Builds: Főzd le a forrás textúrákat DDS fájlokká BC7 használatával a magas részletességű albedo/normál térképekhez, valamint BC4/BC5-öt az egy- és kétcsatornás maszkokhoz.
  3. Cross-Platform, Web & Mobile Builds: Csomagold a futásidejű 3D eszközöket KTX 2.0 formátumba, hogy kihasználd az univerzális átkódolást Android, iOS és WebGPU között anélkül, hogy külön művészeti ágakat kellene fenntartani.
  4. User Interfaces: Keep runtime UI textures either in crisp uncompressed formats or lossless engine atlases derived from high-resolution PNG source files.

Gyakran Ismételt Kérdések (GYIK)

Q1. Képes egy játékmotor közvetlenül a videomemóriából mintát venni egy PNG-ből?

A1: Nem; a GPU-k nem tudják értelmezni a PNG tömörítést, ezért a motoroknak a PNG fájlokat nyers 32-bites bitmapokká kell kitömöríteniük a memóriában, mielőtt feltöltenék őket a VRAM-ba.

Q2. Miért részesítik előnyben a technikai művészek a TGA-t a PNG helyett a maszkcsomagoláshoz?

A2: A TGA tiszta, tömörítetlen csatorna adatokat tárol, színelmosás vagy destruktív él átlátszóság szűrés nélkül az egyes RGB és Alpha csatornákon.

Q3. Melyik blokk-kompressziós algoritmust használjam egy DDS konténerben a normál térképekhez?

A3: Használja a BC5-öt (kétcsatornás tangent-space tömörítés) a normál térképekhez, hogy megőrizze a tiszta felületi görbületet a szokásos BC1 blokkhibák nélkül.

Q4. Mi teszi a KTX 2.0-t jobbá, mint a DDS a többplatformos játékoknál?

A4: A KTX 2.0 támogatja a Basis Universal-t, amely lehetővé teszi, hogy egyetlen fájl futás közben átkódolódjon asztali BCn formátumokra vagy mobil ASTC/ETC formátumokra indításkor.

Q5. Növeli-e a mipmap-ek előre elkészítése DDS vagy KTX fájlokban a lemezméretet?

A5: Igen, a teljes mipmap láncok belefoglalása körülbelül 33%-kal több nyers adatot ad a fájlhoz, de megszünteti a futásidejű csillogást, javítja a gyorsítótár lokalitását, és növeli a GPU renderelési teljesítményt.

Lásd még