Radiositatea

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Radiositatea este un algoritm global de iluminare utilizat la redarea în grafica computerizată 3D . Este o aplicație a metodei elementelor finite pentru a rezolva ecuația de redare a scenelor compuse din suprafețe perfect difuzive . Spre deosebire de metodele Monte Carlo (cum ar fi urmărirea căilor ) care gestionează toate tipurile de căi de lumină, strălucirea ia în considerare doar cele care urmează forma LD * E, de exemplu, căile care pornesc de la o sursă și sunt reflectate difuziv un anumit număr de ori (chiar zero) înainte de a lovi ochiul.

Ca metodă de redare, strălucirea a fost prezentată în 1984 de cercetătorii Universității Cornell (C. Goral, KE Torrance, DP Greenberg și B. Battaile) într-un articol intitulat „Modelarea interacțiunii luminii între suprafețele difuze”. Teoria a fost utilizată în inginerie pentru a studia transmisia căldurii încă din anii 1950

Unele motoare de redare comerciale populare bazate pe radiositate sunt Lightscape (acum absorbit de 3D Studio Max al Autodesk ), Radiozity Auto * Des * Sys și ElAS (Electric Image Animation System). Radiance este un program open source de la Synthetic Image System care oferă o simulare precisă a luminii folosind radiance.

Caracteristici estetice

Diferențe între iluminarea directă standard și strălucirea

Includerea calculelor de strălucire în procesul de redare adaugă adesea realism rezultatului datorită modului în care simulează lumea reală.

Să luăm în considerare o cameră simplă. Imaginea din stânga a fost generată cu un randator normal de iluminare directă. Există trei tipuri de lumini în scenă, alese și plasate de autor în încercarea de a crea iluminarea potrivită: lumini spot cu umbre (pentru a crea iluminare pe podea), lumină ambientală (fără de care restul camerei ar fi bine). întuneric) și lumini omnidirecționale fără umbre (pentru a reduce planeitatea luminii ambientale).

Imaginea din dreapta a fost calculată cu ajutorul unui algoritm de radiositate. Există o singură sursă de lumină, o imagine a cerului plasată în afara camerei. Diferența este clar vizibilă. Umbre moi sunt vizibile pe podea, iar diferite efecte de lumină sunt prezente în cameră. În plus, culoarea roșie a covorului se reflectă pe pereții gri, conferindu-i un efect realist. Niciunul dintre aceste efecte nu a fost creat artizanal de autor, toate sunt rezultatul algoritmului.

Prezentare generală a algoritmului de radiositate

Suprafața scenei de afișat este împărțită în una sau mai multe suprafețe (patch-uri), iar algoritmul se ocupă cu o singură suprafață la un moment dat. La fiecare pas al algoritmului, se calculează lumina pe care o primește un patch de la celelalte. O parte din lumină este considerată absorbită, restul se reflectă în scenă pentru următorul pas al algoritmului.

Una dintre metodele obișnuite pentru rezolvarea ecuației de radiositate se numește radiositate de fotografiere și se rezolvă iterativ prin fotografierea (de aici și numele) luminii de pe o suprafață la fiecare pas. După prima trecere, vor fi iluminate numai obiectele care văd sursa de lumină. După a doua, celelalte suprafețe vor primi lumina datorită săriturii acesteia din urmă pe plasturile deja iluminate. Scena capătă strălucire cu fiecare pas, până ajunge la o stabilitate, datorită absorbției aproape totale a luminii de către patch-uri.

Cu succesiunea de pași puteți vedea lumina care inundă camera. Plasturii individuali pot fi văzuți sub formă de pătrate pe pereți și podea.

Formularea matematică

Metoda se bazează pe baza radiației termice , deoarece constă în calcularea cantității de energie transferată între suprafețe. Pentru a simplifica calculul, se presupune că toate suprafețele sunt perfect difuzive . Suprafețele sunt de obicei discretizate într-un număr finit de patrulatere sau triunghiuri peste care este definită o funcție polinomială .

După această fragmentare, cantitatea de energie transferată poate fi calculată utilizând reflectivitatea cunoscută a plasturilor, combinată cu factorul de formă al celor două plasturi. Această cantitate adimensională este calculată pornind de la orientarea geometrică a celor două patch-uri și poate fi imaginată ca fracțiunea zonei de emisie posibile a primului patch acoperită de al doilea.

