Son yenilənmə: 21 Sentyabr, 2026

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

Oyun İnkişaf etdiriciləri üçün Şəkil Fayl Formatları: DDS, TGA, PNG və KTX

Oyun inkişafında, teksturalar həm işləmə zamanı yaddaş istehlakı, həm də quraşdırma ölçüsü baxımından ən böyük hissəni təşkil edir. İndie stilizə olunmuş platformer yaradırsınızsa və ya AAA açıq dünya RPG-də fotorealizmi artırırsınızsa, tekstura məlumatlarını necə saxlayır, emal edir və daxil edirsinizsə, bu birbaşa çərçivə sürətinizə, yükləmə vaxtlarına və avadanlıq uyğunluğuna təsir edir.

Yeni başlayanların ümumi səhvi oyun teksturalarını veb qrafikləri kimi qəbul etməkdir — diskin üzərindəki yüngül faylın oyun mühərrikinizdə yüngül performansa çevriləcəyini düşünmək. GPU dünyasında isə işləmə zamanı reallıq tamamilə fərqlidir.

Bu dərin araşdırmada müasir oyun inkişafında ən vacib dörd tekstura və şəkil fayl formatını təhlil edirik: DDS, TGA, PNG və KTX. Onların necə işlədiyini, aktivlər boru kəmərində harada yerləşdiyini və hər birini nə zaman istifadə etməli olduğumuzu incələyəcəyik.

Qızıl Qayda: Disk Yaddaşı vs. Video RAM (VRAM)

Fərdi formatları təhlil etməzdən əvvəl, inkişafçılar disk yaddaşı sıxılması ilə GPU hardware blok sıxılması arasındakı əsas fərqi başa düşməlidirlər.

1. Disk Sıxılması (PNG, JPEG, WebP)

PNG kimi formatlar itkisiz entropiya kodlamasından (DEFLATE) istifadə edir. PNG SSD-də və ya yükləmə serverində böyük miqdarda yer qənaət etsə də, müasir GPU-lar PNG fayllarını birbaşa nümunə götürə bilməz. Oyun mühərrikiniz PNG yüklədikdə:

  • CPU faylı sistem yaddaşında xam, sıxılmamış 32-bit RGBA pikselərinə açmalıdır.
  • Sıxılmamış bitmap VRAM-a yüklənir.
  • A 2048×2048 tekstura təxminən 16 MB VRAM istifadə edir, PNG faylının diskdə 1 MB və ya 3 MB olması fərq etməz.

2. GPU Blok Sıxması (BCn, ASTC, ETC2)

Xüsusi GPU formatları piksel bloklarını (adətən 4×4 piksel blokları) daha kiçik bit təmsillərinə sıxır. Qrafik avadanlığı bu blokları CPU tərəfli dekompressiya olmadan birbaşa VRAM‑da nümunələyir:

  • VRAM‑a birbaşa təsadüfi giriş, sıfır icra zamanı dekompressiya xərci ilə.
  • Eyni 2048×2048 tekstura BC7/ASTC istifadə edərək yalnız təxminən 4 MB VRAM (75% azalma) istifadə edir.
  • Mipmap‑lər birbaşa konteyner faylına daxil edilə bilər.

DDSKTX kimi konteynerlər xüsusi olaraq bu GPU‑yerli formatları bükmək üçün yaradılmışdır, PNGTGA isə boru kəmərinin əvvəlində fərqli rollar oynayır.

1. DDS (DirectDraw Surface)

Microsoft tərəfindən DirectX 7 ilə birlikdə təqdim edilən DirectDraw Surface (.dds) formatı PC, Xbox və konsol oyun inkişafı üçün mübahisəsiz sənaye atıdır.

Texniki Xüsusiyyətlər

  • Konteyner Növü: Yerli GPU tekstur konteyneri.
  • Dəstəklənən Sıxışdırma: BC1-dən BC7-yə (Blok Sıxışdırma / DXT ailəsi), sıxışdırılmamış RGBA, float formatları (HDR üçün BC6H).
  • Əsas İmkanlar: Öncədən hazırlanmış mipmap-lar, kub xəritələri, tekstur massivləri, həcm (3D) teksturları.

İnkişaf etdiricilərin DDS istifadə etmə səbəbləri

