Ero sivun ”Teksturointi” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
ew:n texture filtering-artikkelista
Rivi 9:
Koska teksturoitava pinta voi olla missä asennossa ja millä etäisyydellä katsojaan nähden tahansa, tekstuurin pikselit (eli tekselit) ja kuvan pikselit eivät yleensä vastaa toisiaan. Esimerkiksi jos kappale on kaukana ja siten kuvataan ruudulle pienenä, voi jokaista kuvan pikseliä kohden olla useampia tekstuurin pikseleitä. Vastaavasti jos pinta on lähellä, yksi tekstuuripikseli voi kuvautua useaksi kuvan pikseliksi. Suodatus eli filtteröinti tarkoittaa kuvan pikselien päättelemistä tekstuurin pikseleistä.
 
===Suodatus===
Yksinkertaisin ja nopein suodatustapa on [[lähimmän naapurin menetelmä]], jossa haetaan lähimmän tekstuuripikselin väriarvo. Näin yksinkertainen suodatus aiheuttaa kuitenkin ongelmia silloin kun kappaleet ovat erityisen kaukana, jolloin tekstuurit muuttuvat pikselimössöksi, eli signaalinkäsittelyn termein kuva [[laskostuminen|laskostuu]], ja silloin kun kappaleet ovat erityisen lähellä, jolloin tekstuurit palikoituvat. Kehittyneempiä mutta myös hieman enemmän tehoa vieviä ovat [[bilineaarinen interpolointi|bilineaarinen]] ja [[trilineaarinen interpolointi]]. Kehittynein nykyisten kuluttajatasoisten näytönohjainten tukema suodatusmenetelmä on [[anisotrooppinen suodatus]]. Kaukana olevien tekstuurien laskostumisongelmaa voi korjata myös mipmapping-tekniikalla, jossa tekstuuri vaihdetaan esimuodostettuun pienempään versioon kappaleen siirtyessä kauemmas. Tämä parantaa myös suodatusalgoritmien tehoa.
 
Yksinkertaisin ja nopein suodatustapa on [[lähimmän naapurin menetelmä]], jossa haetaan lähimmän tekstuuripikselin väriarvo. Näin yksinkertainen suodatus aiheuttaa kuitenkin ongelmia silloin kun kappaleet ovat erityisen kaukana, jolloin tekstuurit muuttuvat pikselimössöksi, eli signaalinkäsittelyn termein kuva [[laskostuminen|laskostuu]], ja silloin kun kappaleet ovat erityisen lähellä, jolloin tekstuurit palikoituvat. Kehittyneempiä mutta myös hieman enemmän tehoa vieviä ovat [[bilineaarinen interpolointi|bilineaarinen]] ja [[trilineaarinen interpolointi]]. Kehittynein nykyisten kuluttajatasoisten näytönohjainten tukema suodatusmenetelmä on [[anisotrooppinen suodatus]]. Kaukana olevien tekstuurien laskostumisongelmaa voi korjata myös mipmapping-tekniikalla, jossa tekstuuri vaihdetaan esimuodostettuun pienempään versioon kappaleen siirtyessä kauemmas. Tämä parantaa myös etenkin monimutkaisempien suodatusalgoritmien tehoa, koska niiden ei tarvitse laskea kaukana olevien kappaleiden pikseleitä lukuisten tekstuuripikseleiden keskiarvona. Mipmapping ei kuitenkaan auta palikoitumiseen tekstuurien ollessa lähellä.
 
Kehittyneempi mutta myös hieman enemmän tehoa vievä on [[bilineaarinen interpolointi (tietokonegrafiikka)|bilineaarinen interpolointi]], jossa pikseli lasketaan neljän lähimmän tekstuuripikselin etäisyyksillä painotettuna keskiarvona. Tämä parantaa lähellä olevien tekstuurien ulkonäköä (tosin myös sumentaa niitä). Laskostumisongelmaa bilineaariseen interpolointii sen sijaan ei korjaa, joten siihen yhdistetään lähes aina mipmapping.
 
[[Trilineaarinen interpolointi (tietokonegrafiikka)|Trilineaarinen interpolointi]] huomioi bilineaariseen interpolointiin lisäksi lähimmän toisen mipmapping-tason pikselit, mikä korjaa häiriötä mipmappien vaihtumiskohdassa. Kehittynein nykyisten yksityiskäyttäjätasoisten näytönohjainten tukema suodatusmenetelmä on [[anisotrooppinen suodatus]], joka interpoloi pikseleitä katselukulman mukaan muodostetun puolisuunnikkaan mukaan trilineaarisen ja bilineaarisen interpoloinnin käyttämän neliön sijaan. Tämä parantaa tulosta epäsuorissa kulmissa ja kaukaisuudessa.
 
===Tekstuuri===
 
Käytettävä tekstuuri on yleensä kaksiulotteinen bittikarttakuva, mutta se voi olla myös yksi- tai kolmiulotteinen. Se voidaan ottaa valokuvasta, piirtää tai konstruoida matemaattisena funktiona, ja esittää normaalina bittikarttataulukkona tai esim. fourier-sarjoina. Tekstuuri voi olla myös muu kuin kuva: esimerkiksi [[bump mapping]]-tekniikassa vaikutetaan valaistuksessa käytettäviin parametreihin.