O descriere mai științifică descrie strălucirea ca energia care părăsește o suprafață într-un interval de timp discret, o combinație a energiei emise și reflectate:

unde este:

  • B i este strălucirea patch-ului i .
  • Și i este energia emisă.
  • R i este reflectivitatea patch-ului, returnează energia reflectată dacă este înmulțită cu energia incidentă (cea care vine din celelalte patch-uri).
  • Toate j ( ) în mediul redat sunt integrate pentru B j F ji dA j , pentru a determina energia care părăsește patch-ul j și ajunge la i .
  • F ji este factorul constant care descrie relația geometrică dintre patch-urile i și j .

Reciprocitate:

din:

Pentru ușurință în utilizare, integrala este înlocuită de o constantă de strălucire pe întregul patch, care ne aduce la versiunea simplificată:

Această ecuație poate fi aplicată oricărui patch. Ecuația este monocromatică, deci trebuie repetată pentru fiecare culoare primară .

F ji constantă poate fi calculată în diferite moduri. Primele metode au folosit un hemicub (un cub imaginar centrat pe prima suprafață pe care a fost proiectată a doua, metodă creată de Cohen și Greenberg în 1985 ) pentru a aproxima factorul de formă. Această metodă a fost costisitoare din punct de vedere al calculului din motivul că trebuie calculat un factor de formă ideal pentru fiecare pereche de suprafețe, care a generat un increment pătratic .

Reducerea timpului de calcul

Deși formularea de bază a metodei duce la o creștere pătratică a complexității, există metode care pot reduce problema. Problema poate fi reformulată sub forma redării unei scene care conține texturi . În acest caz, timpul de calcul crește liniar pe măsură ce crește numărul de patch-uri. Utilizarea unui arbore de partiționare spațială binară poate reduce considerabil timpul petrecut calculând ce patch-uri sunt ascunse de alții.

Întrucât strălucirea poate fi calculată cu ajutorul algoritmilor standard de mapare a texturii, aceasta ne aduce la o accelerație disponibilă cu utilizarea hardware-ului GPU , disponibil și pentru computerele standard.

Beneficii

Unul dintre avantajele algoritmului de radiositate este simplitatea sa relativă de explicație și implementare, ceea ce îl face ideal pentru învățarea studenților ce sunt algoritmii de iluminare globală . Un randator normal de iluminare directă conține toți algoritmii ( proiecție tridimensională , mapare a texturii , îndepărtarea suprafeței ascunse ) necesari pentru implementarea strălucirii. Nu este necesar să aveți o mare cunoaștere a matematicii pentru a înțelege și a aplica această metodă.

Limite

Metodele de radiositate rezolvă numai căile de lumină din forma LD * E, adică căile care pornesc de la o sursă și sunt difuzate continuu înainte de a ajunge la ochi. Deși există numeroase abordări pentru integrarea efectelor de lumină, cum ar fi reflexia speculară [1] și lucioasa [2] , metodele bazate pe strălucire nu sunt de obicei utilizate pentru a rezolva ecuația de redare completă.

Metodele de bază au, de asemenea, probleme de vizualizare (de exemplu, în cazul marginilor obiectelor) cauzate de o discretizare discretă a suprafețelor care duce la erori în filtrul de domeniu spațial. Înțelegerea discontinuității [3] folosește cunoștințe de vizibilitate pentru a genera o discretizare mai inteligentă.

Confuzie despre terminologie

Strălucirea a fost primul algoritm de redare utilizat pe scară largă în calculul luminii difuze indirecte. Metodele anterioare, cum ar fi urmărirea razelor în stil alb, au putut calcula efecte precum reflexii, refracții și umbre, dar, deși erau fenomene globale, nu se refereau la iluminarea globală . În consecință, termenul de iluminare globală a fost confundat cu interreflecție difuzivă , iar Radiosity cu iluminare globală . În schimb, cei trei termeni se referă la concepte diferite.

O altă sursă de confuzie a fost termenul radiometric de radiositate . În context radiometric, radiositatea reprezintă energia pe unitate de suprafață (W / m 2 ) emisă de o suprafață. Termenul este aproape necunoscut în afara graficii computerizate și se numește de obicei emisie radiantă .

Notă

Alte proiecte

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT