Tekstūros filtravimas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Peršokti į: navigaciją, paiešką

Kompiuterinėje grafikoje, tekstūros filtravimas yra procesas, kurio metu yra nustatoma, tekstūra dengiamo paviršiaus kiekvieno taško spalva, naudojant artimiausių tekstūros taškų spalvas. Tekstūrų filtravimas reikalingas todėl nes ekrane atvaizduojamo paviršiaus dydis priklauso nuo to paviršiaus atstumo iki virtualios kameros. Dengiant paviršių tekstūra, tekstūros paveikslėlį reikia padidinti arba sumažinti, kad jis atitiktų paviršiaus dydį. Tekstūros filtravimas yra supaprastintas sumažinto/padidinto paveikslėlio glodinimas, naudojamas kai vaizdai turi būti generuojami didele sparta. Pavyzdžiui, jei virtuali kamera yra labai toli nuo dengiamo paviršiaus, visa tekstūra gali sutilpti į vieną paviršiaus tašką, tačiau mažinant tekstūrą įprastu metodu, reiktų nuskaityti visus tekstūros taškus, ir juos sukombinavus, gauti dengiamo paviršiaus taško spalvą. Realaus laiko užduotyse, tokia operacija yra neleistinai ilga.

Metodai[taisyti | redaguoti kodą]

Artimiausio kaimyno interpoliacija[taisyti | redaguoti kodą]

Šiame metode kiekvienam paviršiaus taškui parenkama to tekstūros taško spalva, kuris yra arčiausiai atitinkamo paviršiaus taško centro. Šis metodas yra greičiausias, tačiau gaunama blogos kokybės vaizdas.

Artimiausio kaimyno interpoliacija su tekstūrų dydžių žemėlapiu (mipmap)[taisyti | redaguoti kodą]

Šiame metode, naudojama tekstūrų dydžių žemėlapis (kiekviena tekstūra yra pridedama įvairiais dydžiais). Paviršiaus taškų spalva parenkama naudojant artimiausio kaimyno interpoliaciją, iš to tekstūros paveikslėlio, kurio dydis yra artimiausias dengiamam paviršiui. Šis metodas naudoja daugiau atminties, nes kiekviena tekstūra yra įrašyta keliais dydžiais, tačiau gaunami geresnės kokybės vaizdai.

Bilinijinis filtravimas[taisyti | redaguoti kodą]

Šiame metode nustatant paviršiaus taško spalvą, naudojama keturių artimiausių tekstūros taškų vidurkis. Vidurkinant taškai padauginami iš svorinių koeficientų, nustatomų pagal jų nuotolį. Šis metodas dažniausiai naudojamas kartu su tekstūrų dydžių žemėlapiu (naudojant tą tekstūros paveikslėlį, kurio dydis yra artimiausias dengiamam paviršiui).

Trilinijinis filtravimas[taisyti | redaguoti kodą]

Šis filtravimo metodas ištaiso netolygumus atsirandančius bilinijiniame filtravime su tekstūrų žemėlapiu (kai ant į tolį besitesiančio paviršiaus, aiškiai matoma riba tarp paviršiaus dalių, kurioms buvo naudota skirtingo dydžio tekstūra). Trilinijiniame filtravime, viskas vyksta taip pat kaip ir bilinijiniame, tačiau naudojama ne tas tekstūros paveikslėlis, kurio dydis yra artimiausias, bet yra tiesiškai interpoliuojama iš dviejų gretimų artimiausių paveikslėlių.

Anisotropinis filtravimas[taisyti | redaguoti kodą]

Šiame filtravimo metode, naudojama trapecija (kituose metoduose imamas kvadratas), ir tada pritaikomas trilinijinis filtravimas. Šis metodas veikia lėčiausiai, tačiau juo gaunami geriausi rezultatai.