Postupci teksturiranja upotrebom grafičkog procesora

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.