Home » Articole » Articole » Știință » Fizica » Optica » Lumina » Grafica pe computer: Reflexia luminii

Grafica pe computer: Reflexia luminii

Unul dintre scopurile graficii pe computer este realismul fizic, adică realizarea de imagini care să arate ca și cum ar putea fi fotografii ale realității. Acesta nu este singurul scop. De exemplu, pentru vizualizarea științifică, scopul este de a folosi grafica computerizată pentru a prezenta informațiile cu acuratețe și claritate. Artiștii pot folosi grafica pe computer pentru a crea mai degrabă artă abstractă decât realistă. Cu toate acestea, realismul este un obiectiv major al unora dintre cele mai vizibile utilizări ale graficii pe computer, cum ar fi jocurile video, filmele și publicitatea.

Un aspect important al realismului fizic este iluminarea: jocul de lumini și umbre, felul în care lumina se reflectă din diferite materiale, modul în care se poate curba sau difracta într-un spectru pe măsură ce trece prin obiecte translucide. Tehnicile care sunt folosite pentru a produce cele mai realiste grafice pot lua în considerare toți acești factori și nu numai.

Cu toate acestea, un alt obiectiv al graficii pe computer este viteza. OpenGL, în special, a fost conceput pentru grafică în timp real, în care timpul disponibil pentru redarea unei imagini este o fracțiune de secundă. Pentru un film animat, este în regulă dacă este nevoie de ore pentru a reda fiecare cadru. Dar se așteaptă ca un joc video să redea șaizeci de cadre în fiecare secundă. Chiar și cu viteza incredibilă a hardware-ului modern de grafică pe computer, sunt necesare compromisuri pentru a obține această viteză. Și acum douăzeci de ani, când OpenGL era încă nou, compromisurile erau mult mai mari

Proprietățile materialelor determină modul în care obiectele interacționează cu lumina. Suportul pentru lumină, material și textură în OpenGL 1.1 este relativ brut și incomplet, conform standardelor actuale. Dar conceptele pe care le folosește încă servesc drept bază pentru grafica modernă în timp real și, într-o măsură semnificativă, chiar și pentru cea mai realistă grafică pe computer.

Iluminat

Iluminarea este una dintre cele mai importante considerații pentru grafica 3D realistă. Scopul este de a simula sursele de lumină și modul în care lumina pe care o emit interacționează cu obiectele din scenă. Calculele de iluminare sunt dezactivate implicit în OpenGL. Aceasta înseamnă că atunci când OpenGL aplică culoare unui vârf, pur și simplu folosește valoarea curentă a culorii stabilită de una dintre funcțiile glColor*. Pentru ca OpenGL să efectueze calcule de iluminare, trebuie să activați iluminarea apelând glEnable(GL_LIGHTING). Dacă asta este tot ce faci, vei descoperi că toate obiectele tale sunt complet negre. Dacă vrei să le vezi, trebuie să aprinzi niște lumini.

Proprietățile unei suprafețe care determină modul în care interacționează cu lumina sunt denumite materialul suprafeței. O suprafață poate avea mai multe proprietăți de materiale diferite. Înainte de a studia API-ul OpenGL pentru lumină și material, există câteva idei generale despre proprietățile luminii și ale materialelor pe care trebuie să le înțelegeți. Aceste idei sunt introduse în această secțiune. Amânăm discuția despre modul în care se realizează iluminarea în OpenGL 1.1 până la următoarea secțiune.

Lumină și material

Când lumina cade pe o suprafață, o parte din ea va fi reflectată. Exact modul în care se reflectă depinde într-un mod complicat de natura suprafeței, ceea ce eu numesc proprietățile materiale ale suprafeței. În OpenGL (și în multe alte sisteme de grafică pe computer), complexitatea este aproximată prin două tipuri generale de reflexie, reflexie speculară și reflexie difuză.

Reflexia luminii

În reflexia speculară perfectă („asemănătoare oglinzii”), o rază de lumină care intră este reflectată de la suprafață intactă. Raza reflectată formează același unghi cu suprafața ca și raza de intrare. Un privitor poate vedea raza reflectată numai dacă privitorul se află exact în poziția corectă, undeva de-a lungul traseului razei reflectate. Chiar dacă întreaga suprafață este iluminată de sursa de lumină, privitorul va vedea doar reflectarea sursei de lumină în acele puncte de pe suprafață unde geometria este corectă. Astfel de reflecții sunt denumite lumini speculare. În practică, ne gândim la o rază de lumină ca fiind reflectată nu ca o singură rază perfectă, ci ca la un con de lumină, care poate fi mai mult sau mai puțin îngust.

Reflexia speculară de pe o suprafață foarte strălucitoare produce conuri foarte înguste de lumină reflectată; evidențierile speculare pe un astfel de material sunt mici și ascuțite. O suprafață mai ternă va produce conuri mai largi de lumină reflectată și lumini speculare mai mari și mai neclare. În OpenGL, proprietatea materialului care determină dimensiunea și claritatea luminii speculare se numește strălucire. Strălucirea în OpenGL este un număr în intervalul de la 0 la 128. Pe măsură ce numărul crește, evidențierile speculare devin mai mici. Această imagine arată opt sfere care diferă doar prin valoarea proprietății materiale de strălucire:

Strălucirea

Pentru sfera din stânga, strălucirea este 0, ceea ce duce la o „evidențiere” speculară urâtă care acoperă aproape o întreagă emisferă. Mergând de la stânga la dreapta, strălucirea crește cu 16 de la o sferă la alta.

