S3TC ( S3 Texture Compression ) [1] (také nazývaná DXTn nebo DirectX Texture Compression - DXTC ) je metoda komprese textur původně vyvinutá Iourchou et al. v S3 Graphics [2] pro použití v akcelerátoru počítačové grafiky Savage 3D .
Metoda komprese je nápadně podobná dříve publikované Colour Cell Compression [3] . DXTC je ztrátový formát komprese textur s pevnou výstupní velikostí. Díky kompresnímu algoritmu se formát S3TC stal široce používaným formátem komprese textur pro hardwarově akcelerovanou 3D počítačovou grafiku. Od integrace S3TC do Microsoft DirectX 6.0 a OpenGL 1.3 se tento kompresní formát extrémně rozšířil. Existuje minimálně 5 druhů formátu S3TC (od DXT1 do DXT5 včetně). [čtyři]
Formát DXT1 poskytuje nejsilnější kompresi ze všech variant S3TC: každý blok 16 pixelů je převeden na 64 bitů. Používá také dvě různé 16bitové barevné hodnoty RGB (5:6:5) a 2bitovou vyhledávací tabulku 4x4. DXT1 nepodporuje alfa kanály.
Při použití formátu DXT3 je každý blok 16 pixelů převeden na 128 bitů: 64 bitů dat alfa kanálu a 64 bitů barevných dat. Formát DXT3 je vhodný pro obrázky a textury s ostrou změnou v alfa kanálu, tedy průhledností.
Při použití formátu DXT5 je každý blok 16 pixelů převeden na 128 bitů: 64 bitů dat alfa kanálu a 64 bitů dat barev. Formát DXT5 je vhodný pro obrázky a textury s plynulými, postupnými změnami v alfa kanálu.
Jestliže , pak se vypočítá šest dalších hodnot alfa tak, že , , , , a .
V opačném případě, if , se vypočítají čtyři hodnoty alfa tak, že , , , a where a .
ID kodeku FOURCC | Bloková komprese | Popis | Přednásobená alfa | Kompresní poměr | Podporované textury |
---|---|---|---|---|---|
DXT1 | BC1 | 1bitová alfa / neprůhledná | N/A | 6:1 (pro 24bitový zdrojový obraz) | jednoduché non-alfa |
DXT2 | BC2 | explicitní alfa | Ano | 4:1 | ostrá alfa |
DXT3 | BC2 | explicitní alfa | Ne | 4:1 | ostrá alfa |
DXT4 | BC3 | Interpolované alfa | Ano | 4:1 | gradient alfa |
DXT5 | BC3 | Interpolované alfa | Ne | 4:1 | gradient alfa |
výhody:
nedostatky: