<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>TGA on File Format Blog</title>
    <link>https://blog.fileformat.com/bg/tag/tga/</link>
    <description>Recent content in TGA on File Format Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>bg</language>
    <lastBuildDate>Mon, 21 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fileformat.com/bg/tag/tga/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Файлови формати за изображения за гейм разработчици DDS, TGA, PNG и KTX</title>
      <link>https://blog.fileformat.com/bg/image/image-file-formats-for-gamevdevelopers-dds-tga-png-and-ktx/</link>
      <pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate>
      
      <guid>https://blog.fileformat.com/bg/image/image-file-formats-for-gamevdevelopers-dds-tga-png-and-ktx/</guid>
      <description>Открийте разликите между DDS, TGA, PNG и KTX. Научете как GPU компресията, използването на VRAM и процесите в пайплайна влияят върху производителността на игрите.</description>
      <content:encoded><![CDATA[<p><strong>Последно актуализирано</strong>: 21 септември, 2026</p>
<figure class="align-center ">
    <img loading="lazy" src="images/image-file-formats-for-gamevdevelopers-dds-tga-png-and-ktx.png#center"
         alt="Image File Formats for Game Developers: DDS, TGA, PNG, and KTX Compared"/> 
</figure>

<h2 id="файлови-формати-за-изображения-за-гейм-разработчици-dds-tga-png-и-ktx">Файлови формати за изображения за гейм разработчици: DDS, TGA, PNG и KTX</h2>
<p>В гейм разработката текстурите съставляват най-голямата част от консумацията на памет по време на изпълнение и размера на инсталационния билд. Независимо дали създавате инди стилизиран платформер или преследвате фотореализъм в AAA отворен свят RPG, начинът, по който съхранявате, обработвате и зареждате данните за текстурите, директно определя вашите кадри в секунда, времена за зареждане и съвместимост с хардуера.</p>
<p>Често срещана грешка за начинаещи е да се третират гейм текстурите като уеб графика — да се предполага, че лек файл на диска се превръща в леко изпълнение в игровия двигател. В света на GPU реалността по време на изпълнение е напълно различна.</p>
<p>В това задълбочено изследване разглеждаме четирите най-критични формати за текстури и изображения в съвременната гейм разработка: <strong>DDS, TGA, PNG и KTX</strong>. Ще разгледаме как работят, къде се вписват в пайплайна на активите и кога да използваме всеки от тях.</p>
<h2 id="златното-правило-дисково-съхранение-срещу-видеопамет-vram">Златното правило: Дисково съхранение срещу видеопамет (VRAM)</h2>
<p>Преди да разпаднем отделните формати, разработчиците трябва да разберат фундаменталната разлика между <strong>компресия за съхранение на диск</strong> и <strong>хардуерна блокова компресия на GPU</strong>.</p>
<h3 id="1-компресия-на-диск-png12-jpeg9-webp10">1. Компресия на диск (<a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, <a href="https://docs.fileformat.com/image/webp/">WebP</a>)</h3>
<p>Формати като PNG използват беззагубно ентропийно кодиране (DEFLATE). Докато PNG спестява огромно количество пространство на SSD или сървър за изтегляне, съвременните GPU <strong>не могат директно да семплират PNG файлове</strong>. Когато вашият игрови двигател зарежда PNG:</p>
<ul>
<li>CPU‑т трябва да декомпресира файла в сурови, некомпресирани 32‑битови RGBA пиксели в системната памет.</li>
<li>Неконпресираната битмапа се качва във VRAM.</li>
<li>Текстура с размер 2048×2048 заема приблизително <strong>16 MB VRAM</strong>, независимо дали PNG‑ът е бил 1 MB или 3 MB на диска.</li>
</ul>
<h3 id="2-блокова-компресия-на-gpu-bcn-astc-etc2">2. Блокова компресия на GPU (BCn, ASTC, ETC2)</h3>
<p>Посветените GPU формати компресират фиксирани блокове пиксели (обикновено блокове от 4×4 пиксела) в по‑малки битови представяния. Графичният хардуер взема проби от тези блокове директно във VRAM без декомпресия от страна на CPU:</p>
<ul>
<li>Директен произволен достъп до VRAM без никакво натоварване от декомпресия по време на изпълнение.</li>
<li>Същата текстура 2048×2048, използваща BC7/ASTC, заема само <strong>приблизително 4 MB VRAM</strong> (намаление с 75 %).</li>
<li>Мипмапите могат да бъдат вградени директно в контейнерния файл.</li>
</ul>
<p>Контейнери като <strong>DDS</strong> и <strong>KTX</strong> са създадени специално за обвиване на тези GPU‑нативни формати, докато <strong>PNG</strong> и <strong>TGA</strong> изпълняват различни роли по‑рано в процеса.</p>
<h2 id="1-dds14-directdraw-повърхност">1. <a href="https://docs.fileformat.com/image/dds/">DDS</a> (DirectDraw повърхност)</h2>
<p>Представен от Microsoft заедно с DirectX 7, форматът <strong>DirectDraw Surface (.dds)</strong> е неоспоримият индустриален работен кон за разработка на игри за PC, Xbox и конзоли.</p>
<h3 id="технически-характеристики">Технически характеристики</h3>
<ul>
<li><strong>Тип на контейнера:</strong> Вграден GPU текстурен контейнер.</li>
<li><strong>Поддържана компресия:</strong> BC1 до BC7 (Block Compression / DXT семейство), некопресирани RGBA, формати с плаваща запетая (BC6H за HDR).</li>
<li><strong>Ключови възможности:</strong> Предварително генерирани мипмапи, кубични карти, масиви от текстури, обемни (3D) текстури.</li>
</ul>
<h3 id="защо-разработчиците-използват-dds">Защо разработчиците използват DDS</h3>
<p>DDS по същество е директно изхвърляне на паметта на това, което графичният хардуер изисква. При зареждане на DDS текстура с предварително генерирани мипмапи, двигателят изцяло пропуска CPU декомпресията и изпраща директно копиране на паметта чрез Direct3D или Vulkan към GPU. Това премахва теснините в CPU по време на стрийминг и зареждане на нива.</p>
<h3 id="предимства">Предимства</h3>
<ul>
<li><strong>Изключително бързо време за зареждане:</strong> Нулеви CPU цикли за декомпресия по време на изпълнение.</li>
<li><strong>Предварително генерирани мипмапи:</strong> Офлайн генерирането на мипмапи позволява контролирано от художника филтриране, изостряне и нормализация на нормалните карти през различните нива на детайл (LOD).</li>
<li><strong>Ефективност на VRAM:</strong> Използва нативно индустриално-стандартни BC алгоритми за компресия.</li>
</ul>
<h3 id="недостатъци">Недостатъци</h3>
<ul>
<li><strong>DirectX/Windows Bias:</strong> Исторически свързано с екосистемите на Microsoft, въпреки че е широко поддържано в съвременните настолни енджини.</li>
<li><strong>Lossy Compression Artifacts:</strong> Блоковото компресиране (особено BC1 върху нормални карти) може да въведе блокираност, освен ако не се използва BC5/BC7.</li>
<li><strong>Limited Mobile Support:</strong> Мобилните GPU обикновено предпочитат ASTC или ETC2 пред настолните BC формати.</li>
</ul>
<h2 id="2-tga16-truevision-targa">2. <a href="https://docs.fileformat.com/image/tga/">TGA</a> (Truevision Targa)</h2>
<p>Създаден през 1984 г., <strong>TGA (.tga)</strong> е некомпресиран или кодирано с дължина на поредица (RLE) растерен графичен файлов формат, който остава стабилна основа в производствения процес повече от три десетилетия.</p>
<h3 id="технически-характеристики-1">Технически характеристики</h3>
<ul>
<li><strong>Container Type:</strong> Некомпресиран битмап за създаване/обмен.</li>
<li><strong>Bit Depths:</strong> 8, 16, 24 и 32 бита на пиксел (RGB + отделен 8-битов Alpha канал).</li>
<li><strong>Compression:</strong> Няма или базово RLE (Run-Length Encoding).</li>
</ul>
<h3 id="защо-разработчиците-използват-tga">Защо разработчиците използват TGA</h3>
<p>TGA се предпочита от техническите артисти и програмистите на енджини заради изключителната си архитектурна простота. За разлика от PNG, който вгражда алфа канал в сложни филтърни матрици, TGA запазва цветовите данни и алфа каналите напълно отделени и непокътнати.</p>
<p>Когато създавате персонализирани маски (например, пакетиране на Roughness в червено, Metallic в зелено, Ambient Occlusion в синьо и Height в алфа), TGA гарантира, че между каналите няма да се появи деликатно алгоритмично смесване или изтичане на цвят.</p>
<h3 id="предимства-1">Предимства</h3>
<ul>
<li><strong>Прецизна верност на данните:</strong> Точно запазване на стойностите на каналите; идеално за текстури с пакетирани канали ORM (Occlusion-Roughness-Metallic).</li>
<li><strong>Лесно парсиране:</strong> Вътрешните инструменти за пайплайн, персонализирани експортери и автоматизирани скриптове могат да четат и записват TGA файлове с минимален брой редове код.</li>
<li><strong>Универсална поддръжка на DCC:</strong> Maya, 3ds Max, Blender, Substance 3D и Photoshop предлагат вграден, безпроблемен експорт на TGA.</li>
</ul>
<h3 id="недостатъци-1">Недостатъци</h3>
<ul>
<li><strong>Огромни размери на файловете:</strong> Значително натоварване в Git/Perforce репозитории и бавни скорости на изтегляне при разпределени екипи.</li>
<li><strong>Неподходящо за изпълнение:</strong> Не може да се използва директно от GPU като компресиран формат; трябва да бъде конвертирано от енджина по време на компилация.</li>
</ul>
<h2 id="3-png12-portable-network-graphics">3. <a href="https://docs.fileformat.com/image/png/">PNG</a> (Portable Network Graphics)</h2>
<p><strong>PNG (.png)</strong> е най-разпознаваният в света беззагубен формат за изображения, използващ компресия zlib/DEFLATE за пакетиране на богати 24-битови и 32-битови изображения в изключително малки файлове.</p>
<h3 id="технически-характеристики-2">Технически характеристики</h3>
<ul>
<li><strong>Тип контейнер:</strong> Беззагубен формат за създаване и доставка.</li>
<li><strong>Битова дълбочина:</strong> До 16 бита на канал (48-битов RGB, 64-битов RGBA).</li>
<li><strong>Компресия:</strong> Беззагубен алгоритъм DEFLATE.</li>
</ul>
<h3 id="защо-разработчиците-използват-png">Защо разработчиците използват PNG</h3>
<p>PNG служи като основен формат за разпространение на UI активи, спрайтове, рекламни материали и междинни изходни текстури. За 2D игри, създадени в Unity, Godot или Unreal Engine, PNG осигурява ясна пикселна точност с безупречни маски за прозрачност.</p>
<h3 id="предимства-2">Предимства</h3>
<ul>
<li><strong>Компактен отпечатък в хранилището:</strong> Силно намалява размерите при изтегляне на проекта в сравнение с некопресирания TGA.</li>
<li><strong>Беззагубено цветово качество:</strong> Нулеви артефакти от компресия върху висококонтрастни ръбове и векторни илюстрации.</li>
<li><strong>Вродена алфа прозрачност:</strong> Чисто 8-битово поддържане на алфа канал за сложни полупрозрачни UI елементи и листове с частици.</li>
</ul>
<h3 id="недостатъци-2">Недостатъци</h3>
<ul>
<li><strong>Тежко декодиране от CPU:</strong> Декомпресирането на големи PNG файлове по време на изпълнение забавя кадрите и увеличава използването на памет преди качване към GPU.</li>
<li><strong>Капани при предварително умножена алфа:</strong> Някои графични редактори отхвърлят RGB данните в напълно прозрачни пиксели, което разваля изтичането на текстурите и причинява тъмни контури около спрайтовете.</li>
<li><strong>Zero VRAM Savings:</strong> Декомпресира се до пълна 32-битова сурова памет в GPU, освен ако не бъде обработен от текстурния кукър на двигателя.</li>
</ul>
<h2 id="4-ktx-khronos-texture-и-ktx-20">4. KTX (Khronos Texture) и KTX 2.0</h2>
<p>Разработени от Khronos Group — управляващият орган зад Vulkan, OpenGL и glTF — <strong>KTX (.ktx)</strong> и <strong>KTX 2.0</strong> представляват съвременния отворен стандарт за крос‑платформени GPU текстури.</p>
<h3 id="технически-характеристики-3">Технически характеристики</h3>
<ul>
<li><strong>Container Type:</strong> Стандартизиран отворен контейнер за GPU текстури.</li>
<li><strong>Compression Support:</strong> Поддръжка на компресия: Basis Universal (ETC1S и UASTC), ASTC, BCn, ETC2.</li>
<li><strong>Key Capabilities:</strong> Универсално транскодиране на текстури, мипмапи, кубични карти, масивни текстури, интеграция с glTF.</li>
</ul>
<h3 id="защо-разработчиците-използват-ktx">Защо разработчиците използват KTX</h3>
<p>KTX 2.0 решава фрагментирания проблем с крос‑платформената компресия. Традиционно разработчиците трябваше да доставят DDS (BCn) за настолни/конзолни системи и ASTC/ETC2 за мобилни устройства/таблети.</p>
<p>С KTX 2.0 и <strong>Basis Universal</strong>:</p>
<ol>
<li>Съхранявате текстурите в компактен, универсално компресируем формат.</li>
<li>По време на изпълнение хардуерът на клиента транскодира файла директно в какъвто и да е блоков формат, който предпочита локалният GPU (например BC7 на GeForce RTX, ASTC на iPhone, ETC2 на по-старо Android устройство).</li>
<li>Суперкомпресията (Zstandard) създава файлове, по-малки от JPEG на диска, които се транскодират в родни VRAM блокове за милисекунди.</li>
</ol>
<h3 id="предимства-3">Предимства</h3>
<ul>
<li><strong>Истински крос-платформен стандарт:</strong> Работи безпроблемно на Vulkan, WebGL, WebGPU и мобилни устройства.</li>
<li><strong>Basis Universal транскодиране:</strong> Една единствена сборка на активи цели настолни, мобилни и браузърни платформи без дублиране на експортираните текстури.</li>
<li><strong>Първокласен glTF спътник:</strong> Необходим за съвременни 3D уеб преживявания, мета-вселенски двигатели и отворени рендеринг конвейери.</li>
</ul>
<h3 id="недостатъци-3">Недостатъци</h3>
<ul>
<li><strong>Зрялост на инструменти за конвейер:</strong> Изисква съвременни вериги за изграждане (като <code>toktx</code> от пакета KTX-Software); по-стари проприетарни двигатели може да нямат готова интеграция.</li>
<li><strong>Натоварване от транскодера:</strong> Леко закъснение при транскодиране по време на изпълнение (въпреки това е порядъци по-бързо от пълното софтуерно декодиране на PNG).</li>
</ul>
<h2 id="сравнение-лице-в-лице">Сравнение лице в лице</h2>
<table>
<thead>
<tr>
<th style="text-align:left">Функция / Критерий</th>
<th style="text-align:left"><a href="https://docs.fileformat.com/image/dds/">DDS</a></th>
<th style="text-align:left"><a href="https://docs.fileformat.com/image/tga/">TGA</a></th>
<th style="text-align:left"><a href="https://docs.fileformat.com/image/png/">PNG</a></th>
<th style="text-align:left">KTX / KTX 2.0</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>Основен случай на употреба</strong></td>
<td style="text-align:left">PC/Конзолен Runtime</td>
<td style="text-align:left">Създаване на източници &amp; Маски</td>
<td style="text-align:left">2D Спрайтове &amp; Изходно изкуство</td>
<td style="text-align:left">Крос-платформен &amp; Уеб Runtime</td>
</tr>
<tr>
<td style="text-align:left"><strong>Директно GPU семплиране</strong></td>
<td style="text-align:left">Да (Нативно)</td>
<td style="text-align:left">Не</td>
<td style="text-align:left">Не</td>
<td style="text-align:left">Да (Нативно или Транскодирано)</td>
</tr>
<tr>
<td style="text-align:left"><strong>Компресия на VRAM</strong></td>
<td style="text-align:left">Да (BC1–BC7)</td>
<td style="text-align:left">Не (Некомпресирано)</td>
<td style="text-align:left">Не (Некомпресирано)</td>
<td style="text-align:left">Да (ASTC, BCn, Basis)</td>
</tr>
<tr>
<td style="text-align:left"><strong>Предварително създадени мипмапи</strong></td>
<td style="text-align:left">Да</td>
<td style="text-align:left">Не</td>
<td style="text-align:left">Не</td>
<td style="text-align:left">Да</td>
</tr>
<tr>
<td style="text-align:left"><strong>Размер на диска</strong></td>
<td style="text-align:left">Умерен</td>
<td style="text-align:left">Много високо</td>
<td style="text-align:left">Малък</td>
<td style="text-align:left">Изключително малък (Basis + Zstandard)</td>
</tr>
<tr>
<td style="text-align:left"><strong>Екосистема</strong></td>
<td style="text-align:left">DirectX / Десктоп двигатели</td>
<td style="text-align:left">DCC софтуер / Източници за обработка</td>
<td style="text-align:left">Универсални уеб и 2D двигатели</td>
<td style="text-align:left">Vulkan, WebGPU, glTF</td>
</tr>
</tbody>
</table>
<h2 id="практически-наръчник-създаване-на-идеалния-процес-за-активи">Практически наръчник: Създаване на идеалния процес за активи</h2>
<p>Как трябва да организирате тези четири формата в комерсиален производствен процес? Ето как водещите студиа структурират своите текстурни процеси:</p>
<pre tabindex="0"><code>[DCC &amp; 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 &amp; 2D Sprites)       ──────►  Generates Mipmaps &amp; Block    ──────►  KTX2 (Vulkan / WebGPU / Mobile)
   • PSD / EXR (HDR &amp; masters)   ──────►  Compression Automatically   
</code></pre><ol>
<li><strong>Изходни активи:</strong> Съхранявайте главните файлове и данните, пакетирани по канали, в <strong>TGA</strong> или <strong>PNG</strong> в хранилищата на вашия проект, за да гарантирате некорумпирана цветова информация.</li>
<li><strong>PC и конзолни версии:</strong> Преработете вашите изходни текстури в <strong>DDS</strong> файлове, използвайки BC7 за високодетайлни албедо/нормални карти и BC4/BC5 за едноканални и двуканални маски.</li>
<li><strong>Кросплатформени, уеб и мобилни версии:</strong> Опаковайте 3D активите по време на изпълнение в <strong>KTX 2.0</strong>, за да използвате универсално транскодиране за Android, iOS и WebGPU, без да поддържате отделни клонове за изкуство.</li>
<li><strong>Потребителски интерфейси:</strong> Запазете UI текстурите по време на изпълнение или в ясни некопресирани формати, или в беззагубни атласи на двигателя, получени от високорезолюционни <strong>PNG</strong> изходни файлове.</li>
</ol>
<h2 id="често-задавани-въпроси-faq">Често задавани въпроси (FAQ)</h2>
<h3 id="в1-може-ли-игровият-енджин-да-вземе-проба-от-png-директно-от-видеопаметта">В1. Може ли игровият енджин да вземе проба от PNG директно от видеопаметта?</h3>
<p><strong>A1:</strong> Не; GPU‑тата не могат да разчетат PNG компресията, затова двигателите трябва да декомпресират PNG файловете в необработени 32‑битови битмапи в паметта, преди да ги качат във VRAM.</p>
<h3 id="в2-защо-техническите-артисти-предпочитат-tga-пред-png-за-пакетиране-на-маски">В2. Защо техническите артисти предпочитат TGA пред PNG за пакетиране на маски?</h3>
<p><strong>A2:</strong> TGA съхранява чисти, некомпресирани данни за каналите без разливане на цветовете или разрушително филтриране на прозрачността по ръбовете в отделните RGB и Alpha канали.</p>
<h3 id="в3-кой-алгоритъм-за-блоково-компресиране-трябва-да-използвам-в-dds-контейнер-за-нормални-карти">В3. Кой алгоритъм за блоково компресиране трябва да използвам в DDS контейнер за нормални карти?</h3>
<p><strong>A3:</strong> Използвайте <strong>BC5</strong> (компресия в двумерното тангенциално пространство) за нормални карти, за да запазите чистата кривина на повърхността без стандартните артефакти от блокове BC1.</p>
<h3 id="в4-какво-прави-ktx-20-подобрият-от-dds-за-кросплатформени-игри">В4. Какво прави KTX 2.0 по‑добрият от DDS за кросплатформени игри?</h3>
<p><strong>A4:</strong> KTX 2.0 поддържа Basis Universal, което позволява на един файл да се транскодира в движение в настолни формати BCn или мобилни формати ASTC/ETC при стартиране.</p>
<h3 id="в5-увеличава-ли-предварителното-генериране-на-мипмапи-в-dds-или-ktx-файлове-размера-на-диска">В5. Увеличава ли предварителното генериране на мипмапи в DDS или KTX файлове размера на диска?</h3>
<p><strong>A5:</strong> Да, включването на пълни мипмап вериги добавя приблизително 33% повече необработени данни към файла, но премахва трептенето по време на изпълнение, подобрява локалността на кеша и ускорява производителността на рендериране от GPU.</p>
<h2 id="вижте-още">Вижте още</h2>
<ul>
<li><a href="https://blog.fileformat.com/en/image/webp-vs-avif-vs-jpeg-xl-which-image-format-should-developers-choose-in-2026/">WebP срещу AVIF срещу JPEG XL: Най‑добър формат за изображения за разработчици през 2026</a></li>
<li><a href="https://blog.fileformat.com/image/difference-between-bmp-and-png/">Разлика между BMP и PNG</a></li>
<li><a href="https://blog.fileformat.com/2021/08/19/apng-vs-bmp-which-image-file-format-is-better/">APNG срещу BMP: Кой формат за изображения е по‑добър?</a></li>
<li><a href="https://blog.fileformat.com/2021/08/25/raster-vs-vector-images-a-brief-comparison/">Растер срещу векторни изображения: Кратко сравнение</a></li>
</ul>
<!-- raw HTML omitted -->
]]></content:encoded>
    </item>
    
  </channel>
</rss>
