Viimeksi päivitetty: 21 syyskuuta 2026

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

Kuvien tiedostomuodot pelikehittäjille: DDS, TGA, PNG ja KTX

Pelikehityksessä tekstuurit muodostavat suurimman osan sekä ajonaikaisesta muistin kulutuksesta että asennusrakenteen koosta. Olipa kyseessä indie-tyylinen tasohyppely tai photorealismin tavoittelu AAA-avointen maailmojen RPG:ssä, tapa, jolla tallennat, käsittelet ja syötät tekstuuridata, määrää suoraan kuvataajuutesi, latausajat ja laitteistoyhteensopivuuden.

Yleinen aloittelijan virhe on käsitellä pelitekstuureja kuin verkkograafeja – olettaen, että kevyt tiedosto levyllä tarkoittaa kevyttä suorituskykyä pelimoottorissasi. GPU-maailmassa ajonaikainen todellisuus on täysin erilaista.

Tässä syväluotauksessa käymme läpi neljä tärkeintä tekstuuri- ja kuvatiedostomuotoa nykypelikehityksessä: DDS, TGA, PNG ja KTX. Tarkastelemme, miten ne toimivat, missä ne sopivat assettiputkessa ja milloin kutakin tulisi käyttää.

Kultainen sääntö: Levyn tallennus vs. Video-RAM (VRAM)

Ennen yksittäisten formaattien tarkastelua kehittäjien on ymmärrettävä perusero levyaseman pakkaamisen ja GPU-laitteiston lohkopakkaamisen välillä.

1. Levyn pakkaus (PNG, JPEG, WebP)

PNG:n kaltaiset formaatit käyttävät häviötöntä entropiakoodausta (DEFLATE). Vaikka PNG säästää valtavasti tilaa SSD-levyllä tai latauspalvelimella, nykyaikaiset GPU:t eivät voi näytellä PNG-tiedostoja suoraan. Kun pelimoottorisi lataa PNG:n:

  • CPU:n on purettava tiedosto raakoiksi, pakkaamattomiksi 32-bittisiksi RGBA-pikseleiksi järjestelmämuistissa.
  • Pakkaamaton bittikartta ladataan VRAM-muistiin.
  • 2048×2048-tekstuuri kuluttaa noin 16 MB VRAM-muistia, riippumatta siitä, oliko PNG 1 MB vai 3 MB levyllä.

2. GPU-lohkopakkaus (BCn, ASTC, ETC2)

Omistetut GPU-formaatit pakkaavat kiinteitä pikselilohkoja (yleensä 4×4 pikselilohkoja) pienemmiksi bittiesityksiksi. Grafiikkalaitteisto näyttelee näitä lohkoja suoraan VRAM-muistissa ilman CPU-puolen purkua:

  • Suora VRAM-satunnaisluettavuus ilman lainkaan ajoaikaisen purkamisen ylikuormitusta.
  • Sama 2048×2048-tekstuuri, joka käyttää BC7/ASTC-muotoa, kuluttaa vain noin 4 MB VRAM-muistia (75 % vähenemä).
  • Mipmapit voidaan sisällyttää suoraan säiliötiedostoon.

Säiliöt kuten DDS ja KTX on rakennettu erityisesti näiden GPU-natiiviformaattien paketoimiseksi, kun taas PNG ja TGA täyttävät erilaisia rooleja aikaisemmassa putkistossa.

1. DDS (DirectDraw Surface)

Microsoftin esittelemä DirectX 7:n yhteydessä, DirectDraw Surface (.dds) -formaatti on kiistaton alan perusväline PC-, Xbox- ja konsolipelien kehityksessä.

Tekniset ominaisuudet

  • Kontin tyyppi: Natiivi GPU-tekstuurikontti.
  • Tuettu pakkaus: BC1–BC7 (Block Compression / DXT -perhe), pakkaamaton RGBA, float-muodot (BC6H HDR:lle).
  • Keskeiset ominaisuudet: Ennalta luodut mipmapit, kuutio kartat, tekstuuriarrayt, tilavuus (3D) -tekstuurit.

Miksi kehittäjät käyttävät DDS

DDS on periaatteessa suora muistivedos siitä, mitä grafiikkalaitteisto tarvitsee. Kun ladataan DDS-tekstuuria, jossa on ennalta luodut mipmapit, moottori ohittaa CPU-pakkauksen purun kokonaan ja suorittaa suoran Direct3D- tai Vulkan-muistikopion GPU:lle. Tämä poistaa CPU-esteet suoratoiston ja tasojen latauksen aikana.

