Kas yra tekstūros suspaudimas?

Kalbant apie kompiuterinę grafiką, tekstūros glaudinimas yra būdas padaryti vaizdą, kuris bus naudojamas kaip objekto tekstūra, paprastai trimatėje (3D) scenoje, ir sumažinti vaizdui reikalingos atminties kiekį. Skirtingai nuo tradicinių vaizdų glaudinimo algoritmų, tekstūros glaudinimo metodai stengiasi išlaikyti suglaudintą vaizdą atmintyje, tuo pačiu leidžiant programai pasiekti konkrečius vaizdo pikselius, nereikalaujant visiškai išspausti vaizdo. Tai pasiekiama keliais būdais, įskaitant blokų sutrumpinimo kodavimą (BTC), nors atminties vietos taupymas programos vykdymo metu paprastai turi būti subalansuotas su procesoriaus naudojimo padidėjimu arba vaizdo kokybės pablogėjimu, atsirandančiu dėl nuostolingo glaudinimo. Dažniausiai skirtingų grafikos plokščių ir kitų įrenginių gamintojai įdiegia tekstūros glaudinimo palaikymą tiesiai į aparatinę įrangą, todėl sukuriami keli įprasti glaudinimo algoritmai su skirtingų techninės įrangos gamintojų pavadinimais.

Viena iš priežasčių, kodėl tekstūrų glaudinimas buvo sukurtas ir tapo įprasta 3D grafikos technika, yra ta, kad gali prireikti kelių dešimčių gigabaitų atminties, kad būtų galima išsaugoti nesuspaustų vaizdo tekstūrų scenas, skirtas žiūrėti didesnės raiškos monitoriuose. Be to, nešiojamieji skaitmeniniai įrenginiai paprastai turi ribotą atminties kiekį, kuris kitu atveju negalėtų išlaikyti reikiamų vaizdų 3D scenai. Tekstūros suspaudimas sumažina sistemos atminties kiekį, todėl galima naudoti daugiau tekstūrų arba aukštesnės kokybės tekstūrų.

Pats paprasčiausias tekstūros suspaudimo tipas yra žinomas kaip bloko sutrumpinimo kodavimas. Šis metodas paima vaizdą ir padalija jį į mažus pikselių blokus, bloke surandant dvi spalvas, kurios yra labiausiai nutolusios nuo spalvų erdvės perspektyvos. Tada tikriesiems vaizdo taškams bloke priskiriama skaitinė reikšmė, nurodanti jų spalvą dviejų kraštutinių spalvų atžvilgiu. Schema suglaudina vaizdą, nes bitų kiekis, reikalingas taško nuokrypiui nuo spalvų bloke išsaugoti, yra mažesnis nei reikalingas faktinei spalvai išsaugoti. Gautas suspaudimas taip pat suteikia galimybę prireikus indeksuoti pikselius tiesiai iš suglaudinto vaizdo.

Atsižvelgiant į aparatinę įrangą, programinę įrangą ir kitus veiksnius, tekstūros suspaudimas gali įvykti vykdymo metu arba gali būti atliktas iš anksto ir išsaugotas kaip failas. Vykdant dinamiškai sukurtos tekstūros visada turi būti suspaustos. Suglaudintos tekstūros įkėlimas iš failo iš pradžių gali būti greitesnis, tačiau taip pat gali kilti problemų, jei aparatinė įranga nepalaiko konkretaus glaudinimo tipo.