În reflexie difuză pură, o rază de lumină care intră este împrăștiată în toate direcțiile în mod egal. Un privitor ar vedea lumina reflectată din toate punctele de pe suprafață. Dacă lumina care vine sosește în raze paralele care luminează uniform suprafața, atunci suprafața ar părea privitorului că este iluminată uniform. (Dacă raze diferite lovesc suprafața în unghiuri diferite, așa cum ar fi dacă provin de la o lampă din apropiere sau dacă suprafața este curbată, atunci cantitatea de iluminare într-un punct depinde de unghiul la care raza lovește suprafața în acel punct.)

Când lumina cade pe o suprafață, o parte din lumină poate fi absorbită, altele pot fi reflectate difuz, iar altele pot fi reflectate specular. Cantitatea de reflexie poate fi diferită pentru diferite lungimi de undă. Gradul în care un material reflectă lumina de diferite lungimi de undă este ceea ce constituie culoarea materialului. Acum vedem că un material poate avea două culori diferite – o culoare difuză care arată modul în care materialul reflectă lumina difuz, și o culoare speculară care spune cum reflectă lumina în mod specular. Culoarea difuză este culoarea de bază a obiectului. Culoarea speculară determină culoarea luminilor speculare. Culorile difuze și speculare pot fi aceleași; de exemplu, acest lucru este adesea valabil pentru suprafețele metalice. Sau pot fi diferite; de exemplu, o suprafață de plastic va avea adesea lumini speculare albe, indiferent de culoarea difuză.

OpenGL merge chiar mai departe. De fapt, mai sunt două culori asociate unui material. A treia culoare este culoarea ambientală a materialului, care arată modul în care suprafața reflectă lumina ambientală. Lumina ambientală se referă la un nivel general de iluminare care nu provine direct de la o sursă de lumină. Este alcătuită din lumină care a fost reflectată și re-reflectată de atâtea ori încât nu mai vine dintr-o anumită direcție. Lumina ambientală este motivul pentru care umbrele nu sunt absolut negre. De fapt, lumina ambientală este doar o aproximare brută a realității luminii reflectate multiplu, dar este mai bine decât ignorarea în întregime a reflexiilor multiple. Culoarea ambientală a unui material determină modul în care acesta va reflecta diferite lungimi de undă ale luminii ambientale. Culoarea ambientală este, în general, setată să fie aceeași cu culoarea difuză.

A patra culoare asociată cu un material este o culoare de emisie, care nu este cu adevărat o culoare în același sens ca primele trei proprietăți de culoare. Adică, nu are nimic de-a face cu modul în care suprafața reflectă lumina. Culoarea de emisie este culoarea care nu provine din nicio sursă externă și, prin urmare, pare a fi emisă de materialul însuși. Acest lucru nu înseamnă că obiectul emite lumină care va ilumina alte obiecte, dar înseamnă că obiectul poate fi văzut chiar dacă nu există nicio sursă de lumină (nici măcar lumina ambientală). În prezența luminii, obiectul va fi mai luminos decât poate fi explicat de lumina care îl luminează și, în acest sens, pare să strălucească. Culoarea de emisie este de obicei neagră; adică obiectul nu are deloc emisie.

Fiecare dintre cele patru proprietăți de culoare a materialului este specificată în termeni de trei numere care oferă componentele RGB (roșu, verde și albastru) ale culorii. Lumina reală poate conține un număr infinit de lungimi de undă diferite. O culoare RGB este formată din doar trei componente, dar natura viziunii umane a culorilor face ca aceasta să fie o aproximare destul de bună pentru majoritatea scopurilor. (Vezi Subsecțiunea 2.1.4.) Culorile materiale pot avea și componente alfa, dar singura componentă alfa care este folosită vreodată în OpenGL este cea pentru culoarea materialului difuz.

În cazul componentelor roșii, albastre și verzi ale culorii ambientale, difuze sau speculare, termenul „culoare” înseamnă cu adevărat reflectivitate. Adică, componenta roșie a unei culori dă proporția de lumină roșie care lovește suprafața care este reflectată de acea suprafață și, în mod similar, pentru verde și albastru. Există trei tipuri diferite de culori reflectorizante, deoarece există trei tipuri diferite de lumină în OpenGL și un material poate avea o reflectivitate diferită pentru fiecare tip de lumină.

Sursa: David J. Eck, Introduction to Computer Graphics (Eck), LibreTexts, licența CC BY-NC-SA 4.0. Traducere și adaptare Nicolae Sfetcu

Fizica fenomenologică - Compendiu - Volumul 2
Fizica fenomenologică – Compendiu – Volumul 2

Descoperă universul fizicii printr-o perspectivă fenomenologică captivantă!

Nu a fost votat Interval de prețuri: 47.61 lei până la 168.52 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Fizica fenomenologică - Compendiu - Volumul 1
Fizica fenomenologică – Compendiu – Volumul 1

O explorare cuprinzătoare a fizicii, combinând perspective teoretice cu fenomene din lumea reală.

Nu a fost votat Interval de prețuri: 47.61 lei până la 168.52 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Lumina – Optica fenomenologică
Lumina – Optica fenomenologică

Descoperă lumea fascinantă a fenomenelor optice!

Nu a fost votat 19.02 lei Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.


Descoperă mai multe la MultiMedia

Abonează-te ca să primești ultimele articole prin email.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *