Paskutinį kartą atnaujinta: 21 Sep, 2026

Vaizdo failų formatai žaidimų kūrėjams: DDS, TGA, PNG ir KTX
Žaidimų kūrime tekstūros sudaro didžiausią dalį tiek vykdymo atminties naudojimo, tiek diegimo rinkinio dydžio. Nesvarbu, ar kuriate nepriklausomą stilizuotą platformerį, ar siekiate fotorealizmo AAA atviro pasaulio RPG, tai, kaip saugote, apdorojate ir įkeliate tekstūros duomenis, tiesiogiai lemia jūsų kadrų dažnį, įkrovimo laikus ir aparatūros suderinamumą.
Dažna pradedančiųjų klaida – traktuoti žaidimų tekstūras kaip interneto grafiką, manyti, kad lengvas failas diske reiškia lengvą našumą jūsų žaidimo variklyje. GPU pasaulyje vykdymo realybė yra visiškai kitokia.
Šiame išsamiajame apžvalgoje išnagrinėsime keturis svarbiausius tekstūrų ir vaizdų failų formatus šiuolaikiniame žaidimų kūrime: DDS, TGA, PNG ir KTX. Išnagrinėsime, kaip jie veikia, kur jie tinka turto konvejerio grandinėje ir kada naudoti kiekvieną.
Auksinė taisyklė: Disko saugojimas vs. vaizdo RAM (VRAM)
Prieš nagrinėjant atskirus formatus, kūrėjai turi suprasti pagrindinį skirtumą tarp disko saugojimo suspaudimo ir GPU aparatinės blokų suspaudimo.
1. Disko suspaudimas (PNG, JPEG, WebP)
Tokie formatai kaip PNG naudoja bepraradiminį entropijos kodavimą (DEFLATE). Nors PNG sutaupo didžiulį vietos kiekį SSD ar atsisiuntimo serveryje, šiuolaikiniai GPU negali tiesiogiai nuskaityti PNG failų. Kai jūsų žaidimo variklis įkelia PNG:
- CPU turi išskleisti failą į neapdorotus, nesuspaustus 32‑bitų RGBA pikselius sistemos atmintyje.
- Nesuspausta bitmapa įkeliamas į VRAM.
- 2048×2048 tekstūra sunaudoja maždaug 16 MB VRAM, nepriklausomai nuo to, ar PNG buvo 1 MB ar 3 MB diske.
2. GPU blokų suspaudimas (BCn, ASTC, ETC2)
Specializuoti GPU formatai suspaudžia fiksuotus pikselių blokų (dažniausiai 4×4 pikselių blokų) į mažesnes bitų reprezentacijas. Grafinė aparatinė įranga tiesiogiai imtų šiuos blokus iš VRAM be CPU pusės išskleidimo:
- Tiesioginė VRAM atsitiktinė prieiga be jokio išskleidimo laiko našumo.
- Ta pati 2048×2048 tekstūra, naudojanti BC7/ASTC, sunaudoja tik maždaug 4 MB VRAM (75 % sumažėjimas).
- Mipmapai gali būti įkoduoti tiesiogiai į konteinerio failą.
Konteineriai, tokie kaip DDS ir KTX, sukurti specialiai šių GPU natūralių formatų supakavimui, tuo tarpu PNG ir TGA atlieka skirtingas funkcijas ankstesnėse procesų grandinėse.
1. DDS (DirectDraw paviršius)
Microsoft pristatė kartu su DirectX 7, DirectDraw Surface (.dds) formatas yra neabejotinas pramonės darbo arklys PC, Xbox ir konsolinių žaidimų kūrimui.
Techninės charakteristikos
- Konteinerio tipas: Natūralus GPU tekstūrų konteineris.
- Palaikoma suspaudimas: BC1 iki BC7 (Block Compression / DXT šeima), nesuspausta RGBA, slankaus kablelio formatai (BC6H HDR).
- Pagrindinės galimybės: Iš anksto sukurtos mipmapų, kubų žemėlapiai, tekstūrų masyvai, tūrinės (3D) tekstūros.
Kodėl kūrėjai naudoja DDS
DDS iš esmės yra tiesioginis atminties išklotinė, kurią reikalauja grafikos aparatinė įranga. Įkeliant DDS tekstūrą su iš anksto sugeneruotomis mipmapomis, variklis visiškai praleidžia CPU dekompresiją ir išsiunčia tiesioginį Direct3D arba Vulkan atminties kopijavimą į GPU. Tai pašalina CPU našumo ribojimus srautinio perdavimo ir lygių įkėlimo metu.
Privalumai
- Ugnikalninis greitis įkrovimo: Nereikia jokių CPU dekompresijos ciklų vykdymo metu.
- Iš anksto sukurtos mipmapų: Neprisijungus generuojamos mipmapų leidžia menininkų kontroliuojamą filtravimą, aštrinimą ir normalinių žemėlapių normalizavimą per LOD.
- VRAM efektyvumas: Naudoja pramonės standartinius BC suspaudimo algoritmus natūraliai.
Trūkumai
- DirectX/Windows priklausomybė: Istoriškai susijusi su Microsoft ekosistemomis, nors plačiai palaikoma šiuolaikiniuose darbalaukio varikliuose.
- Prarandamos suspaudimo artefaktai: Blokinis suspaudimas (ypač BC1 normalių žemėlapių atveju) gali sukelti blokavimą, nebent būtų naudojami BC5/BC7.
- Ribotas mobilus palaikymas: Mobiliosios GPU dažniausiai renkasi ASTC arba ETC2 vietoje darbalaukio BC formatų.
2. TGA (Truevision Targa)
Sukurtas 1984 m., TGA (.tga) yra nesuspaustas arba ilgio kodavimu (RLE) koduotas rastrų grafikos failo formatas, kuris išlieka patikimu duomenų srauto pagrindu daugiau nei tris dešimtmečius.
Techninės charakteristikos
- Konteinerio tipas: Nesuspaustas kūrimo / keitimo bitų žemėlapis.
- Bitų gylis: 8, 16, 24 ir 32 bitai per pikselį (RGB + atskiras 8‑bitų alfa kanalas).
- Suspaudimas: Nėra arba paprastas RLE (ilgio kodavimas).
Kodėl kūrėjai naudoja TGA
TGA yra techninių menininkų ir variklių programuotojų mėgstamas dėl savo grynos architektūrinės paprastumo. Skirtingai nuo PNG, kuris įterpia alfa kanalą į sudėtingas filtravimo matricas, TGA išlaiko spalvų duomenis ir alfa kanalus visiškai atskirus ir nepaliestus.
Kuriant pasirinktines kaukes (pvz., supakuojant Raupumą į Raudoną, Metalą į Žalią, Aplinkos užtemimą į Mėlyną ir Aukštį į Alfa), TGA užtikrina, kad tarp kanalų neįvyktų subtilaus algoritminio maišymo ar spalvų išsiliejimo.
Privalumai
- Nekalta duomenų tikslumas: Bitų tikslus kanalo verčių išsaugojimas; idealu kanalų supakuotoms ORM (Užtemimas‑Raupumas‑Metalas) tekstūroms.
- Paprasčiausias analizavimas: Vidiniai konvejerio įrankiai, pasirinktini eksportuotojai ir automatizuotos skriptai gali skaityti ir rašyti TGA failus su minimaliais kodo eilutėmis.
- Universalus DCC palaikymas: Maya, 3ds Max, Blender, Substance 3D ir Photoshop siūlo natūralų, be vargo TGA eksportą.
Trūkumai
- Milžiniški failų dydžiai: Didžiulė vieta Git/Perforce saugyklose ir lėtas atsisiuntimo greitis paskirstytų komandų atžvilgiu.
- Netinkamas vykdymo metu: Negali būti tiesiogiai naudojamas GPU kaip suspaustas formatas; turi būti konvertuotas variklio perėjimo metu.
3. PNG (Portable Network Graphics)
PNG (.png) yra pasaulio labiausiai atpažįstamas be nuostolių vaizdo formatas, naudojantis zlib/DEFLATE suspaudimą, kad supakuotų turtingus 24‑bitų ir 32‑bitų vaizdus į nepaprastai mažus failus.
Techninės charakteristikos
- Konteinerio tipas: Be nuostolių kūrimo ir pristatymo formatas.
- Bitų gyliai: Iki 16 bitų kanalui (48-bitų RGB, 64-bitų RGBA).
- Suspaudimas: Be nuostolių DEFLATE algoritmas.
Kodėl programuotojai naudoja PNG
PNG veikia kaip pagrindinis platinimo formatas UI ištekliams, sprite’ams, reklamos medžiagai ir tarpinėms šaltinio tekstūroms. 2D žaidimams, sukurtiems Unity, Godot arba Unreal Engine, PNG suteikia ryškų pikselių tikslumą su nepriekaištingomis skaidrumo kaukėmis.
Privalumai
- Kompaktiška saugyklos pėda: Žymiai sumažina projekto atsisiuntimo dydžius, palyginti su nespaustu TGA.
- Be nuostolių spalvų kokybė: Nėra suspaudimo artefaktų aukšto kontrasto kraštuose ir vektorinio stiliaus iliustracijose.
- Gimtoji alfa skaidrumas: Švari 8-bitų alfa kanalo palaikymas sudėtingiems permatomiems UI elementams ir dalelių lapams.
Trūkumai
- Sunkus CPU dekodavimas: Didelių PNG išskleidimas vykdymo metu sulėtina kadrų dažnį ir padidina atminties naudojimą prieš GPU įkėlimą.
- Iš anksto dauginamo alfa spąstai: Kai kurie vaizdo redaktoriai pašalina RGB duomenis visiškai skaidriuose pikseliuose, kas sugadina tekstūrų išsiliejimą ir sukelia tamsius kontūrus aplink sprite’us.
- Nulinis VRAM taupymas: Išskleidžia į pilną 32‑bitų neapdorotą atmintį GPU viduje, nebent ją apdoroja variklio tekstūrų gamintojas.
4. KTX (Khronos Texture) ir KTX 2.0
Sukūrė Khronos Group—valdymo institucija, atsakinga už Vulkan, OpenGL ir glTF—KTX (.ktx) ir KTX 2.0 yra šiuolaikinis atviras standartas kryžminės platformos GPU tekstūroms.
Techninės charakteristikos
- Konteinerio tipas: Standartizuotas atviras GPU tekstūrų konteineris.
- Suspaudimo palaikymas: Basis Universal (ETC1S ir UASTC), ASTC, BCn, ETC2.
- Pagrindinės galimybės: Universalių tekstūrų transkoderis, mipžemėlapiai, kubų žemėlapiai, masyvo tekstūros, glTF integracija.
Kodėl programuotojai naudoja KTX
KTX 2.0 išsprendžia fragmentuotą kryžminės platformos suspaudimo dilemą. Tradiciškai kūrėjai turėjo siųsti DDS (BCn) darbalaukio/konsolėms ir ASTC/ETC2 mobiliesiems / planšetėms.
Su KTX 2.0 ir Basis Universal:
- Jūs saugote tekstūras glaustame, universaliai suspaudžiamame formate.
- Vykdymo metu kliento aparatinė įranga tiesiogiai perkoduoją failą į bet kokį blokų formatą, kurį pageidauja vietinis GPU (pvz., BC7 „GeForce RTX“, ASTC „iPhone“, ETC2 senesniame Android įrenginyje).
- Superkompresija (Zstandard) sukuria failus, kurie yra mažesni nei JPEG diske, ir kurie perkelia į natūralius VRAM blokus per milisekundes.
Privalumai
- Tikrasis kryžminės platformos standartas: Veikia sklandžiai Vulkan, WebGL, WebGPU ir mobiliuosiuose įrenginiuose.
- Basis Universal perkodavimas: Vienas vienintelis išteklių kūrinys taikomas darbalaukiui, mobiliesiems ir naršyklei be dubliuotų tekstūrų eksportų.
- Pirmos klasės glTF papildinys: Būtinas šiuolaikinėms 3D interneto patirtims, metaversų varikliams ir atviroms atvaizdavimo konvejoms.
Trūkumai
- Vamzdyno įrankių brandumas: Reikalauja modernių kūrimo grandinių (pvz.,
toktxiš KTX-Software rinkinio); senesnių nuosavybinių variklių gali trūkti integracijos iš karto. - Perkoderio našta: Nedidelė vykdymo metu perkodavimo vėlavimo (nors keliais dešimtmečiais greitesnė nei pilnas PNG programinės įrangos dekodavimas).
Palyginimas vienas su kitu
| Funkcija / Kriterijai | DDS | TGA | PNG | KTX / KTX 2.0 |
|---|---|---|---|---|
| Pagrindinis naudojimo atvejis | PC/konsolės vykdymo aplinka | Šaltinio kūrimas ir kaukės | 2D spritai ir šaltinio menas | Kelių platformų ir žiniatinklio vykdymo aplinka |
| Tiesioginis GPU mėginių ėmimas | Taip (Gimtoji) | Ne | Ne | Taip (Gimtoji arba Perkoduota) |
| VRAM suspaudimas | Taip (BC1–BC7) | Ne (Nespaustas) | Ne (Nespaustas) | Taip (ASTC, BCn, Basis) |
| Iš anksto sukurtos mipžemėlapiai | Taip | Ne | Ne | Taip |
| Disko dydis | Vidutinis | Labai aukštas | Mažas | Labai mažas (Basis + Zstandard) |
| Ekosistema | DirectX / darbalaukio varikliai | DCC programinė įranga / šaltinio konvejeriai | Universalios žiniatinklio ir 2D varikliai | Vulkan, WebGPU, glTF |
Praktinis vadovas: Idealaus turto srauto kūrimas
Kaip turėtumėte organizuoti šiuos keturis formatus komercinėje gamybos grandinėje? Štai kaip pirmaujančios studijos struktūruoja savo tekstūrų procesus:
[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
- Šaltiniai: Laikykite pagrindinius failus ir kanalų supakotą duomenį TGA arba PNG savo projekto saugyklose, kad užtikrintumėte nekorumpuotą spalvų informaciją.
- PC ir konsolės versijos: Paruoškite šaltinius tekstūras į DDS failus, naudodami BC7 aukštos detalės albedo/normalės žemėlapiams ir BC4/BC5 vieno ir dvigubo kanalo kaukėms.
- Kryžminės platformos, žiniatinklio ir mobiliosios versijos: Supakuokite vykdymo metu naudojamus 3D išteklius į KTX 2.0, kad pasinaudotumėte universaliu transkoduojimu Android, iOS ir WebGPU platformose, nereikalaujant atskirų meno šakų.
- Vartotojo sąsajos: Laikykite vykdymo metu UI tekstūras aštriuose nespaustų formatuose arba beprarastinėse variklio atlanto struktūrose, gautose iš aukštos raiškos PNG šaltinių failų.
Dažnai užduodami klausimai (DUK)
Q1. Ar žaidimų variklis gali nuskaityti PNG tiesiogiai iš vaizdo atminties?
A1: Ne; GPU negali analizuoti PNG suspaudimo, todėl varikliai turi išskleisti PNG failus į neapdorotus 32-bitų bitų žemėlapius atmintyje prieš įkeliant juos į VRAM.
Q2. Kodėl techniniai menininkai renkasi TGA vietoj PNG kaukių pakavimui?
A2: TGA saugo grynus, nesuspaustus kanalų duomenis be spalvų išsiliejimo ar destruktyvaus kraštų skaidrumo filtravimo atskiruose RGB ir Alpha kanaluose.
Q3. Kurį blokų suspaudimo algoritmą turėčiau naudoti DDS konteineryje normalų žemėlapiams?
A3: Naudokite BC5 (dviejų kanalų tangentinės erdvės suspaudimą) normalų žemėlapiams, kad išsaugotumėte švarią paviršiaus kreivumą be standartinių BC1 blokų artefaktų.
Q4. Kas daro KTX 2.0 geresniu nei DDS kryžminėse platformose žaidimams?
A4: KTX 2.0 palaiko Basis Universal, leidžiantį vieną failą realiu laiku perkonvertuoti į darbalaukio BCn formatus arba mobiliesiems ASTC/ETC formatus paleidimo metu.
Q5. Ar iš anksto sukurtų mipžemėlapių įdėjimas į DDS arba KTX failus padidina disko dydį?
A5: Taip, įtraukus visus mipmap grandinius, failas prideda apie 33 % daugiau neapdorotų duomenų, tačiau tai pašalina vykdymo metu pasirodančius mirgėjimus, pagerina talpyklės lokalumą ir padidina GPU atvaizdavimo našumą.