Metoda povratnog traga. Razvoj VirtualRay motora. Refleksija od glatke površine

Tehnike praćenja zraka danas se smatraju najmoćnijim metodama za stvaranje realističnih slika. Univerzalnost metoda praćenja uvelike je posljedica činjenice da se temelje na jednostavnim i jasnim konceptima koji odražavaju naše iskustvo percepcije svijeta oko nas.

Pogledajmo kako nastaje slika. Slika nastaje svjetlošću koja ulazi u kameru. Pustimo mnogo zraka iz izvora svjetlosti. Nazovimo ih primarnim zrakama. Neke od tih zraka će odletjeti u slobodni prostor, a neke će udariti u predmete. Zrake se na njima mogu lomiti i odbijati. U tom će slučaju dio energije snopa biti apsorbiran. Lomljene i reflektirane zrake tvore mnogo sekundarnih zraka. Tada će se te zrake ponovno lomiti i odbijati i stvarati novu generaciju zraka. Na kraju će neke od zraka pogoditi kameru i formirati sliku.

Postoje algoritmi koji rade prema ovom algoritmu. Ali oni su izuzetno neučinkoviti, budući da većina zraka koje izlaze iz izvora ne dopiru do kamere. A prihvatljiva slika se dobiva ako tragate veliki broj zraka, što će trajati jako dugo. Ovaj algoritam se zove izravno praćenje zraka.

Metoda obrnutog praćenja zraka može značajno smanjiti potragu za svjetlosnim zrakama. Ovu su metodu 1980-ih razvili Whitted i Kaye. U ovoj metodi, zrake se ne prate iz izvora, već iz kamere. Tako se prati određeni broj zraka jednaka rezoluciji slike.

Pretpostavimo da imamo kameru i ekran koji se nalazi na udaljenosti h od nje. Podijelimo ekran na kvadrate. Zatim ćemo naizmjenično crtati zrake od kamere do središta svakog kvadrata (primarne zrake). Pronađimo sjecište svake takve zrake s objektima scene i među svim sjecištima odaberimo ono koje je najbliže kameri. Zatim, primjenom željenog modela osvjetljenja, možete dobiti sliku scene. Ovo je najjednostavnija metoda praćenja zraka. Omogućuje vam samo rezanje nevidljivih rubova.

Ali možemo ići dalje. Ako želimo simulirati fenomene kao što su refleksija i lom, moramo pokrenuti sekundarne zrake iz najbližeg sjecišta. Na primjer, ako površina reflektira svjetlost i savršeno je ravna, tada je potrebno reflektirati primarnu zraku od površine i poslati sekundarnu zraku u tom smjeru. Ako je površina neravna, tada je potrebno pokrenuti mnogo sekundarnih zraka. To se ne radi u programu jer će to uvelike usporiti praćenje.

Ako je predmet proziran, tada je potrebno konstruirati sekundarnu zraku tako da prilikom loma proizvodi izvornu zraku. Neka tijela mogu imati svojstvo difuznog loma. U ovom slučaju ne nastaje jedna, već mnogo lomljenih zraka. Kao i kod razmišljanja, ovo zanemarujem.

Dakle, primarna zraka, nakon što je pronašla sjecište s objektom, općenito se dijeli na dvije zrake (reflektirana i lomljena). Zatim se te dvije zrake dijele na još dvije i tako dalje.

Glavni postupak obrnutog praćenja zraka u mom programu je postupak Ray. Ima sljedeću strukturu:

Ako je generiranje snopa jednako maksimalnoj dubini rekurzije, tada vraćamo prosječnu svjetlinu za sve komponente. Ako ne, onda idite dalje

Određujemo najbliži trokut s kojim se zraka siječe.

Ako nema takvog trokuta, vratite boju pozadine, ako postoji, krenite dalje.

Ako je ploha s kojom je pronađeno sjecište reflektirajuća, tada formiramo reflektiranu zraku i pozivamo proceduru Zraka rekurzivno s generiranjem zrake uvećanom za 1.

Ako se površina s kojom smo pronašli sjecište lomi, tada formiramo lomljenu zraku i rekurzivno pozivamo proceduru Zraka s povećanjem generiranja zrake za 1.

Određujemo konačno osvjetljenje piksela, uzimajući u obzir položaj izvora, svojstva materijala, kao i intenzitet reflektirane i lomljene zrake.

Već sam govorio o brojnim ograničenjima metode praćenja kada smo govorili o difuznom lomu i neravnim zrcalima. Pogledajmo neke druge.

Samo posebni objekti - izvori svjetlosti - mogu osvijetliti scenu. Oni su točkasti i ne mogu apsorbirati, lomiti ili odbijati svjetlost.

Svojstva reflektirajuće površine sastoje se od dvije komponente - difuzne i zrcalne.

Kod difuzne refleksije uzimaju se u obzir samo zrake iz izvora svjetlosti. Ako izvor osvjetljava točku kroz zrcalo (sa zečićem), tada se smatra da točka nije osvijetljena.

Spekularnost se također dijeli na dvije komponente.

refleksija - uzima u obzir refleksiju od drugih objekata (ne izvora svjetlosti)

specular - uzima u obzir odsjaj od izvora svjetlosti

Praćenje ne uzima u obzir ovisnosti o valnoj duljini svjetlosti:

indeks loma

koeficijent apsorpcije

koeficijent refleksije

Budući da ne modeliram difuznu refleksiju i lom, neću moći dobiti pozadinsko osvjetljenje. Stoga uvodimo minimalno pozadinsko osvjetljenje. Često vam jednostavno omogućuje značajno poboljšanje kvalitete slike.

Algoritam za praćenje omogućuje vam crtanje vrlo kvalitetnih sjena. Ovo neće zahtijevati mnogo prerade algoritma. Morat ćete tome nešto dodati. Prilikom proračuna osvjetljenja točaka, potrebno je u svaki od izvora svjetla postaviti “Frontu sjene”. "Front sjene" je zraka koja provjerava postoji li nešto između točke i izvora. Ako između njih postoji neproziran predmet, onda je točka u sjeni. Ovo znači da ovaj izvor, ne pridonosi konačnom osvjetljavanju točke. Ako proziran objekt leži, tada se intenzitet izvora smanjuje. Crtanje sjena oduzima puno vremena. Dakle, u nekim situacijama one su onemogućene.

Moj program ima mogućnost omogućiti izglađivanje slike. Antialiasing je ono što radi za određivanje boje piksela. Ne lansira se jedna zraka, već četiri i određuje se prosječna vrijednost boje tih zraka. Ako je potrebno pronaći boju piksela (i,j), tada se 4 zrake šalju u točke na ravnini ekrana s koordinatama (i-0.25,j-0.25), (i-0.25,j+0.25), (i+0,25,j-0,25) , (i+0,25,j+0,25).

Metode praćenja zraka (Zraka Trasiranje) Danas se smatraju najmoćnijim i najsvestranijim metodama za stvaranje realističnih slika. Postoji mnogo primjera implementacije algoritama praćenja za kvalitetan prikaz najsloženijih trodimenzionalnih scena. Može se primijetiti da je univerzalnost metoda praćenja uvelike posljedica činjenice da se temelje na jednostavnim i jasnim konceptima koji odražavaju naše iskustvo percepcije svijeta oko nas.