Hyödyt

  • Räjähtävän nopeat latausajat: Nollapakkauspurku CPU-syklejä ei tarvita suoritusajossa.
  • Ennalta luodut mipmapit: Offline-mipmapin luonti mahdollistaa taiteilijan hallitseman suodatuksen, terävöittämisen ja normaalikartan normalisoinnin LOD:ien välillä.
  • VRAM-tehokkuus: Käyttää natiivisti alan standardeja BC-pakkausalgoritmeja.

Haitat

  • DirectX/Windows -vinouma: Historiallisesti sidottu Microsoftin ekosysteemeihin, vaikka se on laajasti tuettu nykyaikaisissa työpöytämoottoreissa.
  • Häviöllisen pakkaamisen artefaktit: Lohkopakkaus (erityisesti BC1 normaalikartoissa) voi aiheuttaa lohkoisuutta, ellei käytetä BC5/BC7.
  • Rajoitettu mobiilituki: Mobiiligrafiikkasuorittimet suosivat tyypillisesti ASTC- tai ETC2-formaatteja työpöydän BC-formaattien sijaan.

2. TGA (Truevision Targa)

Luotu vuonna 1984, TGA (.tga) on pakkaamaton tai pituusrunko-koodattu (RLE) rasterigrafiikkatiedostomuoto, joka on pysynyt vankkana tuotantoputken peruskomponenttina yli kolmen vuosikymmenen ajan.

Tekniset ominaisuudet

  • Säiliötyyppi: Pakkaamaton luominen / vaihtobittikartta.
  • Bittisyvyydet: 8, 16, 24 ja 32 bittiä per pikseli (RGB + omistettu 8-bittinen alfakanava).
  • Pakkaus: Ei mitään tai perus-RLE (Run-Length Encoding).

Miksi kehittäjät käyttävät TGA:ta

TGA on teknisten taiteilijoiden ja moottoriohjelmoijien suosima sen puhtaan arkkitehtonisen yksinkertaisuuden vuoksi. Toisin kuin PNG, joka upottaa alfakanavan monimutkaisiin suodatusmatriiseihin, TGA pitää väritiedot ja alfakanavat täysin erillisinä ja koskemattomina.

Kun luodaan mukautettuja maskia (esim. pakataan Roughness punaiselle, Metallic vihreälle, Ambient Occlusion siniselle ja Height alfakanavalle), TGA varmistaa, ettei kanavien välillä tapahdu hienovaraisia algoritmisia sekoittumisia tai värivuotoja.

Hyödyt

  • Virheetön datan tarkkuus: Bittitarkka kanavien arvojen säilytys; ihanteellinen kanavapakatuille ORM (Occlusion-Roughness-Metallic) -tekstureille.
  • Triviaalinen jäsentäminen: Sisäiset pipeline-työkalut, mukautetut vientiohjelmat ja automatisoidut skriptit voivat lukea ja kirjoittaa TGA-tiedostoja minimaalisella koodirivimäärällä.
  • Yleinen DCC-tuki: Maya, 3ds Max, Blender, Substance 3D ja Photoshop tarjoavat natiivin, vaivattoman TGA-viennin.

Haitat

  • Massiiviset tiedostokoot: Suuri jalanjälki Git/Perforce-varastoissa ja hidas latausnopeus hajautetuissa tiimeissä.
  • Ei sovellu ajonaikaisesti: Ei voida käyttää suoraan GPU:n toimesta pakattuna formaattina; täytyy muuntaa moottorin toimesta kokoonpanovaiheessa.

3. PNG (Portable Network Graphics)

PNG (.png) on maailman eniten tunnistettu häviötön kuvatiedostomuoto, hyödyntäen zlib/DEFLATE-pakkausta pakatakseen rikkaat 24-bittiset ja 32-bittiset kuvat poikkeuksellisen pieniksi tiedostoiksi.

Tekniset ominaisuudet

  • Konttityyppi: Häviötön luonti- ja toimitusmuoto.
  • Bittisyvyydet: Enintään 16 bittiä kanavaa kohden (48-bittinen RGB, 64-bittinen RGBA).
  • Pak­kaus: Häviötön DEFLATE‑algoritmi.

