Metoda povratnog traganja. Razvoj VirtualRay motora. Odraz od glatke površine

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

Pogledajmo kako se formira slika. Slika se proizvodi svjetlošću koja ulazi u kameru. Pustimo mnogo zraka iz izvora svjetlosti. Nazovimo ih primarnim zracima. Neki od ovih zraka će odletjeti u slobodni prostor, a neki će pogoditi objekte. Zrake se mogu lomiti i reflektirati na njih. U tom slučaju, dio energije zraka će se apsorbirati. Prelomljene i reflektirane zrake formiraju mnoge sekundarne zrake. Tada će se ovi zraci ponovo lomiti i reflektovati i formirati novu generaciju zraka. Na kraju će neki zraci pogoditi kameru i formirati sliku.

Postoje algoritmi koji rade po ovom algoritmu. Ali oni su izuzetno neefikasni, jer većina zraka koje izlaze iz izvora ne dopire do kamere. A prihvatljiva slika se dobija ako se uđe u trag veliki broj zraka, što će trajati veoma dugo. Ovaj algoritam se zove direktno praćenje zraka.

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

Pretpostavimo da imamo kameru i ekran koji se nalaze na udaljenosti h od nje. Podijelimo ekran na kvadrate. Zatim ćemo naizmjence crtati zrake od kamere do centra svakog kvadrata (primarne zrake). Nađimo raskrsnicu svakog takvog zraka sa objektima scene i odaberimo onaj koji je najbliži kameri među svim raskrsnicama. Zatim, primjenom željenog modela osvjetljenja, možete dobiti sliku scene. Ovo je najjednostavniji metod praćenja zraka. Omogućava vam samo da odsiječete nevidljive ivice.

Ali možemo ići dalje. Ako želimo da simuliramo fenomene kao što su refleksija i refrakcija, moramo da lansiramo sekundarne zrake sa najbližeg raskrsnice. Na primjer, ako površina reflektira svjetlost i savršeno je ravna, tada je potrebno reflektirati primarni zrak od površine i poslati sekundarni zrak 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 objekt proziran, tada je potrebno konstruirati sekundarnu zraku tako da kada se prelama proizvodi izvornu zraku. Neka tijela mogu imati svojstvo difuzne refrakcije. U ovom slučaju nastaje ne jedna, već mnogo prelomljenih zraka. Kao i kod refleksije, zanemarujem ovo.

Dakle, primarna zraka, nakon što je pronašla raskrsnicu s objektom, općenito se dijeli na dvije zrake (odbijene i prelomljene). Zatim se ova dva zraka dijele na još dva i tako dalje.

Glavna procedura obrnutog praćenja zraka u mom programu je Ray procedura. Ima sledeću strukturu:

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

Određujemo najbliži trougao sa kojim se zraka siječe.

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

Ako je površina s kojom je pronađena raskrsnica reflektirajuća, tada formiramo reflektiranu zraku i rekurzivno pozivamo proceduru Ray s generiranjem zraka uvećanim za 1.

Ako se površina s kojom je pronađena raskrsnica lomi, tada formiramo prelomljenu zraku i rekurzivno pozivamo Ray proceduru s povećanjem generiranja zraka za 1.

Određujemo konačno osvjetljenje piksela, uzimajući u obzir lokaciju izvora, svojstva materijala, kao i intenzitet reflektiranog i prelomljenog zraka.

Već sam raspravljao o brojnim ograničenjima metode praćenja kada smo govorili o difuznoj refrakciji i neujednačenim zrcalima. Pogledajmo neke druge.

Samo specijalni objekti - izvori svjetlosti - mogu osvijetliti scenu. Oni su točkasti i ne mogu apsorbirati, prelamati ili reflektirati svjetlost.

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

Kod difuzne refleksije uzimaju se u obzir samo zraci iz izvora svjetlosti. Ako izvor osvjetljava tačku kroz ogledalo (sa zečićem), onda se smatra da tačka nije osvijetljena.

Spekularnost je također podijeljena na dvije komponente.

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

spekularni - uzima u obzir odsjaj od izvora svjetlosti

Praćenje ne uzima u obzir zavisnosti od talasne dužine svetlosti:

indeks prelamanja

koeficijent apsorpcije

koeficijent refleksije

Pošto ne modeliram difuznu refleksiju i prelamanje, neću moći da dobijem pozadinsko osvetljenje. Stoga uvodimo minimalno pozadinsko osvjetljenje. Često vam jednostavno omogućava da značajno poboljšate kvalitetu slike.

Algoritam praćenja vam omogućava da nacrtate vrlo kvalitetne sjene. Ovo neće zahtijevati mnogo prerade algoritma. Morat ćete nešto dodati. Prilikom izračunavanja osvjetljenja tačaka, potrebno je u svaki od izvora svjetlosti postaviti „Frond sjene“. "Prednja sjena" je zrak koji provjerava da li postoji nešto između tačke i izvora. Ako se između njih nalazi neproziran predmet, onda je tačka u sjeni. To znači da ovaj izvor, ne doprinosi konačnom osvjetljenju tačke. Ako prozirni predmet leži, onda se intenzitet izvora smanjuje. Crtanje senki oduzima mnogo vremena. Dakle, u nekim situacijama su onesposobljene.

Moj program ima mogućnost da omogući izglađivanje slike. Antialiasing se odnosi na određivanje boje piksela. Ne lansira se jedan, već četiri i određuje se prosječna vrijednost boje ovih zraka. Ako je potrebno pronaći boju piksela (i,j), tada se 4 zraka šalju u tačke na ravni ekrana sa 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 Tracing) Danas se smatraju najmoćnijim i najsvestranijim metodama za stvaranje realističnih slika. Postoji mnogo primjera implementacije algoritama praćenja za visokokvalitetan prikaz najsloženijih trodimenzionalnih scena. Može se primijetiti da je univerzalnost metoda praćenja u velikoj mjeri posljedica činjenice da se one temelje na jednostavnim i jasnim konceptima koji odražavaju naše iskustvo sagledavanja svijeta oko nas.

Rice. 8.12. Modeli refleksije: a – idealno ogledalo, b – nesavršeno ogledalo, c – difuzno, d – zbir difuznog i zrcalnog, d – inverzno, f – zbir difuznog, zrcalnog i inverznog