Riža. 8.12. Modeli refleksije: a – idealno zrcalo, b – nesavršeno zrcalo, c – difuzno, d – zbroj difuznog i spekularnog, d – inverzni, f – zbroj difuznog, spekularnog i inverznog

Kako vidimo okolnu stvarnost? Prvo, moramo odlučiti što uopće možemo vidjeti. To se proučava u posebnim disciplinama, a donekle je i filozofsko pitanje. Ali ovdje ćemo pretpostaviti da okolni objekti imaju sljedeća svojstva u odnosu na svjetlost:

    zračiti;

    reflektirati i apsorbirati;

    prolaze kroz sebe.

Riža. 8.13. Zračenje – a – ravnomjerno u svim smjerovima, b – usmjereno

Svako od ovih svojstava može se opisati određenim skupom karakteristika. Na primjer, zračenje se može karakterizirati intenzitetom, smjerom, spektrom. Zračenje može doći iz relativno točkastog izvora (daleka zvijezda) ili iz izvora difuzne svjetlosti (recimo, iz rastaljene lave koja izbija iz vulkanskog kratera). Zračenje se može širiti duž prilično uskog snopa (fokusirana laserska zraka) ili u konusu (reflektor), ili ravnomjerno u svim smjerovima (Sunce), ili nešto treće. Svojstvo refleksije (apsorpcija) može se opisati karakteristikama difuznog raspršenja i zrcalne refleksije. Prozirnost se može opisati slabljenjem intenziteta i lomom.

Raspodjela svjetlosne energije duž mogućih smjerova svjetlosnih zraka može se prikazati pomoću vektorskih dijagrama, u kojima duljina vektora odgovara intenzitetu (sl. 8.12 – 8.14).

U prethodnim odlomcima već smo se upoznali s vrstama refleksije koje se najčešće spominju - zrcalnim i difuznim. Rjeđe se u literaturi spominje obrnuto zrcalo ili anti-ogledalo izporaz, kod kojih najveći intenzitet refleksije odgovara smjeru prema izvoru. Neke vrste vegetacije na površini Zemlje, promatrane s visine rižinih polja, imaju obrnuti zrcalni odraz.

Dva ekstremna, idealizirana slučaja refrakcije prikazana su na slici. 8.13.

Neki stvarni objekti lome zrake na mnogo složenije načine, kao što je staklo prekriveno ledom.

Jedan te isti predmet stvarnosti može se percipirati kao izvor svjetlosti ili se, drugačije gledano, može smatrati objektom koji samo reflektira i propušta svjetlost. Na primjer, kupola oblačnog neba u nekoj trodimenzionalnoj sceni može se modelirati kao prošireni (distribuirani) izvor svjetlosti, dok u drugim modelima isto nebo djeluje kao proziran medij osvijetljen iz smjera Sunca.

Riža. 8.14. Lom a – idealan, b – difuzan

Općenito, svaki je objekt opisan nekom kombinacijom gornja tri svojstva. Za vježbu pokušajte dati primjer predmeta koji istovremeno ima tri od ovih svojstava - emitira svjetlost i istovremeno reflektira i propušta svjetlost iz drugih izvora. Vaša će mašta vjerojatno smisliti druge primjere osim, recimo, užarenog stakla.

Sada pogledajmo kako nastaje slika scene koja sadrži nekoliko prostornih objekata. Pretpostavit ćemo da zrake svjetlosti izlaze iz točaka na površini (volumenu) emitiranih objekata. Takve zrake možemo nazvati primarnima – one osvjetljavaju sve ostalo.

Važna točka je pretpostavka da se svjetlosna zraka u slobodnom prostoru širi duž ravne linije (iako se u posebnim dijelovima fizike proučavaju i razlozi moguće zakrivljenosti). Ali u geometrijska optika Pretpostavlja se da se zraka svjetlosti širi pravocrtno dok ne naiđe na reflektirajuću površinu ili na granicu lomnog medija. Tako ćemo vjerovati.

Bezbrojne primarne zrake izlaze iz izvora zračenja u različitim smjerovima (čak ni laserska zraka ne može biti savršeno fokusirana - u svakom slučaju, svjetlost se neće širiti u jednoj idealno tankoj liniji, već u konusu, snopu zraka). Neke zrake odlaze u slobodni prostor, a neke (također ih je bezbroj) udaraju u druge objekte. Ako zraka udari u proziran predmet, ona se lomi i putuje dalje, dok se dio svjetlosne energije apsorbira. Slično, ako se na putu zrake naiđe na zrcalno reflektirajuću površinu, tada i ona mijenja smjer, a dio svjetlosne energije se apsorbira. Ako je objekt zrcaljen i istovremeno proziran (na primjer, obično staklo), tada će već biti dvije zrake - u ovom slučaju kažu da je zraka podijeljena.

Možemo reći da kao rezultat utjecaja primarnih zraka na objekte nastaju sekundarne zrake. Bezbrojne sekundarne zrake idu u slobodni prostor, ali neke od njih pogađaju druge objekte. Tako, reflektirajući se i lomeći više puta, pojedinačne svjetlosne zrake dolaze do točke promatranja - ljudskog oka ili optičkog sustava kamere. Očito je da neke od primarnih zraka izravno iz izvora zračenja također mogu doći do točke promatranja. Dakle, sliku prizora oblikuje određeni broj svjetlosnih zraka.

Boja pojedinih točaka slike određena je spektrom i intenzitetom primarnih zraka izvora zračenja, kao i apsorpcijom svjetlosne energije u objektima koji se susreću na putu odgovarajućih zraka.

Riža. 8.15. Shema praćenja zraka unatrag

Izravna implementacija ovog modela snimanja zrakom čini se teškom. Možete pokušati razviti algoritam za konstruiranje slike koristeći navedenu metodu. U takvom algoritmu potrebno je dati nabrajanje svih primarnih zraka i odrediti koje od njih pogađaju objekte i kameru. Zatim ponovite sve sekundarne zrake i uzmite u obzir samo one koje pogađaju objekte i kameru. I tako dalje. Ova se metoda može nazvati izravni praćenje zraka. Praktična vrijednost takve metode bit će upitna. Doista, kako uzeti u obzir beskonačan broj zraka koje idu u svim smjerovima? Očito je da je potpuno pretraživanje beskonačnog broja zraka u načelu nemoguće. Čak i ako to nekako svedemo na konačan broj operacija (na primjer, podijelimo cijelu sferu pravaca u kutne sektore i ne radimo s beskonačno tankim linijama, već sa sektorima), glavni nedostatak metode i dalje ostaje - mnoge nepotrebne operacije povezan s izračunom zraka, koje se tada ne koriste. Dakle, u svakom slučaju, pojavljuje se u sadašnjem vremenu.

metoda povratni trag zraka omogućuje značajno smanjenje prekomjernog ubijanja svjetlosnih zraka. Metoda je razvijena 80-ih godina; radovi koji se smatraju temeljnim su Witte-da I Kay. Prema ovoj metodi, zrake se prate ne od izvora svjetlosti, već u suprotnom smjeru - od točke promatranja. Na taj način se uzimaju u obzir samo one zrake koje doprinose formiranju slike.

