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

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:
- A textúrákat egy kompakt, univerzálisan tömöríthető formátumban tárolod.
- 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).
- 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
toktxeszkö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érium | DDS | TGA | PNG | KTX / KTX 2.0 |
|---|---|---|---|---|
| Elsődleges felhasználási eset | PC/konzol futtatókörnyezet | Forrás szerkesztés és maszkok | 2D sprite-ok és forrásgrafika | Keresztplatformos és webes futtatókörnyezet |
| Közvetlen GPU mintavételezés | Igen (Natív) | Nem | Nem | Igen (Natív vagy átkódolt) |
| VRAM tömörítés | Igen (BC1–BC7) | Nem (Tömörítetlen) | Nem (Tömörítetlen) | Igen (ASTC, BCn, Basis) |
| Előre elkészített mipmapok | Igen | Nem | Nem | Igen |
| Lemezméret | Mérsékelt | Nagyon magas | Kicsi | Rendkívül kicsi (Basis + Zstandard) |
| Ökoszisztéma | DirectX / Asztali motorok | DCC szoftver / Forrás csővezetékek | Univerzális Web & 2D motorok | Vulkan, 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
- 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.
- 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.
- 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.
- 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.