S3TC ( S3 Texture Compression ) [1] (også kaldet DXTn eller DirectX Texture Compression - DXTC ) er en teksturkomprimeringsmetode , der oprindeligt er udviklet af Iourcha et al. hos S3 Graphics [2] til brug i Savage 3D computergrafikacceleratoren .
Kompressionsmetoden ligner påfaldende den tidligere publicerede Color Cell Compression [3] . DXTC er et teksturkomprimeringsformat med tab med en fast outputstørrelse. Takket være komprimeringsalgoritmen er S3TC-formatet blevet et meget brugt teksturkomprimeringsformat til hardware-accelereret 3D-computergrafik. Siden integrationen af S3TC i Microsoft DirectX 6.0 og OpenGL 1.3 er dette komprimeringsformat blevet ekstremt udbredt. Der er mindst 5 varianter af S3TC-formatet (fra DXT1 til DXT5 inklusive). [fire]
DXT1-formatet giver den stærkeste komprimering af alle S3TC-varianter: hver blok på 16 pixels konverteres til 64 bit. Den bruger også to forskellige 16-bit RGB-farveværdier (5:6:5) og en 2-bit 4x4 opslagstabel. DXT1 understøtter ikke alfakanaler.
Når du bruger DXT3-formatet, konverteres hver blok på 16 pixels til 128 bit: 64 bit alfakanaldata og 64 bit farvedata. DXT3-formatet er velegnet til billeder og teksturer med en skarp ændring i alfakanalen, det vil sige gennemsigtighed.
Når du bruger DXT5-formatet, konverteres hver blok på 16 pixels til 128 bit: 64 bit alfakanaldata og 64 bit farvedata. DXT5-formatet er velegnet til billeder og teksturer med jævne, gradvise ændringer i alfakanalen.
Hvis , så beregnes seks andre alfaværdier således, at , , , , , og .
Ellers, hvis , beregnes fire alfaværdier således, at , , , og hvor og .
FOURCC Codec ID | Blok kompression | Beskrivelse | Formultipliceret alfa | Kompressions forhold | Understøttede teksturer |
---|---|---|---|---|---|
DXT1 | BC1 | 1-bit alfa / uigennemsigtig | N/A | 6:1 (for 24 bit kildebillede) | simpel ikke-alfa |
DXT2 | BC2 | eksplicit alfa | Ja | 4:1 | skarp alfa |
DXT3 | BC2 | eksplicit alfa | ingen | 4:1 | skarp alfa |
DXT4 | BC3 | Interpoleret alfa | Ja | 4:1 | gradient alfa |
DXT5 | BC3 | Interpoleret alfa | ingen | 4:1 | gradient alfa |
Fordele:
Fejl: