Uvod
U računalnoj grafici riječ tekstura (eng. texture map) odnosi se u užem smislu na sliku kojom se opisuje površina nekog materijala. Tekstura u širem smislu može biti bilo kakav skup (polje) podataka čiji se elementi (eng. texel) pridružuju površini nekog lika pri iscrtavanju i predstavljaju neka obilježja te površine.
Tekstura tako može biti jednodimenzionalna (jedan red texela), dvodimezionalna (npr. slika)
ili trodimenzionalna (volumna tekstura).
Postupak preslikavanja teksture na površinu virtualnog
objekta zove se teksturiranje (eng. texture
mapping). Preslikavanje (eng. mapping)
se obavlja tako da se pojedinim vrhovima (eng. vertex) poligona dodijele koordinate koje odgovaraju položaju
pridruženog elementa teksture u polju teksture. Ovo preslikavanje može se izvoditi
na različite načine, a koordinate ne moraju biti statične tj. mogu se mijenjati
ovisno o pogledu, vremenu ili na neki drugi način.
Osim samog preslikavanja teksture, vrlo je bitno i što se sve
može napraviti s dobivenim podatkom. Najčešća primjena teksture je za
određivanje boje materijala u nekoj točki. Međutim tekstura može predstavljati
i bilo koje drugo obilježje materijala koje želimo prikazati. Tako na primjer
teksturom možemo određivati sjajnost materijala, hrapavost materijala i čak
dobiti izgled detaljnih neravnina na inače ravnoj površini.
Napretkom grafičkog sklopovlja postalo je popularno koristiti
više tekstura odjednom pri čemu svaka opisuje neko različito obilježje površine
na koju se preslikava te se tako dobiju vrlo uvjerljive simulacije stvarnih
materijala. Taj se postupak naziva višestruko teksturiranje (eng. multitexturing) i podržavaju ga sve
modernije grafičke kartice.
Uporabom programirljivih sklopova u grafičkom protočnom
sustavu (jedinice za sjenčanje, eng. Shader
Unit) programer može sam odrediti kako će koja tekstura utjecati na izgled
virtualnog modela koji se prikazuje.
U ovom će radu biti obrađeno nekoliko postupaka preslikavanja
tekstura, višestruko teksturiranje te nekoliko zanimljivih učinaka koji se mogu
dobiti primjenom tih postupaka.
Svi će primjeri biti ostvareni na programirljivim grafičkim
procesorima te napisani u programskom jeziku GLSL koji će također biti pobliže
opisan u prvom poglavlju.