Pogledajmo kako možete dobiti rastersku sliku neke 3D scene koristeći backtracing. Pretpostavimo da je ravnina projekcije podijeljena na mnogo kvadrata - piksela. Izaberimo središnju projekciju sa središtem koje nestaje na određenoj udaljenosti od ravnine projekcije. Povucimo ravnu crtu iz nestajajućeg središta kroz sredinu kvadrata (piksela) ravnine projekcije (sl. 8.15). Ovo će biti primarna zraka povratnog traga. Ako ravna linija ove zrake pogodi jedan ili više objekata u sceni, odaberite najbližu točku sjecišta. Da biste odredili boju piksela slike, morate uzeti u obzir svojstva objekta, kao i kakvo svjetlosno zračenje pada na odgovarajuću točku objekta.

Riža. 8.16. Povratno praćenje za objekte koji imaju zrcalna i lomna svojstva

Ako se predmet zrcali (barem djelomično), tada konstruiramo sekundarnu zraku - upadnu zraku, s tim da prethodnu, primarnu trasiranu zraku smatramo zrakom refleksije. Gore smo razmotrili spekularnu refleksiju i dobili formule za vektor reflektirane zrake s obzirom na vektor normalne i upadne zrake. Ali ovdje znamo vektor reflektirane zrake, ali kako pronaći vektor upadne zrake? Da biste to učinili, možete upotrijebiti istu formulu zrcalne refleksije, ali definirajući traženi vektor upadne zrake kao reflektiranu zraku. Odnosno, odraz je suprotan.

Za idealno zrcalo dovoljno je zatim ocrtati samo sljedeću točku sjecišta sekundarne zrake s nekim objektom. Što znači izraz "savršeno ogledalo"? Pretpostavit ćemo da takvo zrcalo ima savršeno jednaku uglačanu površinu, pa jednoj odbijenoj zraci odgovara samo jedna upadna zraka. Ogledalo se može zamračiti, odnosno apsorbirati dio svjetlosne energije, ali se ipak drži pravila: jedna zraka upadne, druga se reflektira. Također možete uzeti u obzir "nesavršeno ogledalo". To bi značilo da je površina neravna. Smjer reflektirane zrake odgovarat će nekoliko upadnih zraka (ili obrnuto, jedna upadna zraka stvara više reflektiranih zraka), koje tvore određeni stožac, po mogućnosti asimetričan, s osi duž linije upadne zrake idealnog zrcala. Stožac odgovara određenom zakonu raspodjele intenziteta, od kojih je najjednostavniji opisan modelom Phong - kosinus kuta podignut na određenu potenciju. Nesavršeno zrcalo uvelike komplicira praćenje - potrebno je pratiti ne jednu, već više upadnih zraka i uzeti u obzir doprinos zračenja drugih objekata vidljivih iz dane točke.

Ako je predmet proziran, tada je potrebno konstruirati novu zraku, onu koja bi lomljenjem dala prethodnu trasiranu zraku. Ovdje također možemo iskoristiti reverzibilnost, što također vrijedi za lom. Za izračun vektora željene zrake, možete primijeniti formule koje smo gore razmotrili za vektor lomne zrake, pod pretpostavkom da se lom događa u suprotnom smjeru (slika 8.16).

Ako objekt ima svojstva difuzne refleksije i loma, tada je, u općem slučaju, kao i za neidealno zrcalo, potrebno pratiti zrake koje dolaze iz svih postojećih objekata. Za difuznu refleksiju, poznato je da je intenzitet reflektirane svjetlosti proporcionalan kosinusu kuta između vektora zrake iz izvora svjetlosti i normale. Ovdje izvor svjetlosti može biti bilo koji objekt vidljiv s dane točke koji može prenositi svjetlosnu energiju.

Ako se pokaže da trenutna povratna zraka ne siječe nijedan objekt, već je usmjerena u slobodni prostor, tada praćenje za tu zraku završava.

Praćenje zraka unatrag u obliku u kojem smo ga ovdje razmatrali, iako smanjuje pretragu, ne dopušta nam da se riješimo beskonačnog broja analiziranih zraka, zapravo, ova metoda nam omogućuje da odmah dobijemo jednu primarnu zraku praćenja unazad za svaku točku na slici. Međutim, možda već postoji beskonačan broj sekundarnih refleksijskih zraka. Tako, na primjer, ako objekt može reflektirati svjetlost od bilo kojeg drugog objekta, i ako su ti drugi objekti prilično veliki, tada koje točke emitirajućih objekata treba uzeti u obzir da bi se konstruirale odgovarajuće zrake, na primjer, u difuznoj refleksiji ? Očito, sve bodove.

U praktičnoj provedbi metode povratnog praćenja uvode se ograničenja. Neka od njih su neophodna da bi se načelno mogao riješiti problem sinteze slike, a neka ograničenja mogu značajno poboljšati performanse praćenja. Primjeri takvih ograničenja.

1. Među svim vrstama predmeta ističu se neki koje ćemo nazvati izvori svjetlo. Izvori svjetlosti mogu samo emitirati svjetlost, ali je ne mogu reflektirati ili lomiti (razmotrit ćemo samo točka izvori svjetlosti).

2. Svojstva reflektirajućih površina opisuju se zbrojem dviju komponenti - difuzne i zrcalne.

3. S druge strane, spekularnost se također opisuje s dvije komponente. Prvi (odraz) uzima u obzir refleksije od drugih objekata koji nisu izvori svjetlosti. Gradi se samo jedna zrcalno reflektirana zraka r za daljnje praćenje Druga komponenta ( Zrcalni ) znači odsjaj izvora svjetlosti. Da bi se to postiglo, zrake se usmjeravaju na sve izvore svjetlosti i određuju se kutovi koje te zrake tvore sa zrcalno reflektiranom povratnom zrakom (r). Kod zrcalne refleksije, boja točke na površini određena je bojom onoga što se reflektira. U najjednostavnijem slučaju ogledalo nema vlastitu površinsku boju.

4. Kod difuzne refleksije uzimaju se u obzir samo zrake iz izvora svjetlosti. Zrake sa zrcalno reflektirajućih površina se zanemaruju. Ako je zraka usmjerena na određeni izvor svjetlosti blokirana drugim objektom, tada je ta točka objekta u sjeni. Kod difuzne refleksije, boja osvijetljene točke na površini određena je vlastitom bojom površine i bojom izvora svjetlosti.

