RENDER JEDNAČINA (Rendering Equation)

Render jednačina je integralna jednačina koja se zasniva na zakonu održanja energije. Ona govori o tome da je količina svetlosti koja se isija iz neke tačke u prostoru jednaka sumi isijane svetlosti i reflektovane svetlosti. U praksi se modifikuje određenim geometrijskim i optičkim aproksimacijama. U kompjutersku grafiku su je uveli David Immet i James Kayla. 1986 godine. Pošto je ona izvorno data u analitičkom obliku koji kompjuteri ne razumeju, uz pomoć metoda numeričke matematike pribeglo se približnom rešavanju ove jednačine do na određenu tačnost koju određuje korisnik.U originalnom obliku izgleda ovako:

render jednačina

render jednačina

Gde su:

  • I(x,x´) – intenzitet svetla koji je od tačke x stigao do tačke x’,
  • g(x,x´) je geometrijski uslov tj. ograničenje,
  • e(x,x´) je emitovano svetlo iz tačke x do tačke x’
  • ρ(x,x’,x’’) je difuzno rasuta koli;ina svetlosti od tačke x’’ do tačke x preko tačke x’

Vremenom je u zavisnosti od kvaliteta slike koji su najbitniji i ona prilagođavana. U malo drugačijem obliku se može videti na Wikipediji.

rendering equation

Ovde ćemo dati kratak istorijski pregled i neka najpopularnija rešenja da bi ste stekli potpuniju predstavu o tome kako se danas pristupa ovom problemu.

RAY CASTING

Arthur Appel je napisao prvi ray tracing algoritam ali ga je nazvao ray casting. Bilo je to davne 1968 godine. Kasnije je promenjeno ime ovog metoda u ray tracing.

Ray tracing algoritam koriste svi render engini u nekom obliku, iterativni raytracer je najčešći. Metoda počiva na sledećoj ideji:

Mreža piksela od kojih se sastoji ekran se uzima kao polazna osnova za dalji rad. Iz oka posmatrača se kroz svaki pikel ekrana ispali jedan zrak, i prati se njegov put sve dok se zrak ne sudari sa objektom. Ta površina u koju je zrak udario mu određuje boju, a onda se njegov put analizira na dalje, tako što se zrak deli na 2 (ili više, i svaki taj novi zrak se prati do prve sledeće površine u koju udari, pa se ponovo odbija i deli itd.). Ovaj metod ima i neka ograničenja, najčešća su:

  1. Normala površine u koju zrak udara mora biti usmerena ka ravni ekrana, ukoliko to nije slučaj, raytracer ne vidi tu površinu,
  2. Podrazumeva se radi lakšeg računanja da intenzitet svetlosti ne opada sa kvadratom pređenog rastojanja (opadanje intenziteta elektromagnetnih talasa sa rastojanjem) već se uzima da je konstantan, što je naravno nemoguće,
  3. Podrazuemva se da nema apsorpcije svetlosti prilikom kretanja kroz prostor, kao da ona putuje kroz vakuum, a ne kroz vazduh, opet iz razloga da bi se pojednostavio račun.

Specifičnih (ciljanih) ograničenja ima mnogo više, i karakteristična su za svaku pojedinačnu metodu, a zavise pre svega od toga kakvu krajnju sliku želimo da dobijemo, odnosno, kakav utisak želimo da stvorimo. Skromniji render engini imaju mnogo ovih ograničenja odn. skromna podešavanja, pa je posledica toga da svi renderi jako liče jedan na drugi. Ozbiljniji render engini imaju veliki broj opcija, pa korisnik sam podešava do detalja sve što mu treba. Trenutna tendencija sa cloud render enginima (recimo Autodesk A360, Autodesk Fusion 360) je da se korisniku daje mali broj opcija.

BIDIRECTIONAL REFLECTANCE DISTRIBUTION FUNCTION (BDRF)

Jedna izuzetno bitna komponenta ove jednačine je funkcija distribucije odsjaja na neprovidnoj površini. To je funkcija od 4 realne promenljive. Prvi ju je definisao Fred Nicodemus 1965 godine. Funkcija glasi ovako:

fr(ωir) = dLrr) / dEii) = dLrr) / Lii)cosθid ωi

L– radiance (radijansa) je isijana količina svetlosti po jedinici vidljive površine objekta koja se vidi iz neke tačke.

E – iradiance (iradijansa) je isijana količina svetlosti po jedinici površine, a θ je ugao između zraka svetlosti i normale površine.Indeks i označava zrak koji pada na površinu a indeks r reflektovani zrak.

Funkcije koje su izvedene iz ove funkcije za neke posebne slučajeve su:

  • Spatially Varying Bidirectional Reflectance Distribution Function (SVBRDF) – prostorno varijabilna varijanta ove funkcije koja zavisi od 6 promenljivih,
  • Bidirectional Texture Function (BTF) koja izračunava izgled materijala
  • Bidirectional Surface Scattering Reflectance Distribution Function (BSSRDF) koja računa i podpovršinsko rasipanje svetlosti koje je bitno u slučaju ljudske kože. Zavisi od 8 promeljivih.

U slučaju da se primenjuje u realnim uslovima, podrazumeva se da je energija svetlosti pozitivna veličina, i da važi zakon održanja energije.