DDS əsasən qrafik avadanlığının ehtiyac duyduğu yaddaşın birbaşa dumpudur. Öncədən yaradılmış mipmap-lı DDS tekstur yüklənərkən, mühərrik CPU dekompressiyasını tamamilə ötürür və GPU-ya birbaşa Direct3D və ya Vulkan yaddaş nüsxəsi göndərir. Bu, axın və səviyyə yüklənməsi zamanı CPU dar boğazlarını aradan qaldırır.

Üstünlüklər

  • İldırım Sürətli Yükləmə Zamanları: İş vaxtında sıfır dekompressiya CPU dövrləri tələb olunur.
  • Öncədən Hazırlanmış Mipmap-lar: Offline mipmap yaradılması sənətçi tərəfindən idarə olunan filtrasiya, kəskinləşdirmə və LOD-lar üzrə normal xəritə normallaşdırılmasına imkan verir.
  • VRAM Səmərəliliyi: Sənaye standartlı BC sıxışdırma alqoritmlərini yerli olaraq istifadə edir.

Mənfi cəhətlər

  • DirectX/Windows Bias: Tarixən Microsoft ekosistemlərinə bağlıdır, lakin müasir masaüstü mühərriklərdə geniş dəstəklənir.
  • Lossy Compression Artifacts: Blok sıxması (xüsusilə normal xəritələrdə BC1) blokluq yarada bilər, əgər BC5/BC7 istifadə edilməzsə.
  • Limited Mobile Support: Mobil GPU-lar adətən masaüstü BC formatlarından daha çox ASTC və ya ETC2-ni üstün tuturlar.

2. TGA (Truevision Targa)

1984-cü ildə yaradılmış TGA (.tga) sıxılmamış və ya uzunluq-işləmə kodlamalı (RLE) raster qrafika fayl formatıdır və üç onillikdən çoxdur ki, davamlı bir boru kəməri standartı olaraq qalır.

Texniki Xüsusiyyətlər

  • Container Type: Sıxılmamış yaradıcı / mübadilə bitmapi.
  • Bit Depths: Piksel başına 8, 16, 24 və 32 bit (RGB + ayrılmış 8-bit Alpha kanalı).
  • Compression: Heç biri və ya sadə RLE (Run-Length Encoding).

İnkişafçılar TGA-nı Niyə İstifadə Edirlər

TGA texniki rəssamlar və mühərrik proqramçıları tərəfindən onun sadə memarlıq quruluşu səbəbindən üstünlük təşkil edir. PNG-dən fərqli olaraq, alfa kanalını mürəkkəb filtrasiya matrislərinə daxil edən PNG, TGA isə rəng məlumatlarını və alfa kanallarını tamamilə ayrı və toxunulmaz saxlayır.

Xüsusi maskalar yaradarkən (məsələn, Roughness-u Qırmızıya, Metallic-i Yaşılğa, Ambient Occlusion-u Maviyə və Height-i Alfa kanalına yığarkən), TGA kanallar arasında incə alqoritmik qarışma və ya rəng yayılmasının baş verməməsini təmin edir.

Üstünlüklər

  • Pristine Data Fidelity: Kanal dəyərlərinin bit-düzgün qorunması; kanal-qarışdırılmış ORM (Occlusion-Roughness-Metallic) teksturları üçün ideal.
  • Trivial Parsing: Daxili pipeline alətləri, xüsusi ixracatçılar və avtomatlaşdırılmış skriptlər TGA fayllarını minimal kod sətirləri ilə oxuya və yaza bilər.
  • Universal DCC Support: Maya, 3ds Max, Blender, Substance 3D və Photoshop yerli, problemsiz TGA ixracatı təklif edir.

Mənfi cəhətlər

  • Massive File Sizes: Git/Perforce repozitoriyalarında böyük yer tutumu və paylanmış komandalar arasında yavaş yükləmə sürətləri.
  • Unsuitable for Runtime: Sıxışdırılmış format kimi GPU tərəfindən birbaşa istifadə edilə bilməz; mühərrik tərəfindən bişirmə (cook) zamanı çevrilməlidir.

3. PNG (Portable Network Graphics)

PNG (.png) dünyanın ən tanınmış itkisiz görüntü formatıdır, zəngin 24-bit və 32-bit şəkilləri zlib/DEFLATE sıxışdırması ilə nəzərəçarpacaq dərəcədə kiçik fayllara yığır.

Texniki Xüsusiyyətlər

  • Container Type: Itkisiz yaradılma və çatdırılma formatı.
  • Bit Dərinlikləri: Kanal başına 16 bitə qədər (48-bit RGB, 64-bit RGBA).
  • Sıxışdırma: Zərərsiz DEFLATE alqoritmi.