5. Za prozirne (1gap5rage() objekata, obično se ne uzima u obzir ovisnost indeksa loma o valnoj duljini. Ponekad se prozirnost općenito modelira bez refrakcije, odnosno smjera lomljene zrake ja poklapa se sa smjerom upadne zrake.

    Kako bi se uzelo u obzir osvjetljenje objekata svjetlošću koju raspršuju drugi objekti, uvodi se komponenta pozadine (nabient).

7. Za dovršetak iscrtavanja, uvodi se određena granična vrijednost osvjetljenja, koja više ne bi trebala pridonositi rezultirajućoj boji, ili je broj ponavljanja ograničen.

Prema Whitted modeli boja određene točke objekta određena je ukupnim intenzitetom

ja() = KaIa()C() + KdId()C() + KsIs() + KrIr() + KtIt()

gdje je λ valna duljina,

C (λ) - navedena početna boja točke objekta,

K a, K d, K s, K r ​​​​i K t - koeficijenti koji uzimaju u obzir svojstva određenog objekta kroz parametre pozadinskog osvjetljenja, difuznog raspršenja, zrcala, refleksije i prozirnosti,

ja a - intenzitet pozadinskog osvjetljenja,

ja d - intenzitet uzet u obzir za difuzno raspršenje,

ja s - intenzitet uzet u obzir za spekularnost,

ja r - intenzitet zračenja koje dolazi duž reflektirane zrake,

ja t - intenzitet zračenja koje dolazi duž lomljene zrake.

Intenzitet pozadinskog osvjetljenja (1 A ) za neki objekt je obično konstanta. Napišimo formule za druge intenzitete. Za difuznu refleksiju

ja d =

Gdje ja ja (λ) - intenzitet zračenja ja- ro izvor svjetla, θ ja- kut između normale na površinu predmeta i pravca na ja- vi izvor svjetlosti.

Za spekularnost:

ja d =

Gdje r- eksponent od jedan do nekoliko stotina (prema Phongovom modelu), α ja- kut između reflektirane zrake (back tracing) i smjera prema r"-om izvoru svjetlosti.

Intenzitet zračenja koje prolazi duž reflektirane zrake ( ja r), kao i duž lomljene zrake ( ja t ) , pomnožen s faktorom koji uzima u obzir slabljenje intenziteta ovisno o udaljenosti koju prijeđe zraka. Ovaj koeficijent je zapisan u obliku e - d Gdje d- prijeđena udaljenost, – parametar prigušenja koji uzima u obzir svojstva medija u kojem se zraka širi.

Za primarnu zraku potrebno je postaviti smjer koji odgovara odabranoj projekciji. Ako je projekcija središnja, tada se primarne zrake odvajaju od zajedničke točke; za paralelnu projekciju primarne zrake su paralelne. Zrak se može odrediti, na primjer, koordinatama početne i krajnje točke segmenta, koordinatom početne točke i smjera ili na neki drugi način. Postavljanje primarne zrake jednoznačno određuje projekciju prikazani prizor . Kod inverznog praćenja zraka nikakve transformacije koordinata uopće nisu potrebne. Projekcija se dobiva automatski - uključujući ne samo ravnu, već i, na primjer, cilindričnu ili sfernu. Ovo je jedna od manifestacija svestranosti metode praćenja.

Tijekom praćenja zraka potrebno je odrediti točke sjecišta ravne linije zraka s objektima. Način određivanja točke presjeka ovisi o kakvom se objektu radi i kako je prikazan u pojedinom grafičkom sustavu. Tako, na primjer, za objekte predstavljene u obliku poliedara i poligonalnih mreža, možete koristiti dobro poznate metode za određivanje točke sjecišta linije i ravnine, razmatrane u analitičkoj geometriji. Međutim, ako je zadatak odrediti sjecište zrake s licem, tada je također potrebno da pronađena sjecišna točka leži unutar konture lica.

Postoji nekoliko načina za provjeru pripada li proizvoljna točka poligonu. Razmotrimo dvije varijante u biti iste metode (slika 8.17).

Prvi način. Pronađene su sve točke u kojima kontura siječe vodoravnu liniju koja odgovara koordinati Y dane točke. Točke sjecišta poredane su uzlaznim redoslijedom vrijednosti X koordinata. Parovi točaka sjecišta čine segmente. Ako točka koja se provjerava pripada jednom od segmenata (za to se uspoređuju X koordinate dane točke i krajevi segmenata), tada je interna.

Riža. 8.17. Točka je unutarnja ako: a - točka pripada sekanti, b - broj sjecišta je neparan

Drugi način. Određuje se točka koja leži na istoj vodoravnoj liniji kao i ispitna točka, a zahtijeva se da leži izvan obrisa poligona. Pronađena vanjska točka i ispitna točka su krajevi horizontalnog segmenta. Određene su točke sjecišta ovog segmenta s konturom poligona. Ako je broj sjecišta neparan, to znači da je ispitna točka unutarnja.

Ako zraka siječe nekoliko objekata, odabire se najbliža točka u smjeru trenutne zrake.

Učinimo to opći zaključci o u vezi s metodom obrnutog praćenja zraka.

Pozitivne osobine

1. Svestranost metode, njezina primjenjivost za sintezu slika prilično složenih prostornih shema. Provodi mnoge zakone geometrijska optika. Jednostavno se provode razne projekcije.

2. Čak i skraćene verzije ovu metodu omogućuju vam da dobijete prilično realne slike. Na primjer, ako se ograničite samo na primarne zrake (od točke projekcije), tada to rezultira uklanjanjem nevidljivih točaka. Praćenje jedne ili dvije sekundarne zrake daje sjene, spekularnost i prozirnost.

3. Sve transformacije koordinata (ako ih ima) su linearne, tako da je vrlo jednostavno raditi s teksturama.

4. Za jedan piksel rasterske slike možete pratiti nekoliko blisko razmaknutih zraka, a zatim izračunati prosjek njihove boje kako biste eliminirali učinak stubišta (antialiasing).

5. Budući da se izračun jedne točke slike izvodi neovisno o drugim točkama, to se može učinkovito koristiti pri implementaciji ove metode u paralelnim računalnim sustavima u kojima se zrake mogu pratiti istovremeno.

Mane

1. Problemi s modeliranjem difuzne refleksije i refrakcije

2. Za svaku točku na slici potrebno je izvršiti mnogo računskih operacija. Ray tracing je jedan od najsporijih algoritama za sintezu slike.

Ministarstvo obrazovanja Ruske Federacije

Moskovski državni institut za elektroniku i matematiku

(Tehničko sveučilište)

Odjel za informiranje i komunikacije

tehnologije

Nastavni rad na temu:

“Analiza mogućnosti korištenja metode praćenja zraka u 3D modeliranju”

Završeno:

Gulijan Boris

Podzorov Ivan

Grupa C -35

Moskva 2010

1. 3D grafika. Uvod

3. Algoritmi praćenja zraka

4. Glavne prednosti i nedostaci praćenja zraka

5. Primjena metode praćenja zraka

6. Eksperiment.

Zadatak: "Analiza mogućnosti korištenja metode praćenja zraka u 3D modeliranju"

Izjava problema

Upoznati se s metodom praćenja zraka i njezinom primjenom u području 3D grafike, provesti eksperiment koristeći jedan od algoritama praćenja zraka.

U našem eksperimentu razmatramo:
1) performanse algoritma za praćenje zraka ovisno o broju poligona modela (kao model su uzete 3 kuglice: mat, prozirna i zrcalna).

2) Analiza dobivenih slika sa i bez praćenja zraka.

Softver Blender koristi se kao okruženje za eksperiment.

3D grafika. Uvod.

Trodimenzionalna grafika je dio računalne grafike, skup tehnika i alata namijenjenih prikazivanju trodimenzionalnih objekata. Najviše se koristi za stvaranje slika na ravnini ekrana ili lista tiskanih materijala u arhitektonskoj vizualizaciji, industriji zabave, tiskanim materijalima, kao iu znanosti, industriji i tehnologiji proširene stvarnosti.

Bilo koja 3D slika određena je sljedećim parametrima i objektima:

· Geometrija (konstruirao medels)

· Materijali (informacije o vizualnim svojstvima modela)