Ova funkcija se sem u CG koristi i u algoritmima kompjuterskog prepoznavanja oblika (kompjuterski vid).

TEKSTURA (MATERIJAL)

Materijal objekta se sastoji iz mnoštva osobina, i svaka od njih se posebno pravi bilo korišćenjem bitmapa, vektora ili matematičke jednačine. Kada se definišu osobine materijala render engine proračunava izgled materijala, tačnije boju svakog piksela slike uzimajući u obzir sve osobine. Pod terminom šejder se podrazumeva tip materijala, odnosno metoda (u klasičnom programiranju to je funkcija) kojom je opsian materijal. To znači da različiti šejderi imaju različite osobine materijala. U nekom šejderu providnost objekta može biti definisana preko jedne osobine (koja se zove recimo opacity ili transparency), a u drugom šejderu može postojati i tanslucency, refraction, difraction i td. Što su sve osobine koje utiču na ponašanje svetlosti u materijalu a samim tim i na providnost, odsjaj i td. Sledeće osobine su standard u današnjim render enginima:

  • boje/slike koje se na razne načine kombinuju međusobno da bi dale što verniji izgled površine materijala, na engleskom se označava izrazima color, diffuse, decal itd.
  • odsjaj (refleksija),
  • prelamanje svetla u smislu refrakcije,
  • prelamanje svetla u smislu difrakcije,
  • providnost (transparencija),
  • luminescencija (fluorenscencija, fosforescencija, translucentnost),
  • sub surface scatering, koje je karakteristično za ljudsku kožu recimo,
  • površinske deformacije (bump i displacement) itd.

Problem sa osobinama materijala koje se proračunavaju je što njihovo računanje uzima jako mnogo procesorskog vremena, a u igricama se to ne toleriše. Iz tog razloga se izračuna jedno (nekad i više) često stanje materijala, pa se zapamti kao slika na objektu. To je bejkovanje. Kada se jedno takvo stanje teksture zapamti na modelu posle toga se materijal ne izračunava matematički nego se prikaže ta već izračunata slika materijala i to će u najvećem broju situacija u igrici izgledati sasvim dobro, pa igrač neće primetiti razliku, a model će se brže učitavati jer je matematika smanjena na minimum.

OSVETLJENJE OBJEKTA

Osvetljenje objekta se može podeliti u 2 osnovne kategorije:

  1. Direktno, koje dolazi od jednog ili više tačkastih, linijskuh ili površinskih izvora svetlosti. Ovaj tip osvetljenja nije uvek prisutan, jer podrazumeva bar jedan izvor svetlosti direktno uperen u objekat, i u tom slučaju će i odsjaj biti svetla tačka ili linija oko kojeg postoji svetao halo.
  2. Indirektno koje dolazi od difuznog svetla nastalog odbijanjem fotona po prostoru u okolini objekta. Ovo osvetljenje je uvek prisutno jer uvek postoji difuzno osvetljenje nebeskog svoda bilo da je dan ili noć. U slučaju da postoji samo difuzno osvetljenje, odsjaj na objektu neće biti jasan ( u obliku svetle tačke ili linije sa haloom okolo) već će samo biti prisutan kao gradijent od svetle ka tamnoj nijansi boje objekta.

Foton mapa je izračunato osvetljenje na objektu i to je slika objekta u nijansama sive boje.

Bejkovanje osvetljenja se radi na sličan način kao i bejkovanje materijala, tj. da se ne bi stalno proračunavali svetlo (odsjaj) i senka na objektu u ovom slučaju se proračunavaju i odsjaj i senka zajedno sa materijalom pa se konačni izgled objekta snimi kao slika i zalepi na objekat.

Reč je o jako starim šejderima, sa stanovišta kompjuterske grafike odnosno o pionirskim pokušajima izračunavanja osvetljenja na objektima.Vremenom su se pokazali jako zahvalni za rad, tj. daju odličan odnos kvaliteta i vremena rendera i zato su opstali tako dugo.

Gouraud shading

Gouraud shading metodu je Henri Gouraud predstavio naučnoj javnosti 1971 godine. Ovo je interpolaciona metoda izračunavanja osvetljenja koja pokušava da interpolira kontinualnal pad/rast osvetljenja na poligonalniom mesh objektima (površina se sastoji od poligona). Proračun se zasniva na sledećem, površina se deli na trouglove, osvetljenje se izračunava za svako teme trougla, a onda se za ostale piksele radi interpolacija osvetljenja u odnosu na ove tri referentne vrednosti. Ovaj metod daje bolje rezultate od flat shading metode (daje facetiran izgled objekta), i manje je zahtevna sa matematičke tačke gledišta od Phong shading metode.

Phong shading

Phong shading i Phong reflection model predstavio je 1973 godine u svojoj doktorskoj tezi Bui Tuonh Phong na univerzitetu Utah u Americi. To je interpolaciona metoda koja predstavlja poboljšanje prethodne metode. Ova metoda vernije prikazuje osvetljenje glatke površine. Pogotovo daje bolje rezultate ukoliko se odsjaj javlja kao svetla tačka na sredini velikog poligona.

Оставите одговор

Ваша адреса е-поште неће бити објављена.

Ово веб место користи Акисмет како би смањило непожељне. Сазнајте како се ваши коментари обрађују.