Kako vidimo okolnu stvarnost? Prvo, moramo odlučiti šta 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;

    reflektuju i apsorbuju;

    prolaze kroz sebe.

Rice. 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 okarakterizirati intenzitetom, smjerom, spektrom. Zračenje može doći iz relativno tačkastog izvora (udaljene zvijezde) ili iz izvora difuzne svjetlosti (recimo, iz rastopljene lave koja izbija iz vulkanskog kratera). Zračenje se može širiti duž prilično uskog snopa (fokusirani laserski snop) 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. Transparentnost 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 dužina vektora odgovara intenzitetu (sl. 8.12 - 8.14).

U prethodnim paragrafima već smo se upoznali sa tipovima refleksije koji se najčešće spominju – spekularni i difuzni. U literaturi se rjeđe spominje obrnuto ogledalo ili anti-mirror fromporaz, u kojoj maksimalni intenzitet refleksije odgovara smjeru prema izvoru. Neke vrste vegetacije na površini Zemlje, posmatrane sa visine rižinih polja, imaju obrnuti odraz u ogledalu.

Dva ekstremna, idealizovana slučaja prelamanja prikazana su na Sl. 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 može, kada se gleda drugačije, smatrati objektom koji samo reflektira i prenosi 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.

Rice. 8.14. Refrakcija a – idealna, b – difuzna

Općenito, svaki objekt je opisan nekom kombinacijom gornja tri svojstva. Kao vježbu pokušajte dati primjer objekta koji istovremeno ima tri od ovih svojstava - emituje svjetlost i istovremeno reflektira i prenosi svjetlost iz drugih izvora. Vaša mašta će vjerovatno doći do drugih primjera osim, recimo, usijanog stakla.

Pogledajmo sada kako se formira slika scene koja sadrži nekoliko prostornih objekata. Pretpostavićemo da zraci svetlosti izlaze iz tačaka na površini (volumen) emitovanih objekata. Takve zrake možemo nazvati primarnim – oni osvjetljavaju sve ostalo.

Važna stvar je pretpostavka da se svjetlosni snop u slobodnom prostoru širi duž prave linije (iako se u posebnim dijelovima fizike proučavaju i razlozi moguće zakrivljenosti). Ali unutra geometrijska optika Pretpostavlja se da se zraka svjetlosti širi pravolinijski sve dok ne naiđe na reflektirajuću površinu ili granicu lomnog medija. I mi ćemo vjerovati.

Bezbroj primarnih zraka emanira iz izvora zračenja u različitim smjerovima (čak ni laserski snop ne može biti savršeno fokusiran - u svakom slučaju, svjetlost će se širiti ne u jednoj idealno tankoj liniji, već u konusu, snopu zraka). Neki zraci idu u slobodan prostor, a neki (ima ih i bezbroj) pogađaju druge objekte. Ako snop udari u prozirni predmet, on se lomi i putuje dalje, dok se dio svjetlosne energije apsorbira. Slično, ako se na putu snopa naiđe na zrcalno reflektirajuću površinu, tada i ona mijenja smjer, a dio svjetlosne energije se apsorbira. Ako je predmet zrcaljen i istovremeno proziran (na primjer, obično staklo), tada će već postojati dvije grede - u ovom slučaju kažu da je snop podijeljen.

Možemo reći da kao rezultat utjecaja primarnih zraka na objekte nastaju sekundarne zrake. Bezbroj sekundarnih zraka ide u slobodni prostor, ali neki od njih pogađaju druge objekte. Tako, reflektujući se i prelamajući se više puta, pojedinačni zraci svetlosti stižu do tačke posmatranja – ljudskog oka ili optičkog sistema kamere. Očigledno je da neki od primarnih zraka direktno iz izvora zračenja takođe mogu doći do tačke posmatranja. Dakle, sliku scene formira određeni broj svjetlosnih zraka.

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

Rice. 8.15. Šema praćenja zraka unatrag

Direktna implementacija ovog modela snimanja zraka izgleda teško. Možete pokušati razviti algoritam za konstruiranje slike pomoću navedene metode. U takvom algoritmu potrebno je predvidjeti nabrajanje svih primarnih zraka i odrediti koji od njih pogađaju objekte i kameru. Zatim iterirajte sve sekundarne zrake i uzmite u obzir samo one koji pogađaju objekte i kameru. I tako dalje. Ova metoda se može pozvati ravno praćenje zraka. Praktična vrijednost takve metode bit će upitna. Zaista, kako uzeti u obzir beskonačan broj zraka koji idu u svim smjerovima? Očigledno je da je kompletna pretraga beskonačnog broja zraka u principu nemoguća. Čak i ako to nekako svedemo na konačan broj operacija (na primjer, podijelimo cijelu sferu pravaca na ugaone sektore i operišemo ne beskonačno tankim linijama, već sektorima), glavni nedostatak metode i dalje ostaje - mnoge nepotrebne operacije povezan sa proračunom zraka, koji se tada ne koriste. Dakle, u svakom slučaju, izgleda u sadašnjem trenutku.

Metoda backtrace zraci vam omogućavaju značajno smanjenje prekomjernog broja svjetlosnih zraka. Metoda je razvijena 80-ih godina, razmatraju se osnovni radovi Witte-da I Kej. Prema ovoj metodi, zraci se ne prate iz izvora svjetlosti, već u suprotnom smjeru - sa tačke posmatranja.Na taj način se uzimaju u obzir samo oni zraci koji 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. Odaberimo centralnu projekciju sa centrom koji nestaje na određenoj udaljenosti od ravni projekcije. Povučemo pravu liniju od centra koji nestaje kroz sredinu kvadrata (piksela) ravni projekcije (slika 8.15). Ovo će biti primarni zrak za praćenje pozadi. Ako ravna linija ove zrake pogodi jedan ili više objekata u sceni, odaberite najbližu točku presjeka. Da biste odredili boju piksela slike, morate uzeti u obzir svojstva objekta, kao i to koje svjetlosno zračenje pada na odgovarajuću tačku objekta.

Rice. 8.16. Traženje unazad za objekte koji imaju zrcalna i refrakciona svojstva

