Fișiere DDS. Descrierea formatului DXTn, capabilitățile sale, recomandări simple pentru alegerea formatului de compresie.
Straturile 2D dintr-un fișier DDS pot fi stocate în format RGBA și pot fi comprimate în formate DXT1, DXT3, DXT5.
DXT1 - pentru imaginile RGB cu alfa pe un bit, patru biți pe pixel (compresie de 8 ori față de RGBX).
DXT3 și DXT5 - pentru imagini cu un canal alfa, de obicei DXT5 este mai bun. 8 biți pe pixel, compresie de patru ori.
Mai multe despre metoda de comprimare, la nivelul de biți:
Imaginea este împărțită în blocuri de 4x4. Pentru fiecare bloc, sunt stocate două culori pe 16 biți. Când se despachetează două culori x, y, se generează patru culori consecutive, paleta [x, # 8532; x + # Y, y, # 8531; x + # Y, y]. După culori de 2 * 16 biți, în această paletă sunt stocați 4 x 4 indici de două biți. Ordinea celor două culori (color_0> color_1?) Conține, de asemenea, un pic de informație. Dacă tsvet_0> tsvet_1, panoul este unul dintre alfa valori utilizate ca zero, iar celelalte 3 culori [x, ½x + ½y, y] - paleta opacă de culori. În total, se obțin 64 biți pe bloc de 4x4 pixeli.
În DXT3 și DXT5, canalul rgb este stocat la fel ca în DXT1. Alpha în DXT3 este stocată pur și simplu ca rotunjită de la 8 biți la 4 biți per pixel, fără compresie. În DXT5 pentru alfa, se folosește o metodă de comprimare similară metodei pentru RGB în DXT1. Două valori alfa pe bloc 4x4. Dacă color_0> color_1 sunt create 6 valori alfa intermediare în paletă și două valori separate 0 și 1 pentru alfa sunt create separat. Dacă culoarea_0 <= цвет_1, то из двух крайних значений альфы создаётся 8 промежуточных. После двух 8-битных граничных значений альфы идёт 16 3-битных индексов. DXT5 обычно гораздо точней сохраняет альфу и рекомендуется вместо DXT3.
Artefactele după comprimare nu sunt vizibile, cel mai adesea ele pot fi văzute în blocuri în care se converg 3 nuanțe diferite (3 nuanțe în 2 pe un bloc nu se potrivesc).
DXT2 este decodificat, precum și DXT3, DXT4 și DXT5, numai programul ar trebui să interpreteze RGB ca deja înmulțit cu alfa. Ele conțin steagul "alfa premultiplied", care poate fi de interes pentru ceasul universal al imaginilor, dar nu și pentru motorul de joc.
Acesta este un program de compresie de compresie lossy trebuie să selecteze două culori perfecte pentru 4x4 pătrat, astfel încât diferite instrumente pot converti cu diferite rapoarte ale activității / rezultatelor (a se vedea Sec. Ilustrare la sfârșitul anului). NVidia se mândrește că nvcompress-ul său este cel mai bun, nu știu cât de corect este. Pe ochi, rezultatul este mai bun decât TEXCONV din SDK-ul D3D.
Când se comprimă DXT în zip, este logic să se separe indicele și paleta, să se păstreze incrementările. Apoi, măriți puțin. Din păcate, el nu a măsurat, ci doar cântat. Dacă ați încercat, scrieți, este interesant.
Puteți să mișcați ușor cursorul de calitate / compresie în acest fel: înainte de a utiliza compresia DXT, utilizați o textură de 2 ori mai mare, dacă există una. De exemplu, pentru a reduce ceea ce artistul nu a atras de la 4096x4096 la 128x128x, dar la 256x256.
Dacă imaginea este fără alfa sau doar cu un alfa bit, utilizați DXT1. Cu alfa-DXT5. Pe "desene animate", imagini cu detalii mici vor fi artefacte, pe texturi realiste cu zgomot și compresie de gradient este imperceptibilă.