Tərtibatçılar Niyə PNG-dən İstifadə Edirlər

PNG, UI aktivləri, sprite‑lər, promosyon materialları və ara mənbə teksturaları üçün əsas paylama formatı kimi xidmət edir. Unity, Godot və ya Unreal Engine ilə hazırlanmış 2D oyunlar üçün PNG, təmiz şəffaflıq maskaları ilə dəqiq piksel dəqiqliyi təmin edir.

Üstünlüklər

  • Kompakt Depozit Ayaq İzi: Sıxılmamış TGA ilə müqayisədə layihənin yükləmə ölçülərini əhəmiyyətli dərəcədə azaldır.
  • Zərərsiz Rəng Keyfiyyəti: Yüksək kontrastlı kənarlarda və vektor‑stil illüstrasiyalarda sıxışdırma artefaktları yoxdur.
  • Təbii Alfa Şəffaflığı: Kompleks yarı şəffaf UI elementləri və hissəcik vərəqləri üçün təmiz 8‑bit alfa kanal dəstəyi.

Mənfi tərəflər

  • Ağır CPU Dekodlaşdırması: İş vaxtında böyük PNG‑lərin dekompressiyası kadr sürətini yavaşladır və GPU‑ya yüklənməzdən əvvəl yaddaş istifadəsini artırır.
  • Öncədən Çoxaldılmış Alfa Çətinlikləri: Bəzi şəkil redaktorları tam şəffaf piksellərdə RGB məlumatını atır, bu da tekstur sızmasını pozur və sprite‑lərin ətrafında qaranlıq konturlar yaradır.
  • Sıfır VRAM Qənaəti: GPU daxilində tam 32-bit xam yaddaşa dekompressiya edir, əgər mühərrikin tekstur bişiricisi tərəfindən qəbul edilməyibsə.

4. KTX (Khronos Texture) və KTX 2.0

Khronos Group tərəfindən hazırlanmış—Vulkan, OpenGL və glTF-nin idarəedicisi—KTX (.ktx)KTX 2.0 platformalararası GPU teksturları üçün müasir açıq standartı təmsil edir.

Texniki Xüsusiyyətlər

  • Konteyner Növü: Standartlaşdırılmış açıq GPU tekstur konteyneri.
  • Sıxışdırma Dəstəyi: Basis Universal (ETC1S və UASTC), ASTC, BCn, ETC2.
  • Əsas İmkanlar: Universal tekstur transkodinqi, mipmap-lar, kubemap-lar, array teksturları, glTF inteqrasiyası.

Tərtibatçılar Niyə KTX-dən İstifadə Edirlər

KTX 2.0 parçalanmış platformalararası sıxışdırma dilemmasını həll edir. Ənənəvi olaraq, inkişafçılar masaüstü/konsollar üçün DDS (BCn) və mobil/tabletlar üçün ASTC/ETC2 göndərmək məcburiyyətində idilər.

KTX 2.0 və Basis Universal ilə:

  1. Siz teksturları kompakt, universal olaraq sıxışdırıla bilən formatda saxlayırsınız.
  2. İcra zamanı, müştəri avadanlığı faylı birbaşa yerli GPU-nun üstünlük verdiyi blok formatına kodlayır (məsələn, GeForce RTX-də BC7, iPhone‑da ASTC, köhnə Android cihazında ETC2).
  3. Superkompressiya (Zstandard) diskte JPEG‑dən daha kiçik fayllar yaradır və bunlar milisaniyələrdə yerli VRAM bloklarına kodlanır.

Üstünlüklər

  • Həqiqi Çapraz Platforma Standartı: Vulkan, WebGL, WebGPU və mobil cihazlarda problemsiz işləyir.
  • Basis Universal Transcoding: Bir tək aktiv quruluşu masaüstü, mobil və brauzer üçün təkrarlanan tekstur ixracı olmadan hədəfləyir.
  • Birinci Səviyyəli glTF Yoldaşı: Müasir 3D veb təcrübələri, metaverse mühərrikləri və açıq renderləmə boru kəmərləri üçün vacibdir.

Mənfi tərəflər

  • Boru Kəməri Alətləri Yetkinliyi: Müasir qurma zəncirləri tələb edir (məsələn, KTX‑Software paketindən toktx); köhnə proprietar mühərriklər qutudan çıxan inteqrasiya çatışmazlığına sahib ola bilər.
  • Transcoder Yükü: İcra zamanı kiçik kodlama gecikməsi (lakin tam PNG proqram dekodlamasından çox daha sürətlidir).