Ako je objekt zrcaljen (barem djelomično), tada konstruiramo sekundarnu zraku - upadnu zraku, smatrajući prethodni, primarni, trasirani zrak kao refleksiju. Iznad smo razmotrili spekularnu refleksiju i dobili formule za vektor reflektovanog zraka s obzirom na vektore normalne i upadne zrake. Ali ovdje znamo vektor reflektirane zrake, ali kako možemo pronaći vektor upadne zrake? Da biste to učinili, možete upotrijebiti istu formulu zrcalne refleksije, ali definirajući potrebni vektor upadne zrake kao reflektiranu zraku. Odnosno, refleksija je suprotna.

Za idealno ogledalo, dovoljno je potom pratiti samo sledeću tačku preseka sekundarne zrake sa nekim objektom. Šta znači izraz "savršeno ogledalo"? Pretpostavićemo da takvo ogledalo ima savršeno jednaku poliranu površinu, tako da jedna reflektovana zraka odgovara samo jednoj upadnoj. Ogledalo se može zatamniti, odnosno apsorbirati dio svjetlosne energije, ali se i dalje poštuje pravilo: jedan zrak upada, jedan se odbija. Možete uzeti u obzir i „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 nekoliko reflektiranih zraka), koji formiraju određeni stožac, moguće asimetričan, sa osom duž linije upadne zrake idealnog zrcala. Konus odgovara određenom zakonu raspodjele intenziteta, od kojih je najjednostavniji opisan Phongovim modelom - kosinus ugla podignutog na određenu potenciju. Nesavršeno ogledalo uvelike otežava praćenje - morate pratiti ne jednu, već mnogo upadnih zraka i uzeti u obzir doprinos zračenja drugih objekata vidljivih iz date tačke.

Ako je objekt proziran, onda je potrebno konstruirati novu zraku, koja bi, kada se prelama, proizvela prethodnu trasiranu zraku. Ovdje također možete iskoristiti prednost reverzibilnosti, što vrijedi i za refrakciju. Da biste izračunali vektor željene zrake, možete primijeniti gore navedene formule za vektor loma zraka, pod pretpostavkom da se prelamanje događa u suprotnom smjeru (slika 8.16).

Ako predmet ima svojstva difuzne refleksije i prelamanja, tada je, u općem slučaju, kao i za neidealno ogledalo, potrebno pratiti zrake koje dolaze iz svih postojećih objekata. Za difuznu refleksiju, poznato je da je intenzitet reflektovane svjetlosti proporcionalan kosinusu ugla između vektora zraka iz izvora svjetlosti i normale. Ovdje izvor svjetlosti može biti bilo koji objekt vidljiv iz date tačke koji može prenositi svjetlosnu energiju.

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

Povratne zrake u obliku u kojem smo ga ovdje razmatrali, iako smanjuje pretragu, ne dozvoljava nam da se riješimo beskonačnog broja analiziranih zraka. Zapravo, ova metoda nam omogućava da odmah dobijemo jednu primarnu zraku za praćenje unazad za svaku tač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, onda koje točke emitujućih objekata treba uzeti u obzir da bi se konstruirale odgovarajuće zrake, na primjer, u difuznoj refleksiji ? Očigledno, sve tačke.

U praktičnoj implementaciji metode povratnog praćenja uvode se ograničenja. Neki od njih su neophodni da bi se u principu 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 objekata izdvajaju se neki koje ćemo nazvati izvori svjetlo. Izvori svjetlosti mogu samo emitovati svjetlost, ali je ne mogu reflektirati ili prelamati (mi ćemo samo razmotriti tačka izvori svetlosti).

2. Svojstva reflektirajućih površina opisuju zbirom dvije komponente - difuzne i zrcalne.

3. Zauzvrat, spekularnost se također opisuje sa dvije komponente. Prvo (refleksija) uzima u obzir refleksije od drugih objekata koji nisu izvori svjetlosti. Izgrađen je samo jedan reflektirani snop r za dalje praćenje Druga komponenta ( Specular ) znači odsjaj od izvora svjetlosti. Da bi se to postiglo, zraci se usmjeravaju na sve izvore svjetlosti i određuju se uglovi koje ovi zraci formiraju sa reflektiranom zrakom za traganje unatrag. (r). Kod spekularne refleksije, boja tačke na površini određena je bojom onoga što se reflektuje. U najjednostavnijem slučaju, ogledalo nema svoju boju površine.

4. Kod difuzne refleksije uzimaju se u obzir samo zraci iz izvora svjetlosti. Zraci sa reflektirajućih površina se zanemaruju. Ako je snop usmjeren na dati izvor svjetlosti blokiran drugim objektom, tada je ova tačka objekta u sjeni. Kod difuzne refleksije, boja osvijetljene tačke na površini određena je vlastitom bojom površine i bojom izvora svjetlosti.