· Izvori svjetla (smjer, snaga, postavke spektra osvjetljenja)

· Virtualne kamere (odabir točke i kuta projekcije)

· Sile i udari (postavke za dinamička izobličenja objekata, uglavnom se koriste u animaciji)

· Dodatni efekti (objekti koji simuliraju atmosferske pojave: svjetlo u magli, oblaci, plamen itd.)

Cilj 3D modeliranja je opisati te objekte i postaviti ih na scenu pomoću geometrijske transformacije u skladu sa zahtjevima za buduću sliku.

Glavni problem 3D grafike i modeliranja je dobivanje što fotorealističnije slike uz minimalan utrošak računalnih resursa i vremena za obradu scene. Kako u različitim područjima postoje različite potrebe, stvaraju se različite ideje i algoritmi za rješavanje određenog problema. Jedna takva ideja je praćenje zraka, što ćemo razmotriti u našem radu.

Praćenje zraka naprijed i natrag

Ray tracing je metoda obrade 3D modela za proizvodnju fotorealistične slike koja uzima u obzir relativni položaj objekata, kao i fizička svojstva predmeta kao sposobnost refleksije i refrakcije.

Postoje 2 metode praćenja zraka: naprijed i natrag

Izravno praćenje zraka razmatra sve zrake iz izvora svjetlosti koje pogađaju objekte i naposljetku dopiru do oka promatrača. Ali ova metoda nije racionalna sa stajališta performansi, jer mora obraditi sve zrake okoline (izlazne i lomljene) u svim smjerovima, uključujući i one koje ne padaju na scenu vidljivu promatraču.

Kod obrnutog praćenja zraka, sve zrake potječu iz oka promatrača, čime se definira scena s objektima koji će se kasnije obraditi. Ova metoda omogućuje izbjegavanje obrade objekata koji ne spadaju u vidljivo područje, što značajno smanjuje količinu potrebnih izračuna.

Svi algoritmi praćenja zraka temelje se na metodi inverznog praćenja zraka.

Algoritmi praćenja zraka

Razmotrimo osnovni algoritam praćenja (slika 1). Uzmimo sferu kao objekt.

1. Za svaki piksel na ekranu ispaljuje se zraka iz oka promatrača.

2. Nakon što zraka presiječe objekt, određuje se:

· Prozirnost/neprozirnost objekta. Ako je predmet proziran, tada se lomna zraka emitira iz sjecišta; ako je neproziran, ne emitira se.

· Svjetlo/sjena. Od mjesta gdje zraka siječe sfere, zraka se emitira prema izvoru svjetlosti (ili naizmjenično za svaki izvor svjetlosti, ako ih je više). Ako ta zraka ne siječe druge neprozirne objekte ili površine, tada izvor svjetlosti izravno utječe na osvjetljenje određene točke. Ako postoji više izvora svjetlosti, tada se učinak određen RGB vrijednošću dane točke izračunava iz utjecaja svih zraka.

· Reflektivnost. Ako je objekt sposoban reflektirati zrake, tada se od točke gdje zraka siječe sferu, reflektirana zraka emitira prema objektima koji će se reflektirati u sferi.

Kao rezultat toga, dobivamo nekoliko vrsta zraka. Primarne zrake koriste se za određivanje vidljivosti objekta, a sekundarne zrake se dijele na sljedeće:

· lomne zrake;

· zrake sjene/svjetla;

Zrake refleksije.

Riža. 1 Dijagram algoritma za praćenje zraka


Svi ostali algoritmi temelje se na gore prikazanom algoritmu i dizajnirani su za optimizaciju izračuna.

kd-drvo

Algoritam za konstrukciju kd-stabla može se prikazati na sljedeći način (nazvat ćemo ga kuboidan engleska riječ "box" (kutija).

1. "Dodajte" sve primitive u granični okvir. To jest, izgraditi okvir koji ograničava sve primitive, koji će odgovarati korijenskom čvoru stabla.

2. Ako postoji nekoliko primitivnih elemenata u čvoru ili je dostignuta granica dubine stabla, dovršite konstrukciju.

3. Odaberite ravninu dijeljenja koja dijeli dani čvor na dva podređena čvora. Zvat ćemo ih desni i lijevi čvor stabla.

4. Dodajte primitive koje se sijeku s lijevim okvirom čvora u lijevi čvor, primitive koje se sijeku s okvirom desnog čvora u desni.

5. Za svaki čvor izvedite ovaj algoritam rekurzivno počevši od koraka 2.

Redovita rešetka

Cijeli 3D prostor podijeljen je u finu pravilnu mrežu koja se sastoji od N*N*N kockica. Ideja je da možete trčati samo kroz one kocke kroz koje je prošla zraka.

Metoda se ne koristi u praksi.

Dprednosti i mane

Osim činjenice da metoda praćenja zraka daje najfotorealističniju sliku, ona ima niz drugih prednosti:

1. Mogućnost renderiranja glatkih objekata bez njihove interpolacije s poligonalnim površinama (na primjer, trokutima).

2. Računalna složenost metode slabo ovisi o složenosti scene.

3. Visoka algoritamska mogućnost paralelizacije izračuna - možete pratiti dvije ili više zraka paralelno i neovisno.

4. S metodom praćenja zraka, refleksije se prikazuju savršeno (slika 2), i to bez složenih algoritama, jer sve izračunava glavni algoritam za renderiranje.

font-size:14.0pt"> Slika 2 Odrazi dviju zrcalnih kugli jedna u drugoj

Metoda praćenja zraka ima nedostatke uočene u svim algoritmima koji određuju opseg uporabe ove metode.

1. Glavni nedostatak ovog algoritma za renderiranje je njegova sporost. Međutim, algoritam praćenja zraka vrlo je paralelan i broj procesorskih jezgri raste svake godine, tako da bismo trebali vidjeti linearni rast performansi praćenja zraka. Ali ovaj pristup ne uzima u obzir sekundarne zrake (refleksije, lomove i detekciju sjenčanja), a renderiranje s primarnim zrakama ne pruža praktički nikakvo poboljšanje kvalitete slike u usporedbi s klasičnim algoritmom.

2. Problem sa sekundarnim zrakama je taj što nemaju apsolutno nikakvu koherenciju (kosmjernost). Prilikom prelaska s jednog piksela na drugi moraju se izračunati potpuno drugačiji podaci, što poništava sve uobičajene tehnike predmemoriranja koje su vrlo važne za dobre performanse. To znači da izračun sekundarnih zraka jako ovisi o kašnjenjima u memoriji.

3. Nedostatak hardverske podrške za metodu (svi GPU-i specijalizirani su za rasterizaciju).

4. Još jedan karakterističan problem Metoda praćenja zraka odnosi se na anti-aliasing (AA). Zrake se izvode kao jednostavna matematička apstrakcija, i stvarna veličina ne uzimaju u obzir. Test sjecišta trokuta jednostavna je Booleova funkcija koja daje odgovor da ili ne, ali ne daje detalje poput "zraka siječe trokut 40% puta." Izravna posljedica ovog učinka bit će pojava "ljestvi" (slika 3).

Riža. 3 izglađivanje sjene

I jedina tehnologija koja može dati dobri rezultati, računica je više zraka nego piksela, odnosno supersampling (Oversampling ili Anti-Aliasing) (renderiranje u većoj razlučivosti).

Također biste trebali imati na umu da brzina renderiranja i kvaliteta praćenja zraka uvelike ovise o optimizaciji koda.

Korištenje metode praćenja zraka

Zbog svojih značajki (fotorealistična slika, spori izračuni) ova se metoda koristi u područjima gdje je bitna kvaliteta slike, a ne vrijeme njezina renderiranja (u ovom slučaju najčešće se koriste kombinirane metode renderiranja, što poboljšava performanse ). Ova područja uključuju:

· 3D animacija;

· Specijalni efekti filmske industrije;

· Realno renderiranje fotografija;

· CAD sustavi.

Posebni uvjeti:

Poligonalna mreža skup je vrhova i poligona koji definiraju oblik prikazanog objekta.

Rendering - (engleski rendering - "vizualizacija") - proces dobivanja slike iz modela.

Ovdje je model opis bilo kojeg objekta ili pojave u strogom smislu specifičnog jezika ili kao struktura podataka. Takav opis može sadržavati geometrijske podatke, položaj točke promatrača, informacije o osvjetljenju, stupnju prisutnosti neke tvari itd.


Slika 4. poligonalna mreža

Eksperiment.

Kao softver za provođenje eksperimenta odabrali smo Blender 3D editor.

Lako ga je naučiti i sadrži sve potrebne funkcije:

· Renderiranje slike s mogućnošću spajanja i odspajanja tragača.

· Preuzorkovanje (anti-aliasing ili izglađivanje)

Izmjerili smo vrijeme potrebno za renderiranje 3 različite sfere (staklo, ogledalo i mat) na različitim Multeris Equals (svaka razina povećava broj poligona za 4 puta). Kada se razina povećala, vrijeme se računalo od 0.

0 " style="margin-left:48.35pt;border-collapse:collapse">

Lv. Multeris

Vrijeme renderiranja za svaku razinu. od 0

Bez RayT-a [c]

Sa RayT [c]

0,53

3,36

0,46

0,54

2,84

0,55

3,02

0,61

3,85

0,96

5,96

10,64

29,12

43,9

Tablica 1.

Renderiranje je napravljeno s maksimalnim parametrima kako bi se povećala razlika u brzini obrade.

Kao rezultat, vidimo da je vrijeme utrošeno na obradu tri sfere s razinom 4 (256 poligona na svakoj sferi) manje od vremena utrošenog na obradu sfera s razinom 2 (16 poligona svaka).


Slika 5. Poligonalne mreže za različite razine

Zaključak

Iz provedenog eksperimenta može se vidjeti da je vrijeme potrošeno na renderiranje 3 lopte pomoću praćenja zraka značajno veće od vremena utrošenog na renderiranje bez korištenja praćenja zraka. No, tijekom eksperimenta uočeno je zanimljivo opažanje: vrijeme obrade modela 3, 4 i 5 razina kraće je od vremena obrade modela na dvije razine.

Analiza dobivenih slika:
1) Na slici dobivenoj bez korištenja ray tracinga (u daljnjem tekstu A) jasno je da prozirna kugla ne daje efekt leće (koristeći alfa kanal), dok je na slici uz korištenje ray tracinga (u daljnjem tekstu B) transparentna lopta povećava objekte izvan njega (slika 6).