Miksi kehittäjät käyttävät PNG:ta

PNG toimii ensisijaisena jakelumuotona UI‑omaisuuksille, spriteille, markkinointimateriaaleille ja väliaikaisille lähde‑tekstureille. 2D‑peleissä, jotka on tehty Unityssä, Godotissa tai Unreal Enginessä, PNG tarjoaa terävän pikselitarkkuuden ja moitteettomat läpinäkyvyysmaskit.

Hyödyt

  • Kompakti varastojalanjälki: Vähentää merkittävästi projektin checkout‑kokoja verrattuna pakkaamattomaan TGA:han.
  • Häviötön väri‑laatu: Nollapakkausartefaktit korkean kontrastin reunoilla ja vektorityylisissä kuvituksissa.
  • Alkuperäinen alfa‑läpinäkyvyys: Selkeä 8‑bittinen alfakanavan tuki monimutkaisille läpinäkyville UI‑elementeille ja hiukkaslehdille.

Haitat

  • Raskas CPU‑purku: Suurten PNG‑tiedostojen purkaminen ajon aikana hidastaa ruudunpäivitysnopeutta ja aiheuttaa muistin piikin ennen GPU‑lähetystä.
  • Premultiplied Alpha -ankkurit: Jotkut kuvankäsittelyohjelmat poistavat RGB‑tiedot täysin läpinäkyvistä pikseleistä, mikä pilaa tekstuurivuodon ja aiheuttaa tummia ääriviivoja spriteille.
  • Nollavram-säästöt: Purkaa täyteen 32-bittiseen raakamuistiin GPU:ssa, ellei sitä ole syötetty pelimoottorin tekstuurikäsittelijään.

4. KTX (Khronos Texture) ja KTX 2.0

Kehittänyt Khronos Group—organisaatio, joka hallinnoi Vulkania, OpenGL:ää ja glTF:ta—KTX (.ktx) ja KTX 2.0 edustavat nykyaikaista avointa standardia monialustaisille GPU-tekstuurille.

Tekniset ominaisuudet

  • Kontin tyyppi: Standardoitu avoin GPU-tekstuurikontti.
  • Pak­kaustuki: Basis Universal (ETC1S ja UASTC), ASTC, BCn, ETC2.
  • Keskeiset ominaisuudet: Universaali tekstuurin transkoodaus, mipmapit, kuutio-tekstuurit, taulukko-tekstuurit, glTF-integraatio.

Miksi kehittäjät käyttävät KTX:ta

KTX 2.0 ratkaisee hajautuneen monialustaisen pakkausongelman. Perinteisesti kehittäjien täytyi toimittaa DDS (BCn) työpöytä/konsolialustoille ja ASTC/ETC2 mobiili-/tablettialustoille.

KTX 2.0:n ja Basis Universal kanssa:

  1. Tallennat tekstuurit tiiviiseen, universaalisti pakattavaan formaattiin.
  2. Suoritusajassa asiakaslaitteisto transkoodaa tiedoston suoraan siihen lohkomuotoon, jonka paikallinen GPU suosii (esim. BC7 GeForce RTX:ssä, ASTC iPhonessa, ETC2 vanhemmassa Android-laitteessa).
  3. Superpakkaus (Zstandard) tuottaa levyllä JPEG-kuvia pienempiä tiedostoja, jotka transkoodataan natiivilohkoiksi VRAM-muistissa millisekunneissa.

Hyödyt

  • Todellinen monialustainen standardi: Toimii saumattomasti Vulkanissa, WebGL:ssä, WebGPU:ssa ja mobiililaitteissa.
  • Basis Universal -transkoodaus: Yksi ainoa asset-rakennus kohdistuu työpöytä-, mobiili- ja selainympäristöihin ilman päällekkäisiä tekstuurivientoja.
  • Ensiluokkainen glTF-kumppani: Olennainen nykyaikaisille 3D-web-kokemuksille, metaversi‑moottoreille ja avoimille renderöintiputkille.

Haitat

  • Putkiston työkalujen kypsyys: Vaatii moderneja rakennusketjuja (kuten toktx KTX-Software -paketista); vanhemmat proprietaariset moottorit saattavat puuttua valmiista integraatiosta.
  • Transkooderin kuormitus: Hieman suoritusajan transkoodausviivettä (vaikka se on kymmenien tai satojen kertoja nopeampi kuin täysi PNG‑ohjelmistodekoodaus).