5. Za transparentan (1gap5rage() objekata, zavisnost indeksa loma o talasnoj dužini se obično ne uzima u obzir. Ponekad se prozirnost općenito modelira bez prelamanja, odnosno smjera prelomljenog zraka I poklapa se sa smjerom upadnog snopa.

    Da bi se uzela u obzir osvjetljenje objekata svjetlošću koja se raspršuje drugim objektima, uvodi se pozadinska komponenta (kodbient).

7. Da bi se završilo praćenje, uvodi se određena granična vrijednost osvjetljenja, koja više ne bi trebala doprinositi rezultujućoj boji, ili je broj iteracija ograničen.

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

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

gdje je λ talasna dužina,

C (λ) - specificirana početna boja tač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, spekularnosti, refleksije i prozirnosti,

I a - intenzitet pozadinskog osvetljenja,

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

I s - intenzitet uzet u obzir za spekularnost,

I r - intenzitet zračenja koje dolazi duž reflektovanog snopa,

I t - intenzitet zračenja koje dolazi duž prelomljenog snopa.

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

I d =

Gdje I i (λ) - intenzitet zračenja i- ro izvor svjetlosti, θ i- ugao između normale na površinu predmeta i smjera prema i- vi Izvor svjetlosti.

Za spekularnost:

I d =

Gdje R- eksponent od jedan do nekoliko stotina (prema Phongovom modelu), α i-ugao između reflektovanog zraka (trasiranje unatrag) i smjera prema r" izvoru svjetlosti.

Intenzitet zračenja koje prolazi duž reflektovanog snopa ( I r), kao i duž prelomljenog zraka ( I t ) , pomnoženo faktorom koji uzima u obzir slabljenje intenziteta ovisno o udaljenosti koju prijeđe snop. Ovaj koeficijent se zapisuje u obliku e - d Gdje d- pređena udaljenost, – parametar prigušenja koji uzima u obzir svojstva sredine u kojoj se snop širi.

Za primarni zrak potrebno je postaviti smjer koji odgovara odabranoj projekciji. Ako je projekcija centralna, tada primarni zraci odstupaju od zajedničke tačke; za paralelnu projekciju, primarni zraci su paralelni. Zraka se može specificirati, na primjer, koordinatama početne i krajnje točke segmenta, koordinatama početne točke i smjera ili na neki drugi način. Postavljanje primarnog zraka jednoznačno određuje projekciju prikazana scena . Sa inverznim praćenjem zraka, bilo kakve 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.

Prilikom trasiranja zraka potrebno je odrediti točke sjecišta prave linije zraka sa objektima. Način određivanja tačke preseka zavisi od toga o kakvoj se vrsti objekta radi i kako je predstavljen u određenom grafičkom sistemu. Tako, na primjer, za objekte predstavljene u obliku poliedara i poligonalnih mreža, možete koristiti dobro poznate metode za određivanje točke presjeka linije i ravnine, razmatrane u analitičkoj geometriji. Međutim, ako je zadatak odrediti presjek zraka s licem, tada je također potrebno da pronađena presječna točka leži unutar konture lica.

Postoji nekoliko načina da provjerite da li proizvoljna tačka pripada poligonu. Razmotrimo dvije varijante suštinski iste metode (slika 8.17).

Prvi način. Pronalaze se sve tačke u kojima kontura seče horizontalnu liniju, koja odgovara Y koordinati date tačke. Tačke sjecišta se sortiraju uzlaznim redoslijedom vrijednosti koordinata X. Parovi presječnih tačaka formiraju segmente. Ako tačka koja se provjerava pripada jednom od segmenata (za to se upoređuju X koordinate date tačke i krajevi segmenata), onda je interna.

Rice. 8.17. Tačka je interna ako: a - tačka pripada sekantnom segmentu, b - broj preseka je neparan

Drugi način. Određuje se tačka koja leži na istoj horizontalnoj liniji kao i tačka koja se testira, a potrebno je da leži izvan konture poligona. Pronađena vanjska tačka i ispitna tačka su krajevi horizontalnog segmenta. Određene su tačke preseka ovog segmenta sa konturom poligona. Ako je broj raskrsnica neparan, to znači da je testirana tačka interna.

Ako zraka siječe nekoliko objekata, tada se odabire najbliža tačka u smjeru trenutnog zraka.

Hajde da to uradimo opšti zaključci o u vezi sa metodom reverznog praćenja zraka.

Pozitivne karakteristike

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

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

3. Sve transformacije koordinata (ako ih ima) su linearne, tako da je prilično lako raditi sa teksturama.

4. Za jedan piksel rasterske slike, možete pratiti nekoliko blisko raspoređenih zraka, a zatim usredsrediti njihovu boju da biste eliminisali efekat stepenica (antialiasing).

5. Pošto se izračunavanje jedne tačke slike vrši nezavisno od drugih tačaka, ovo se može efikasno koristiti prilikom implementacije ove metode u paralelnim računarskim sistemima u kojima se zraci mogu pratiti istovremeno.

Nedostaci

1. Problemi s modeliranjem difuzne refleksije i refrakcije

2. Za svaku tačku na slici potrebno je izvršiti mnogo računskih operacija. Praćenje zraka jedan je od najsporijih algoritama za sintezu slike.

Ministarstvo obrazovanja Ruske Federacije

Moskovski državni institut za elektroniku i matematiku

(Tehnički univerzitet)

Odjel za informacije i komunikacije

tehnologije

Kurs na temu:

“Analiza perspektiva upotrebe metode praćenja zraka u 3D modeliranju”

Završeno:

Guliyan Boris

Podzorov Ivan

Grupa C -35

Moskva 2010

1. 3D grafika. Uvod

3. Algoritmi za praćenje zraka

4. Glavne prednosti i nedostaci praćenja zraka

5. Primjena metode praćenja zraka

6. Eksperimentiraj.

Zadatak: "Analiza perspektiva upotrebe metode praćenja zraka u 3D modeliranju"

Formulacija problema

Upoznajte se sa metodom praćenja zraka i njegovom upotrebom u području 3D grafike, provedite eksperiment koristeći jedan od algoritama za praćenje zraka.

U našem eksperimentu razmatramo:
1) performanse algoritma za praćenje zraka u zavisnosti od broja poligona modela (za model se uzimaju 3 kuglice: mat, transparentna i zrcalna).

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

Blender softver se koristi kao okruženje za eksperiment.

3D grafika. Uvod.

Trodimenzionalna grafika je dio kompjuterske grafike, skup tehnika i alata namijenjenih prikazivanju trodimenzionalnih objekata. Najviše se koristi za kreiranje slika na ravni ekrana ili lista štampanog materijala u arhitektonskoj vizualizaciji, industriji zabave, štampanim materijalima, kao i u nauci, industriji i tehnologiji proširene stvarnosti.

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

· Geometrija (konstruisana medelima)

· Materijali (informacije o vizuelnim svojstvima modela)

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

· Virtuelne kamere (izbor tačke i ugla projekcije)

· Sile i udari (postavke za dinamička izobličenja objekata, korištene uglavnom u animaciji)

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

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

Glavni problem 3D grafike i modeliranja je dobijanje što fotorealističnije slike uz minimalni utrošak računarskih resursa i vremena za obradu scene. Budući da postoje različite potrebe u različitim oblastima, kreiraju se različite ideje i algoritmi za rješavanje određenog problema. Jedna od takvih ideja je praćenje zraka, koje ćemo razmotriti u našem radu.

Praćenje zraka naprijed i nazad