Riža. 6 prozirnih sfera (alfa kanal lijevo, praćenje zraka desno)


2) Na slici A nema zrcalne kugle, jer se dobivanje refleksije na njoj temelji na trasiranju zraka (slika 7).

Slika 7. Eksperimentalni model (alfa kanal iznad, trag zraka dolje).


3) Slika 8 pokazuje da se kod renderiranja bez korištenja ray tracinga osvjetljavaju unutarnje šupljine u koje, logično, svjetlost ne bi trebala prodrijeti.


Slika 8 Upad svjetlosti na konkavnu kuglu (A lijevo, B desno)

Iz ove analize jasno je da je kvaliteta slika pomoću ray tracinga značajno bolja od slika dobivenih bez njega, što opravdava korištenje ove metode u područjima gdje je bitna kvaliteta dobivene slike, a ne vrijeme njezine obrade.

Izravno praćenje. U metodi izravnog praćenja, generira se snop zraka koji napušta izvor u svim mogućim smjerovima.

Većina zraka koje emitira izvor ne dopire do prijemnika, pa stoga ne utječe na sliku koja se u njemu stvara. Samo vrlo mali dio zraka, nakon svih refleksija i loma, na kraju stigne do prijemnika, stvarajući sliku prizora u njegovim receptorima. Na hrapavim površinama pojavljuju se mnoge difuzno reflektirane zrake. Sve ih treba generirati i pratiti programski, što uvelike komplicira zadatak praćenja.

Prolazak zrake u neidealnom mediju prati raspršivanje i apsorpcija svjetlosne energije na njegovim mikročesticama. ove fizički procesi izuzetno teško adekvatno modelirati na računalu s njegovim ograničenim računalnim resursima. U praksi su ograničeni na korištenje koeficijenta prigušenja energije snopa po jedinici prijeđene udaljenosti. Slično, uvode se koeficijenti za smanjenje energije snopa tijekom njegove refleksije i loma na sučelju medija. Uzimajući u obzir ove koeficijente, prati se smanjenje energije svih primarnih i sekundarnih zraka dok lutaju prostorom scene. Čim energija određene zrake postane manja od određene apsolutne razine ili se smanji za određeni broj puta, praćenje te zrake prestaje.

Dakle, glavni Nedostaci metode izravnog praćenja su njegov visoki intenzitet rada i niska učinkovitost. Prilikom implementacije metode, većina rada na izračunavanju sjecišta zraka s objektima je uzaludna.

Praćenje unazad. Traceback metoda razvijena je 80-ih godina. Radovi Whitteda i Kaya smatraju se temeljnima.

Za odsijecanje zraka koje ne dopiru do prijamnika dovoljno je promatrača promatrati kao izvor povratnih zraka. Primarnom zrakom smatrat ćemo zraku V od promatrača do bilo koje točke na površini predmeta.

Koristeći gore navedene metode, izračunavaju se sekundarni, tercijarni itd. zrake. Kao rezultat toga, za svaku primarnu zraku gradi se stablo za praćenje, čije grane čine sekundarne zrake. Grana rute završava ako:

● zraka ide izvan scene,

● zraka se susreće s neprozirnim tijelom koje apsorbira svjetlost,

● zraka udara u izvor svjetlosti,

● intenzitet snopa pada ispod prag osjetljivosti,

● broj dijeljenja primarnih zraka postaje prevelik za raspoložive resurse stroja.

Rezultirajuća izravna svjetlosna energija (boja i intenzitet) koja ulazi u prijemnik iz smjera V, sastoji se od energija krajnjih vrhova stabla, uzimajući u obzir njihove gubitke tijekom širenja u optičkim medijima.


Traceback metoda zapravo akumulira sve zrake koje stvarno stignu do prijamnika iz određenog smjera, bez obzira na njihovo podrijetlo. To vam omogućuje da vidite i prikažete na ekranu:

● neprozirni predmeti koji apsorbiraju povratne zrake;

● prozirni predmeti kroz koje su promatraču zbog loma vidljivi drugi predmeti;