Suora vertailu

Ominaisuus / KriteeritDDSTGAPNGKTX / KTX 2.0
Ensisijainen käyttötapausPC/Console-ajonaikainenLähdeauthorointi & maskit2D-spritejä & lähdegrafiikkaMonialustainen & web-ajonaikainen
Suora GPU-näytteenottoKyllä (Alkuperäinen)EiEiKyllä (Alkuperäinen tai Transkoodattu)
VRAM-pakkausKyllä (BC1–BC7)Ei (Pakkaamaton)Ei (Pakkaamaton)Kyllä (ASTC, BCn, Basis)
Esivalmistetut mipmapitKylläEiEiKyllä
LevykokoKohtalainenErittäin korkeaPieniÄärimmäisen pieni (Basis + Zstandard)
EkosysteemiDirectX / TyöpöytämoottoritDCC-ohjelmisto / LähdeputketYleiset Web- ja 2D-moottoritVulkan, WebGPU, glTF

Käytännön opas: Ihanteellisen resurssiputken rakentaminen

Kuinka sinun tulisi järjestää nämä neljä formaattia kaupallisessa tuotantoputkessa? Tässä on, miten huippustudiot jäsentävät tekstuuriputkensa:

[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. Lähde‑aineistot: Tallenna master‑tiedostot ja kanavapakatut tiedot TGA- tai PNG-muodossa projektin repositorioihin varmistaaksesi väritiedon eheyden.
  2. PC‑ ja konsolirakenteet: Muunna lähdetekstuurit DDS‑tiedostoiksi käyttäen BC7:ää korkean tarkkuuden albedo‑/normaalikarttoihin ja BC4/BC5:ää yksikanavaisiin ja kaksikanavaisiin maskiin.
  3. Monialustaiset, Web‑ ja mobiilirakenteet: Pakkaa ajonaikaiset 3D‑aineistot KTX 2.0:een hyödyntääksesi yleistä transkoodausta Androidin, iOS:n ja WebGPU:n välillä ilman erillisten taiteen haaraumien ylläpitoa.
  4. Käyttöliittymät: Säilytä ajonaikaiset UI‑tekstuurit joko terävinä pakkaamattomina formaatteina tai häviöttöminä moottori‑atlasseina, jotka on johdettu korkean resoluution PNG‑lähdetiedostoista.

Usein kysytyt kysymykset (FAQ)

K1. Voiko pelimoottori näytellä PNG-kuvaa suoraan videomuistista?

A1: Ei; GPU:t eivät pysty jäsentämään PNG‑pakkausta, joten moottorien on purettava PNG‑tiedostot raakaksi 32‑bitin bittikartaksi muistissa ennen niiden lähettämistä VRAMiin.

K2. Miksi tekniset taiteilijat suosivat TGA:ta PNG:n sijaan maskipaketointiin?

A2: TGA tallentaa puhdasta, pakkaamatonta kanavatietoa ilman värivuotoa tai tuhoavaa reunojen läpinäkyvyyssuodatusta yksittäisissä RGB- ja Alpha-kanavissa.

K3. Mikä lohkokompressioalgoritmi tulisi käyttää DDS-säiliössä normaalikarttoja varten?

A3: Käytä BC5 (kaksikanavainen tangenttitilan pakkaus) normaalikarttoihin säilyttääksesi puhtaan pinnan kaarevuuden ilman tavallisia BC1-lohkoartefakteja.

K4. Mikä tekee KTX 2.0:sta paremman kuin DDS ristiin­alustaisissa peleissä?

A4: KTX 2.0 tukee Basis Universal -formaattia, jonka avulla yksi tiedosto voidaan muuntaa lennossa työpöytäversioiden BCn-formaateiksi tai mobiiliversioiden ASTC/ETC-formaateiksi käynnistyksessä.

K5. Lisääkö mipmapien esilaskenta DDS- tai KTX-tiedostoissa levyn kokoa?

A5: Kyllä, täysien mipmap-ketjujen sisällyttäminen lisää tiedostoon noin 33% enemmän raakadataa, mutta se poistaa ajonaikaisen hehkun, parantaa välimuistin paikallisuutta ja tehostaa GPU:n renderöintisuorituskykyä.

Katso myös