Praćenje zraka je metoda obrade 3D modela za proizvodnju fotorealistične slike, koja uzima u obzir relativni položaj objekata, kao i fizička svojstva objekata kao reflektivne i prelamajuće sposobnosti.

Postoje 2 metode praćenja zraka: naprijed i nazad

Direktno praćenje zraka uzima u obzir sve zrake iz izvora svjetlosti koje udaraju u objekte i na kraju stignu do oka promatrača. Ali ova metoda nije racionalna sa stanovišta izvedbe, jer mora obraditi sve zrake okoline (izlazne i prelomljene) u svim smjerovima, uključujući i one koje ne padaju na scenu vidljivu promatraču.

U obrnutom praćenju zraka, svi zraci potiču iz oka posmatrača, čime se definira scena s objektima koji će se kasnije obraditi. Ova metoda vam omogućava da izbjegnete obradu objekata koji ne spadaju u vidljivo područje, što značajno smanjuje količinu potrebnih proračuna.

Svi algoritmi za praćenje zraka zasnovani su na metodi inverznog praćenja zraka.

Algoritmi za praćenje zraka

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

1. Za svaki piksel na ekranu, zrak se ispaljuje iz oka posmatrača.

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

· Transparentnost/prozirnost objekta. Ako je predmet proziran, tada se iz raskrsnice emituje refrakcijska zraka; ako je neproziran, ne emituje se.

· Svetlo/Sjena. Od tačke u kojoj zrak seče sfere, zrak se emituje do izvora svetlosti (ili naizmenično za svaki izvor svetlosti, ako ih ima nekoliko). Ako ova zraka ne siječe druge neprozirne objekte ili površine, tada izvor svjetlosti direktno utiče na osvjetljenje date tačke. Ako postoji više izvora svjetlosti, onda se efekat određen RGB vrijednošću date tačke izračunava iz utjecaja svih zraka.

· Reflektivnost. Ako je objekat sposoban da reflektuje zrake, onda se od tačke gde zrak seče sa sferom, reflektovana zraka emituje na objekte koji će se reflektovati u sferi.

Kao rezultat, dobijamo nekoliko vrsta zraka. Primarni zraci se koriste za određivanje vidljivosti objekta, a sekundarni zraci se dijele na sljedeće:

· refrakcijske zrake;

· zraci senke/svetlosti;

Refleksije.

Rice. 1 Dijagram algoritma za praćenje zraka


Svi ostali algoritmi su zasnovani na algoritmu prikazanom iznad i dizajnirani su za optimizaciju proračuna.

kd-stablo

Algoritam za konstruisanje kd-stabla može se predstaviti na sledeći način (nazvaćemo ga kuboid engleska riječ "box" (kutija).

1. "Dodaj" sve primitive u granični okvir. Odnosno, napravite okvir koji ograničava sve primitive, koji će odgovarati korijenskom čvoru stabla.

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

3. Odaberite ravan podjele koja dijeli dati čvor na dva podređena čvora. Nazvat ćemo ih desnim i lijevim čvorom stabla.

4. Dodajte primitive koji se sijeku s kutijom lijevog čvora lijevom čvoru, primitivima koji se sijeku sa kutijom desnog čvora u desni.

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

Regularna mreža

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

Metoda se ne koristi u praksi.

Dprednosti i nedostaci

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

1. Sposobnost prikazivanja glatkih objekata bez njihove interpolacije sa poligonalnim površinama (na primjer, trouglovi).

2. Računska složenost metode slabo zavisi od složenosti scene.

3. Visoka algoritamska paralelnost proračuna - možete pratiti dva ili više zraka paralelno i nezavisno.

4. Metodom praćenja zraka refleksije se prikazuju savršeno (slika 2), i to bez složenih algoritama, jer se sve izračunava glavnim algoritmom renderiranja.

font-size:14.0pt"> Slika 2 Refleksije dvije zrcalne kugle jedna u drugoj

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

1. Glavni nedostatak ovog algoritma za renderiranje je njegova sporost. Međutim, algoritam za praćenje zraka je vrlo paralelan i broj procesorskih jezgri se povećava svake godine, tako da bismo trebali vidjeti linearni rast performansi praćenja zraka. Ali ovaj pristup ne uzima u obzir sekundarne zrake (detekciju refleksije, prelamanja i senčenja), a renderovanje sa primarnim zracima praktično ne daje poboljšanje kvaliteta slike u poređenju sa klasičnim algoritmom.

2. Problem sa sekundarnim zracima je u tome što nemaju apsolutno nikakvu koherentnost (kosmjernost). Prilikom prelaska s jednog piksela na drugi, moraju se izračunati potpuno drugačiji podaci, što negira sve uobičajene tehnike keširanja koje su vrlo važne za dobre performanse. To znači da izračunavanje sekundarnih zraka veoma zavisi od kašnjenja memorije.

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

4. Drugi karakterističan problem Metoda praćenja zraka odnosi se na anti-aliasing (AA). Zrake se izvode kao jednostavna matematička apstrakcija, i prirodna veličina ne uzimaju u obzir. Test raskrsnice trokuta je jednostavna Booleova funkcija koja daje odgovor da ili ne, ali ne daje detalje kao što je "zraka siječe trokut 40% puta." Direktna posledica ovog efekta biće pojava „merdevina“ (slika 3).

Rice. 3 zaglađivanje senki

I jedina tehnologija koja može dati dobri rezultati, je izračun više zraka nego što ima piksela, odnosno supersampling (Oversampling ili Anti-Aliasing) (renderiranje u višoj rezoluciji).

Također biste trebali imati na umu da brzina i kvalitet renderiranja pomoću praćenja zraka uvelike zavise od optimizacije koda.

Korištenje metode praćenja zraka

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

· 3D animacija;

· Specijalni efekti filmske industrije;

· Realno prikazivanje fotografija;

· Cad sistemi.

Posebni uslovi:

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

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

Ovdje je model opis bilo kojeg objekta ili fenomena u strogom smislu specifičan jezik ili kao struktura podataka. Takav opis može sadržavati geometrijske podatke, položaj tačke posmatrača, informacije o osvjetljenju, stepenu prisutnosti neke supstance itd.


Slika 4. poligonalna mreža

Eksperimentiraj.

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

Prilično je jednostavan za učenje i sadrži sve potrebne funkcije:

· Renderiranje slike sa mogućnošću povezivanja i isključivanja tracera.

· Oversampling (anti-aliasing ili anti-aliasing)

Izmjerili smo vrijeme potrebno za renderiranje 3 različite sfere (staklene, zrcalne i mat) na različitim Multeris Equals (svaki nivo povećava broj poligona za 4 puta). Kada se nivo povećao, vrijeme se računalo od 0.

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

Lv. Multeris

Vrijeme renderiranja za svaki nivo. od 0

bez RayT-a [c]

Sa RayT-om [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

Tabela 1.

Renderiranje je urađeno sa maksimalnim parametrima kako bi se povećala razlika u brzini obrade.

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


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

Zaključak

Iz provedenog eksperimenta može se vidjeti da je vrijeme utrošeno na renderiranje 3 kuglice pomoću praćenja zraka značajno veće od vremena utrošenog na renderiranje bez korištenja ray tracinga. Ali tokom eksperimenta uočeno je zanimljivo zapažanje: vrijeme za obradu modela 3, 4 i 5 nivoa je manje od vremena za obradu modela na dva nivoa.

Analiza dobijenih slika:
1) Na slici dobijenoj bez praćenja zraka (u daljem tekstu A) jasno je da prozirna sfera ne daje efekat sočiva (koristeći alfa kanal), dok je na slici pomoću praćenja zraka (u daljem tekstu B) prozirna sfera lopta uvećava objekte izvan njega (slika 6).

Rice. 6 prozirnih sfera (alfa kanal lijevo, praćenje zraka desno)


2) Na slici A nema zrcalne kugle, jer se dobijanje refleksije na njoj zasniva na praćenju zraka (slika 7).