● refleksije objekata na zrcalnim površinama, uključujući odsjaj koji odgovara povratnim zrakama koje pogađaju izvor svjetlosti;

● sjene nastale na površinskim točkama koje su od izvora zaklonjene drugim objektima;

● razni drugi optički efekti.

Broj "probnih" povratnih zraka koje podliježu praćenju ograničen je brojem točaka na površinama objekata scene vidljivih s mjesta promatrača i odabranih posljednjim korakom ovisno o razlučivosti zaslona. Zbog toga je iznos računalnih troškova u metodi praćenja unatrag značajno smanjen u usporedbi s metodom praćenja unaprijed. Moguće je kombinirati obje metode kako bi se optimizirali algoritmi i smanjila njihova složenost.

Algoritmi praćenja su u prirodi rekurzivne procedure koja sama sebe poziva kada se pojavi sekundarna zraka (analizirana zraka se odbija ili lomi). Većina izračuni pri implementaciji metoda praćenja računaju na izračun sjecišta zraka s površinama, pa se stoga koriste za snimanje optički efekti u scenama s malim brojem objekata.

Prilikom primjene metode povratnog praćenja u praksi uvode se sljedeća ograničenja: . Neka od njih su neophodna da bi se načelno mogao riješiti problem sinteze slike, a neka ograničenja mogu značajno poboljšati performanse praćenja.

Ograničenja metode praćenja:

1. Od svih vrsta objekata istaknimo izvore svjetlosti. Mogu samo emitirati svjetlost, ali je ne mogu reflektirati ili lomiti. Obično se razmatraju točkasti izvori.

2. Svojstva reflektirajućih površina opisuju se zbrojem dviju komponenti: difuzne i zrcalne.

3. Spekularnost se pak također opisuje s dvije komponente. Prvi (refleksija) uzima u obzir refleksiju od drugih objekata koji nisu izvori svjetlosti. Gradi se samo jedna zrcalno reflektirana zraka r za daljnje praćenje. Druga komponenta (spekularna) označava odsjaj izvora svjetlosti. Da bi se to postiglo, zrake se usmjeravaju na sve izvore i određuju se kutovi koje te zrake tvore sa zrcalno reflektiranom povratnom trasirajućom zrakom ( r). Kod zrcalne refleksije, boja točke na površini određena je bojom onoga što se reflektira. U najjednostavnijem slučaju ogledalo nema vlastitu površinsku boju.

4. Kod difuzne refleksije uzimaju se u obzir samo zrake iz izvora svjetlosti. Zrake sa zrcalno reflektirajućih površina se zanemaruju. Ako je zraka usmjerena na određeni izvor svjetlosti blokirana drugim objektom, tada je ta točka objekta u sjeni. Kod difuzne refleksije, boja osvijetljene točke na površini određena je vlastitom bojom površine i bojom izvora svjetlosti.

5. Za prozirne objekte obično se ne uzima u obzir ovisnost indeksa loma o valnoj duljini. Ponekad se prozirnost modelira uopće bez refrakcije, tj. smjer lomljene zrake t poklapa se sa smjerom upadne zrake.

6. Kako bi se uzela u obzir osvijetljenost objekata svjetlošću raspršenom na drugim objektima, uvodi se komponenta pozadine (ambijent).

7. Da biste dovršili praćenje, unesite neke granična vrijednost osvjetljenje, koje više ne bi trebalo pridonositi rezultirajućoj boji, ili ograničavati broj ponavljanja.

Pozitivne značajke metode praćenja:

● svestranost, primjenjivost za sintezu slike prilično složenih prostornih scena. Utjelovljuje mnoge zakone optike. Jednostavno se ostvaruju razne projekcije;

● čak i skraćene verzije ove metode omogućuju dobivanje prilično realističnih slika. Na primjer, ako se ograničimo samo na primarne zrake (iz točke projekcije), onda to rezultira uklanjanjem nevidljivih točaka. Praćenje samo jedne ili dvije sekundarne zrake daje sjene, spekularnost i prozirnost;

● sve transformacije koordinata (ako ih ima) su linearne, tako da je vrlo lako raditi s teksturama;

● za jedan piksel rasterske slike, možete pratiti nekoliko blisko razmaknutih zraka, a zatim prosječiti njihovu boju kako biste eliminirali učinak aliasinga;

● budući da se izračun jedne točke slike izvodi neovisno o drugim točkama, to se može učinkovito koristiti pri implementaciji ove metode u paralelnim računalnim sustavima u kojima se zrake mogu pratiti istovremeno.

Nedostaci metode praćenja:

● problemi s modeliranjem difuzne refleksije i refrakcije;

● za svaku točku na slici potrebno je izvesti mnoge računske operacije. Ray tracing jedan je od najsporijih algoritama za sintezu slike.

Ne tako davno 4A Games, tvorac nevjerojatnih realne igrice Metro je objavio video koristeći Nvidijinu RTX tehnologiju koristeći METRO: EXODUS kao primjer. Ova grafička inovacija velik je i siguran korak naprijed u praćenju zraka. Ali što sve ovo znači?

Iza vela tajne

Krenimo od samog početka. Prvo, renderiranje praćenjem zraka jedna je od osnovnih vrsta vizualizacije koja se koristi u filmovima i različite vrste dizajn: od industrije do arhitekture. Odnosno, ono što vidite na web stranicama kao fotografije opreme je upravo 3D render.

Suština tehnologije svodi se na to da računalo simulira fizičko ponašanje svjetlosti računajući putanju konvencionalno pojedinačnih fotona svjetlosti, odnosno ako zraka padne na neki objekt, ona se u njemu ili lomi ili odbija od njega. pod jednim ili drugim kutom. Rezultat je određena putanja ove zrake svjetlosti, otuda i naziv "praćenje zraka".

Ova računalno generirana slika koju je stvorio Enrico Cerica koristeći OctaneRender prikazuje zrake, sjene i refleksije na složenoj površini poda

Jedini problem je što je potrebno puno zraka i za svaku od njih potrebno je više puta izračunati svaki sudar zrake s preprekama. Ovo je u biti jednostavno matematički problem. Najprije je potrebno izračunati gdje zraka udara u postojeći objekt, odnosno izračunati koliziju, zatim na temelju zadanih svojstava napraviti daljnje matematičke transformacije.


Pojednostavljena shema praćenja zraka

Na primjer, postoji mat površina s određenom određenom uvjetnom hrapavošću, ali nije apsolutno hrapava, a zraka s određenom vjerojatnošću odstupa od nje pod određenim kutom koji se razlikuje od kuta upada. Mora se uzeti u obzir da ako objekt ima svojstvo da bude beskonačno gladak, tada upadni kut jednak kutu refleksije. Ako svojstva površine ukazuju na zamagljenost, onda se to matematički ostvaruje odstupanjem kuta refleksije od kuta upada.

To je istina u životu; površina gotovo uvijek nije potpuno glatka. Dakle, kada svjetlost pogodi jednu ili drugu točku, ona se reflektira u odnosu na mjesto na površini, koje se može nekako zakrenuti u odnosu na ravninu koja nam se čini ravnom, a susjedna zraka se reflektira u potpuno drugom smjeru. Stoga postaje sasvim jasno da nema smisla modele objekata praviti pretjerano poligonalnima, pa su nepravilnosti određene svojstvima površine. Rezultat je sličan stvarnom raspršenju svjetlosti s mat površina.