Başdan-başa müqayisə

Xüsusiyyət / KriteriyalarDDSTGAPNGKTX / KTX 2.0
Əsas İstifadə HallarıPC/Konsol İşləmə vaxtıMənbə Yaratma & Maskalar2D Sprite-lər & Mənbə SənətiÇapraz Platforma & Veb İşləmə vaxtı
Birbaşa GPU NümunələməBəli (Native)XeyrXeyrBəli (Native və ya Transcoded)
VRAM SıxılmasıBəli (BC1–BC7)Yox (Uncompressed)Yox (Uncompressed)Bəli (ASTC, BCn, Basis)
Öncədən Hazırlanmış MipmaplərBəliXeyrXeyrBəli
Disk ÖlçüsüOrtaÇox YüksəkKiçikÇox Kiçik (Basis + Zstandard)
EkosistemDirectX / Desktop MühərrikləriDCC Proqramı / Mənbə Boru KəmərləriÜmumi Veb & 2D MühərrikləriVulkan, WebGPU, glTF

Praktik bələdçi: İdeal aktiv boru kəmərini qurmaq

Bu dörd formatı kommersiya istehsal xəttində necə təşkil etməlisiniz? Budur, aparıcı studiyaların tekstur xəttlərini necə qurduqları:

[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. Mənbə Aktivləri: Master faylları və kanal-qarışdırılmış məlumatları TGA və ya PNG formatında layihə repozitoriyalarınızda saxlayın ki, rəng məlumatları pozulmasın.
  2. PC & Console Builds: Mənbə teksturlarınızı DDS fayllarına BC7 istifadə edərək yüksək detal albedo/normal xəritələri üçün və BC4/BC5 tək və iki-kanallı maskalar üçün çevirin.
  3. Cross-Platform, Web & Mobile Builds: Çalışma vaxtı 3D aktivlərini KTX 2.0 formatına paketləyin ki, Android, iOS, və WebGPU üzərində ayrı sənət budaqları yaratmadan ümumi transcoding-dən yararlansın.
  4. User Interfaces: Çalışma vaxtı UI teksturlarını ya kəskin sıxılmamış formatlarda, ya da yüksək çözünürlüklü PNG mənbə fayllarından əldə edilmiş itkisiz mühərrik atlaları kimi saxlayın.

Tez-tez Soruşulan Suallar (FAQ)

Q1. Oyun mühərriki PNG faylını birbaşa video yaddaşdan nümunə götürə bilərmi?

A1: Xeyr; GPU-lar PNG sıxılmasını oxuya bilməz, buna görə mühərriklər PNG fayllarını VRAM-a yükləmədən əvvəl yaddaşda xam 32-bit bitmap-ə dekompress etməlidir.

Q2. Texniki rəssamlar mask paketi üçün PNG-dən TGA-ya niyə üstünlük verirlər?

A2: TGA saf, sıxışdırılmamış kanal məlumatlarını saxlayır, rəng yayılması və ya məhvedici kənar şəffaflıq filtrasiyası olmadan fərdi RGB və Alfa kanalları üzrə.

Q3. Normal xəritələri üçün DDS konteyneri daxilində hansı blok sıxışdırma alqoritmini istifadə etməliyəm?

A3: Normal xəritələr üçün BC5 (iki-kanallı tangent-məkan sıxışdırması) istifadə edin, standart BC1 blok artefaktları olmadan təmiz səth əyriliyini qorumaq üçün.

Q4. KTX 2.0-ın cross-platform oyunlar üçün DDS-dən daha üstün edən nədir?

A4: KTX 2.0 Basis Universal dəstəkləyir, bu da tək bir faylın işə salınanda masaüstü BCn formatlarına və ya mobil ASTC/ETC formatlarına anında transkodlaşdırılmasına imkan verir.

Q5. DDS və ya KTX fayllarında mipmap-ləri əvvəlcədən hazırlamaq disk ölçüsünü artırırmı?

A5: Bəli, tam mipmap zəncirləri daxil olmaq fayla təxminən 33% daha çox xam məlumat əlavə edir, lakin bu, işləmə zamanı titrəməni aradan qaldırır, keş lokallığını yaxşılaşdırır və GPU render performansını artırır.

Baxın