Slika 7. Model eksperimenta (alfa kanal iznad, praćenje zraka ispod).


3) Slika 8 pokazuje da se prilikom renderovanja bez korišćenja ray tracinga, osvjetljavaju unutrašnje šupljine u koje, logično, svjetlost ne bi trebala prodirati.


Slika 8. Upad svjetlosti na udubljenje u kugli (A lijevo, B desno)

Iz ove analize je jasno da je kvalitet slika koje koriste praćenje zraka znatno bolji od slika dobijenih bez njega, što opravdava upotrebu ove metode u područjima gdje je važan kvalitet rezultirajuće slike, a ne vrijeme obrade.

Direktno praćenje. U metodi direktnog praćenja generira se snop zraka koji ostavlja izvor u svim mogućim smjerovima.

Većina zraka koje emituje izvor ne dopire do prijemnika, pa stoga ne utječu na sliku koja se u njemu formira. Samo vrlo mali dio zraka, nakon svih refleksija i prelamanja, na kraju stigne do prijemnika, stvarajući sliku scene u njegovim receptorima. Na grubim površinama pojavljuju se mnoge difuzno reflektirane zrake. Sve ih je potrebno programski generirati i pratiti, što uvelike otežava zadatak praćenja.

Prolazak snopa u neidealnom mediju praćen je rasipanjem i apsorpcijom svjetlosne energije na njegovim mikročesticama. Ove fizički procesi izuzetno teško adekvatno modelirati na računaru sa svojim ograničenim računarskim resursima. U praksi su ograničeni na korištenje koeficijenta slabljenja energije zraka po jedinici udaljenosti koju on prijeđe. Slično, uvedeni su koeficijenti za smanjenje energije zraka prilikom njegovog odbijanja i prelamanja na granici između medija. Uzimajući u obzir ove koeficijente, prati se smanjenje energije svih primarnih i sekundarnih zraka dok lutaju kroz prostor scene. Čim energija određenog zraka postane manja od određenog apsolutnog nivoa ili se smanji za određeni broj puta, praćenje ovog zraka se zaustavlja.

Dakle, glavni Nedostaci metode direktnog praćenja su njegov visoki intenzitet rada i niska efikasnost. Prilikom implementacije metode, većina rada na izračunavanju presjeka zraka sa objektima je uzaludna.

Backtrace. Traceback metoda je razvijena 80-ih godina. Radovi Whitteda i Kaya smatraju se fundamentalnim.

Da bi se odsjekli zraci koji ne stignu do prijemnika, dovoljno je posmatrača posmatrati kao izvor povratnih zraka. Primarni zrak će se smatrati zrakom V od posmatrača do bilo koje tačke na površini objekta.

Koristeći metode o kojima smo gore govorili, izračunavaju se sekundarni, tercijarni, itd. zraci. Kao rezultat toga, za svaki primarni zrak, gradi se stablo praćenja, čije grane čine sekundarne zrake. Grana rute se završava ako:

● zrak ide dalje od scene,

● zrak se susreće sa neprozirnim tijelom koje apsorbira svjetlost,

● snop udara u izvor svjetlosti,

● intenzitet zraka pada ispod prag osetljivosti,

● broj primarnih podjela zraka postaje prevelik za raspoložive resurse mašine.

Rezultirajuća direktna svjetlosna energija (boja i intenzitet) ulazi u prijemnik iz pravca V, se sastoji od energija terminalnih vrhova stabla, uzimajući u obzir njihove gubitke tokom širenja u optičkim medijima.


Metoda povratnog traga zapravo akumulira sve zrake koje stvarno stignu do prijemnika iz određenog smjera, bez obzira na njihovo porijeklo. Ovo vam omogućava da vidite i prikažete na ekranu:

● neprozirni objekti koji apsorbuju povratne zrake;

● prozirni objekti kroz koje su drugi objekti vidljivi posmatraču zbog prelamanja;

● refleksije objekata na površinama ogledala, uključujući odsjaj koji odgovara povratnim zracima koji udaraju u izvor svjetlosti;

● senke formirane na tačkama površine koje su zaklonjene od izvora drugim objektima;

● razne druge optičke efekte.

Broj "sondirajućih" povratnih zraka koji su podložni praćenju ograničen je brojem tačaka na površinama objekata scene vidljivih sa posmatračeve lokacije i pomeranih sa poslednjim korakom u zavisnosti od rezolucije ekrana. Zbog toga je iznos računskih troškova u metodi praćenja unatrag značajno smanjen u odnosu na metodu praćenja naprijed. Moguće je kombinirati obje metode radi optimizacije algoritama i smanjenja njihove složenosti.

