Tehnike iscrtavanja sjena

Postoji više načina kojima se mogu prikazati sjene, a svaki ima sebi svojstvene prednosti i mane. Neki načini, tj. neke tehnike teže jednostavnosti, naspram onih koji teže što većoj realnosti.

Fotorealistične sjene postižu se algoritmima praćenja zrake (eng. ray-tracing), čime se prati stvaran put koji bi svjetlo prošlo od izvora do pogleda.

Projektivne sjene su jedan od jednostavnih načina u kojem se objekt projicira na ravnu površinu te tako stvara sjenu. Projektivne sjene rade na ravnim površinama, no ne i za zakrivljenima koje primaju sjenu.

Teksture sjena su način prikaza sjena kod kojeg se generira slika objekta koji baca sjenu iz pogleda svjetla te se ta tekstura projektira na objekt koji prima sjenu. Ovime se postižu sjene i na zakrivljenim površinama, no problem se ponekad javlja kada objekt treba bacati sjenu na samog sebe.

Kad se sve zbroji i oduzme, a po potrebi i pomnoži, podijeli, kvadrira i korjenuje, jasno je da najrealniji načini prikaza iziskuju i velike resurse, te su često za uobičajene prilike neisplativi. Zato najčešće u računalnoj grafici susrećemo dvije tehnike prikaza sjena:

  • Tehnika volumnih sjena (eng. shadow volumes)
  • Tehnika mapa sjena (eng. shadow mapping)

Tehnika volumnih sjena temelji se na - što nije ni neočekivano ni teško za pogoditi - volumenu sjena. Izračunava se ekstenzija siluete objekta viđene iz izvora svjetla i detektira se jesu li objekti unutar ili izvan tog volumena.

Tehnika volumnih sjena

Glavna prednost tehnike volumnih sjena u odnosu na tehniku mapa sjena jest sprječavanje pojavljivanja perspektivnog aliasinga i akni sjena. Volumne sjene nisu ograničene na prostor pogleda svjetla kao što je to kod mapa sjena, tj. sjene se mogu generirati za čitav prostor.

Ipak, postoje i nedostaci. Ovom tehnikom nije moguće napraviti točnu sjenu za objekte s transparentnom teksturom. Budući da se volumen sjene generira iz siluete objekta, transparentne teksture ne utječu na oblik siluete. Zbog toga objekti s transparentnim teksturama (npr. lišće, ograda) neće imati pravilnu sjenu. Sličan problem pojavljuje se i kod otvorenih objekata, jer ako objekt nije u potpunosti zatvoren, za otvoreni dio također će se generirati volumen sjene i prikaz više neće biti točan.

Uz sve to, u nedostatke svakako treba uračunati i dodatno trošenje resursa izračunavanjem volumena, a važna je stvar i što se kod ove tehnike zahtijeva da se čitava scena iscrtava tri puta (iscrtavanje dubinske mape, iscrtavanje volumena, iscrtavanje u spremnik slike), dok se kod tehnike mapa sjena sve može učiniti i sa dva iscrtavanja, iako treba priznati da je i tu česta pojava treće (odnosno, drugo po redoslijedu) iscrtavanje.