Današnje igre koriste objekt koji izgleda kao da je prekriven nekom vrstom glazure. Zasigurno se svatko u igrama susreo s čudnim zidovima i podovima koji izgledaju kao da su namazani nekom vrstom sluzi. Dakle, s praćenjem zraka ne morate ovo raditi - površine mogu raspršiti svjetlost potpuno prirodno. Ovo je savršeno prikazano u demonstraciji; postoji niz područja od najzrcalnijih do najmatiranih.

Posebno je vidljivo da u mat područjima refleksija jako ovisi o blizini objekta površini. Odnosno, što je objekt dalje od površine, to postaje zamućeniji. To je važno svojstvo koje u životu niti ne primjećujemo, iako postoji.

Ali najvažnija stvar su sjene. Ne postoji ništa gore od sjena u bilo kojoj igri.

To su obično samo projekcije predmeta koji imaju oštre, neprirodne rubove. Međutim, postoje bolje kvalitete, po igračkim standardima, sjene. To su meke opcije s prijelaznom linijom, odnosno sjena i djelomična sjena.


Za stvaranje mekih sjena ili difuznih refleksija (poput onih koje vidite u brušenom metalu, na primjer), potrebne su naprednije tehnike praćenja zraka

Jedini problem je što to u životu ne ide tako. Ako izvor svjetlosti nije točkast i nije beskonačno udaljen, tada veličina polusjene ovisi o omjeru udaljenosti izvora svjetlosti od objekta i udaljenosti objekta od njegove sjene. Odnosno, rub penumbre na različitim mjestima može biti širi ili uži, posebno kada govorimo o o velikim izvorima svjetlosti.

Na primjer, svjetlo s prozora u oblačnom vremenu proizvodi tako meke sjene da ako postavite objekt koji je znatno manji u veličini dva metra od ovog prozora, tada na njegovom dnu možete vidjeti jasnu sjenu i polusjenu, ali s gornjeg dijela objekta možda uopće neće biti sjene, a penumbra neće imati jasne granice. To se ne događa u igrama s tradicionalnom rasterizacijom.

Ray tracing nije težak zadatak, ali ima puno zraka i, nažalost, trenutno nije moguće sve raditi u stvarnom vremenu. Činjenica je da se u životu zrake razilaze u potpuno različitim smjerovima. U idealnom slučaju, upadna zraka bila bi podijeljena na beskonačan broj zraka, čija bi ukupna svjetlina ovisila o svojstvima reflektirajućeg objekta i početnoj svjetlini upadne zrake.

Da biste smanjili opterećenje, možete ograničiti broj zraka i broj sudara, ali ta ograničenja dovode do toga da slika završi s oskudnim dijelovima sjene i neprirodno svijetlim točkama od izvora svjetlosti. Odnosno, nedovoljna količina podataka dovodi do šuma, a cijela poteškoća je u tome što je nemoguće izračunati scenu jednom i zatim promijeniti samo ono što se mijenja od kadra do kadra, budući da bilo koji pokretni objekt mijenja sve rute svih zraka. Svaki pokret kamere i objekata zahtijeva ponovno “sastavljanje” cijele scene, zbog čega filmove stvaraju render farme i brojni serveri koji kontinuirano renderiraju grafiku nekoliko mjeseci. Ali, nažalost, to još nije moguće učiniti u stvarnom vremenu u igrama.

Stoga se postavlja pitanje, kako su se Nvidia i njeni partneri izvukli iz ove situacije: što su žrtvovali da bi postigli praćenje u stvarnom vremenu?

Dvije polovice jedne cjeline

Ako pažljivo promatrate kako se slika renderira korak po korak, možete vidjeti da se negdje nakon pete integracije same sjene i svjetlost jedva primjetno mijenjaju. Postaje jasno gdje, što i kako će izgledati u konačnom obliku. Za ovo je, u načelu, potrebno stvarno vrijeme u softveru, tako da možete rotirati izvore svjetla, shvatiti gdje će biti neki istaknuti dijelovi i zatim započeti konačno renderiranje. Ostaje za vidjeti kako se konačni kadar može razumjeti iz mutne slike. Zapravo, računalo prvo modelira izvornu sliku s šumom, zatim je analizira i na temelju dobivenih podataka crta drugu – konačnu. Kao što je praksa pokazala, ovaj pristup je jednostavniji u smislu troškova resursa.

Zapravo, progresivni skok u razvoju praćenja u stvarnom vremenu je stvaranje algoritama koji omogućuju procjenu slike na temelju njezinog stanja šuma i vraćanje u normalno stanje. Ovo je ključna inovacija. Sve ostalo je bilo u širokoj upotrebi prije. Mnogi rendereri imaju dodatke za GPU renderiranje i OpenGL, koje podržava bilo koja grafička kartica kompatibilna s OpenGL-om.

Danas se tvrdi da ova tehnika uklanjanja šuma radi samo na nježnim jezgrama u budućim Nvidijinim karticama. No zapravo je ova tehnologija masovno prikazana tek sada, a pojavila se, očito, prošle godine, jer je u listopadu, na jednom od događaja, Unity pokazao upravo ovu tehnologiju za uklanjanje buke u praćenju u stvarnom vremenu.

Trik je u tome što ne sudjeluju svi objekti u praćenju zraka onoliko dobro koliko bi trebali. U tom smislu, dotaknut ćemo se teme globalnog osvjetljenja - mehanizma praćenja koji zahtijeva najviše resursa. U životu, svaki predmet na koji svjetlost padne odražava dio te svjetlosti. Na primjer, ako usmjerite izvor svjetla na zeleni zid, tada će sva rasvjeta postati zelena jer zeleni zid slabo upija svjetlost.


Refleksija svjetlosnih zraka od površine

U demou nije bilo takvog efekta. Umjesto refleksije svjetla i mijenjanja svjetlosnog uzorka okvira ovisno o izvoru svjetla, cijeli je prostor ispunjen svijetlim slikama, zbog čega svjetlost djeluje dinamično. Zapravo, programeri nisu koristili praćenje zraka na detaljima kao što su izmaglica i plamen.

Činjenica je da svjetlosne zrake treba izračunati bez obzira na to pogode li objekte ili ne. Odnosno dodavanje velika količina dovoljni su izvori svjetlosti težak zadatak za izračune ruta. Osim toga, niti jedan tehnološki demo još nije sadržavao objekte koji bi imitirali prozirne objekte.

Kada ćemo vidjeti korist?

Na temelju gore opisanih kriterija (zamućenost slike i tragovi ne svih objekata), možemo reći da grafika u igrama još ne može izgledati tako detaljno i realistično kao u filmovima.

Međutim, pomaka nedvojbeno ima. Prvo, refleksije je sada lakše raditi; nema potrebe za stvaranjem mapa sjena i svjetla - sve je to riješeno praćenjem. Drugo, pojavio se barem neki privid raspršenih odraza. Treće, osvjetljenje i sjene objekata značajno su poboljšani. Sve zajedno nam omogućuje da kažemo da se to može uzeti u obzir ključna tehnologija u igrama, koje neće izgubiti svoju poziciju u sljedećih deset godina.

Tekst: Alexey Kharitonov, QA, Bytex