Algoritmi praćenja su rekurzivna procedura koja se poziva kada se pojavi sekundarni zrak (analizirani zrak se reflektira ili prelama). Večina proračuni pri implementaciji metoda praćenja uzimaju u obzir proračun presjeka zraka sa površinama, te se stoga koriste za snimanje optički efekti u scenama sa malim brojem objekata.

Prilikom implementacije metode praćenja unazad u praksi, uvode se sljedeća ograničenja: . Neki od njih su neophodni da bi se u principu mogao riješiti problem sinteze slike, a neka ograničenja mogu značajno poboljšati performanse praćenja.

Ograničenja metode praćenja:

1. Među svim vrstama objekata, izdvojimo izvore svjetlosti. Mogu samo emitovati svjetlost, ali je ne mogu reflektirati ili prelamati. Obično se razmatraju tačkasti izvori.

2. Svojstva reflektirajućih površina opisuju zbirom dvije komponente: difuzne i zrcalne.

3. Spekularnost se, pak, također opisuje sa dvije komponente. Prvi (refleksija) uzima u obzir refleksiju od drugih objekata koji nisu izvori svjetlosti. Izgrađen je samo jedan reflektirani snop r za dalje praćenje. Druga komponenta (spekularna) znači odsjaj od izvora svjetlosti. Da bi se to postiglo, zraci se usmjeravaju na sve izvore i određuju se uglovi koje ovi zraci formiraju sa reflektiranom zrakom za praćenje pozadi ( r). Kod spekularne refleksije, boja tačke na površini određena je bojom onoga što se reflektuje. U najjednostavnijem slučaju, ogledalo nema svoju boju površine.

4. Kod difuzne refleksije uzimaju se u obzir samo zraci iz izvora svjetlosti. Zraci sa reflektirajućih površina se zanemaruju. Ako je snop usmjeren na dati izvor svjetlosti blokiran drugim objektom, tada je ova tačka objekta u sjeni. Kod difuzne refleksije, boja osvijetljene tačke na površini određena je vlastitom bojom površine i bojom izvora svjetlosti.

5. Za prozirne objekte, ovisnost indeksa loma o talasnoj dužini se obično ne uzima u obzir. Ponekad se prozirnost modelira bez prelamanja, tj. smjer prelomljenog zraka t poklapa se sa smjerom upadnog snopa.

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

7. Da završite praćenje, unesite neke granična vrijednost osvetljenje, koje više ne bi trebalo da doprinosi rezultujućoj boji, niti da ograničava broj iteracija.

Pozitivne karakteristike metode praćenja:

● svestranost, primenljivost za sintezu slike prilično složenih prostornih scena. Utjelovljuje mnoge zakone optike. Razne projekcije se jednostavno ostvaruju;

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

● sve transformacije koordinata (ako ih ima) su linearne, tako da je prilično lako raditi sa teksturama;

● za jedan piksel rasterske slike, možete pratiti nekoliko blisko raspoređenih zraka, a zatim usredsrediti njihovu boju da biste eliminisali efekat aliasinga;

● budući da se izračunavanje jedne tačke slike vrši nezavisno od drugih tačaka, ovo se može efikasno koristiti prilikom implementacije ove metode u paralelnim računarskim sistemima u kojima se zraci mogu pratiti istovremeno.

Nedostaci metode praćenja:

● problemi sa modeliranjem difuzne refleksije i prelamanja;

● za svaku tačku na slici potrebno je izvršiti mnogo računskih operacija. Praćenje zraka jedan je od najsporijih algoritama za sintezu slike.

Ne tako davno 4A Games, kreator neverovatnih realistične igre Metro je objavio video koji koristi Nvidijinu RTX tehnologiju koristeći METRO: EXODUS kao primjer. Ova grafička inovacija je veliki i samouvjeren korak naprijed u praćenju zraka. Ali šta sve ovo znači?

Iza vela tajne

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

Suština tehnologije se svodi na to da kompjuter simulira fizičko ponašanje svjetlosti tako što izračunava putanju konvencionalno pojedinačnih fotona svjetlosti, odnosno, ako snop padne na objekt, on se ili prelama u njemu ili odbija od to pod ovim ili onim uglom. Rezultat je određena putanja ovog zraka svjetlosti, pa otuda i naziv "tracing zraka".

Ova kompjuterski generirana slika koju je kreirao Enrico Cerica koristeći OctaneRender prikazuje zrake, sjene i refleksije na složenoj podnoj površini

Jedini problem je što je potrebno mnogo zraka i za svaku od njih je potrebno više puta izračunati svaki sudar zraka sa preprekama. Ovo je u suštini jednostavno matematički problem. Prvo treba izračunati gdje snop udara u postojeći objekt, odnosno izračunati koliziju, a zatim, na osnovu zadatih svojstava, izvršiti daljnje matematičke transformacije.


Pojednostavljena šema praćenja zraka

Na primjer, postoji mat površina određene uvjetne hrapavosti, ali nije apsolutno hrapava, a snop odstupa od nje s određenom vjerovatnoćom pod određenim uglom različitim od upadnog ugla. Mora se uzeti u obzir da ako objekat ima svojstvo da je beskonačno gladak, onda je upadni ugao jednaka uglu refleksije. Ako svojstva površine ukazuju na maglu, onda se to matematički ostvaruje odstupanjem ugla refleksije od upadnog ugla.

To je istina u životu; površina gotovo uvijek nije potpuno glatka. Stoga, kada svjetlost udari u jednu ili drugu tačku, ona se reflektira u odnosu na mjesto na površini, koje se može nekako zarotirati u odnosu na ravan koja nam se čini ravnom, a susjedna zraka se reflektira u potpuno drugom smjeru. Dakle, postaje sasvim jasno da nema smisla praviti modele objekata previše poligonalnim, pa su nepravilnosti određene osobinama površine. Rezultat je sličan stvarnom rasipanju svjetlosti sa mat površina.

