4. Novi pristup volumenima sjena

4.1. Uvod

 

            Cilj nam je bio stvoriti algoritam koji će obilježavanje zasjenjenih dijelova scene provoditi jednako kao da iscrtavamo običnu mrežu. Tada će se volumen sjene moći iscrtati u jednom koraku, a nezgodna provjera položaja kamere više neće biti potrebna. Na taj ćemo način pri manipuliranju volumenom sjene imati na raspolaganju sve napredne funkcije današnjih grafičkih kartica, budući da njegovo proračunavanje neće biti potrebno već će  cijeli posao obavljati na grafička kartica.

Za razliku od Haidmanova algoritma, spremnik za obilježavanje nećemo koristiti kao brojač povećavajući mu vrijednost za pozitivne strane volumena sjene, a smanjujući za negativne. Također, nećemo pozornost usmjeriti samo na područje između zasjenjenog  objekta i objekta koji sjeni (STENCILPASS), ili samo na unutrašnjost zasjenjenog objekta (Z-FAIL), već ćemo provoditi operacije i u jednom i u drugom području. Kako smo odlučili da problem mora biti riješen bez računanja volumena sjene, nećemo moći razlikovati prednje od stražnjih strana volumena sjene. To znači da će se stražnje strane volumena sjene morati iscrtavati s jednakim parametrima iscrtavanja kao i prednje. Zbog toga se cijeli proces obilježavanja scene može provesti u jednom koraku jer ne moramo mijenjati parametre obilježavanja. Rješenje problema leži u pronalasku odgovarajućih parametara iscrtavanja.

            Na slici 4.1. prikazana je dvodimenzionalna reprezentacija problema sa slike 3.13. Uvedena su područja (opisana velikim slovima) da bi se lakše mogao shvatiti algoritam.

 

Slika 4.1. 2D reprezentacija problema sa slike 4.6.: A) područje objekta koji baca sjenu; B) područje između objekata – STENCILPASS područje; C) područje sjene; D) unutrašnjost objekta na kojeg je bačena sjena – Z-FAIL područje.

 

            Na slikama 4.2. i 4.3 prikazane se prednje i stražnje strane volumena sjene u 2D prostoru, tako da lakše možemo vidjeti koja su područja zahvaćena prilikom njihovog iscrtavanja.

 

Slika 4.2. Prednja strana volumena sjene vidljiva u 2D.

 

Slika 4.3. Stražnja strana volumena sjene vidljiva u 2D.

 

            Ako pažljivije pogledamo slike 4.2. i 4.3 možemo vidjeti da će se u području D operacija Z-FAIL izvršiti prilikom iscrtavanja i prednje i stražnje strane volumena sjene. S druge strane, u području B, STENCILPASS operacija biti će također izvršena dva puta. Područje scene (C) karakterizirano kombinacijom te dvije operacije. Problem se javlja u području trokuta koji baca sjenu (područje A). Ako je taj trokut orijentiran prema promatraču, na tom području nedostajati će nam prednja strana volumena sjene. A ako je orijentiran od promatrača nedostajati će mu dio stražnje strane volumena sjene.


 

4.2. Pronalazak parametara

4.3. Izrada mreže volumena sjene

4.4. Postavljanje matrica

4.5. Metode ubrzanja algoritma

4.6. Poznati problemi

4.7. Zahtjevi algoritma