Danas igre koriste predmet za koji se čini da je prekriven nekom vrstom zaleđivanja. Sigurno je svako nailazio na čudne zidove i podove u igricama koji izgledaju kao da su namazani nekom vrstom sluzi. Dakle, s praćenjem zraka ne morate to raditi - površine mogu raspršiti svjetlost potpuno prirodno. Ovo je savršeno prikazano u demonstraciji; postoji niz područja u rasponu od onih koji najviše nalikuju ogledalu do najmatiranih.

Posebno je uočljivo da u mat područjima refleksija jako zavisi od blizine objekta površini. Odnosno, što je objekt udaljeniji od površine, to postaje mutniji. Ovo je važno svojstvo koje u životu i ne primjećujemo, iako postoji.

Ali najvažnije su senke. Nema ništa gore od senki u bilo kojoj igrici.

To su obično samo projekcije objekata koji imaju oštre, neprirodne ivice. Međutim, postoje kvalitetnije, po gaming standardima, sjene. Ovo su meke opcije s prijelaznom linijom, odnosno sjenom i djelomičnom sjenom.


Da biste stvorili meke sjene ili difuzne refleksije (poput onih koje vidite u brušenom metalu, na primjer), potrebne su naprednije tehnike praćenja zraka

Jedini problem je što to ne ide tako u životu. Ako izvor svjetlosti nije tačka 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 polusjene na različitim mjestima može biti širi ili uži, posebno kada mi pričamo o tome o velikim izvorima svjetlosti.

Na primjer, svjetlost s prozora po oblačnom vremenu proizvodi tako meke sjene da ako postavite objekt koji je znatno manji dva metra od ovog prozora, onda na njegovoj podlozi možete vidjeti jasnu sjenu i polusjenu, ali iz gornjeg dijela od objekta možda uopšte nema senke, a polusenka neće imati jasne granice. To se ne dešava u igrama sa tradicionalnom rasterizacijom.

Tragiranje zraka nije težak zadatak, ali ima mnogo zraka i, nažalost, trenutno nije moguće sve raditi u realnom vremenu. Činjenica je da se u životu zrake razilaze u potpuno različitim smjerovima. U idealnom slučaju, upadni snop bio bi podijeljen na beskonačan broj zraka, čiji bi ukupni sjaj ovisio o svojstvu reflektirajućeg objekta i početnom sjaju upadnog snopa.

Da biste smanjili opterećenje, možete ograničiti broj zraka i broj sudara, ali ova ograničenja dovode do toga da slika dobije oskudne dijelove sjene i neprirodno svijetle mrlje od izvora svjetlosti. Odnosno, nedovoljna količina podataka dovodi do pojave buke, a cijela poteškoća je u tome što je nemoguće jednom izračunati scenu, a zatim promijeniti samo ono što se mijenja od kadra do kadra, budući da svaki pokretni objekt mijenja sve rute svih zraci. Svaki pokret kamere i objekata zahtijeva iznova „ponovno sastavljanje“ cijele scene, zbog čega filmove stvaraju farme rendera i brojni serveri koji kontinuirano renderiraju grafiku po nekoliko mjeseci. Ali, nažalost, to još nije moguće učiniti u realnom vremenu u igrama.

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

Dve polovine jedne celine

Ako pažljivo promatrate kako se slika prikazuje korak po korak, možete vidjeti da se negdje nakon pete integracije senke i svjetlost mijenjaju jedva primjetno. Postaje jasno gdje, šta i kako će izgledati u konačnom obliku. Za to je, u principu, potrebno u softveru realno vrijeme, tako da možete rotirati izvore svjetla, shvatiti gdje će biti istaknuti i zatim započeti finalno renderiranje. Ostaje da se vidi kako se konačni kadar može shvatiti iz oblačne slike. Naime, kompjuter prvo modelira originalnu sliku sa bukom, zatim je analizira i na osnovu dobijenih 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 realnom vremenu je stvaranje algoritama koji omogućavaju procjenu slike na osnovu njenog bučnog stanja i vraćanje je u normalu. Ovo je ključna inovacija. Sve ostalo je ranije bilo u širokoj upotrebi. Mnogi rendereri imaju dodatke za GPU renderiranje i OpenGL, podržane od strane bilo koje OpenGL kompatibilne grafičke kartice.

Danas se tvrdi da ova tehnika uklanjanja šuma radi samo na tenderskim jezgrama u budućim Nvidia karticama. Ali zapravo, ova tehnologija je masovno prikazana tek sada, a pojavila se, po svemu sudeći, prošle godine, pošto je u oktobru, na jednom od događaja, Unity pokazao upravo ovu tehnologiju za uklanjanje šuma u praćenju u realnom vremenu.

Trik je u tome što svi objekti ne učestvuju u praćenju zraka onako dobro kako bi trebali. S tim u vezi, dotaknut ćemo se teme globalnog osvjetljenja - mehanizma praćenja koji ima najviše resursa. U životu, svaki predmet na koji padne svjetlost reflektira dio ove svjetlosti. Na primjer, ako uperite izvor svjetlosti u zeleni zid, tada će sva rasvjeta postati zelena jer zeleni zid slabo apsorbuje svetlost.


Refleksija svjetlosnih zraka od površine

U demo-u nije bilo takvog efekta. Umjesto refleksije svjetlosti i promjene svjetlosnog uzorka kadra u zavisnosti od izvora svjetlosti, cijeli prostor je 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 zrake svjetlosti treba izračunati bez obzira da li udaraju u objekte ili ne. Odnosno dodavanje velika količina izvori svjetlosti su dovoljni težak zadatak za proračune rutiranja. Osim toga, niti jedan tehnički demo još nije prikazao objekte koji bi imitirali prozirne objekte.

Kada ćemo vidjeti prednosti?

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

Međutim, napredak nesumnjivo postoji. Prvo, refleksije je sada lakše napraviti, nema potrebe za kreiranjem mapa sjena i svjetla - sve se to rješava praćenjem. Drugo, pojavio se barem neki privid rasutih refleksija. Treće, osvjetljenje i sjene objekata su značajno poboljšane. Sve zajedno nam omogućava da kažemo da se ovo može uzeti u obzir ključna tehnologija u igrama, koja neće izgubiti svoju poziciju u narednih deset godina.

Tekst: Alexey Kharitonov, QA, Bytex