Ce este iluminarea per pixel?

„Iluminarea per pixel” este un termen folosit în grafica computerizată pentru a indica faptul că o scenă tridimensională (3D) va determina culoarea obiectelor pe o bază pixel cu pixel, nu pe bază de vârf cu vârf. Utilizarea luminii per pixel în locul luminii pe vârf creează, de obicei, o imagine sau un cadru finit, care are un aspect mai realist și adesea mai clar, mai definit, mai ales atunci când este utilizată maparea denivelărilor. În general, iluminarea per pixel este implementată prin utilizarea pixel shaders care pot folosi o serie de moduri de a calcula modul în care lumina dintr-o scenă lovește o anumită zonă a scenei și ce culoare ar trebui să fie suprafața rezultată. În aplicațiile 3D în care viteza de randare este importantă, cum ar fi o animație dinamică, umbrirea pe pixel s-ar putea să nu fie practică, deoarece poate necesita treceri multiple printr-o scenă sau poate dura prea mult și face imposibil de atins un framerate acceptabil.

Una dintre cele mai comune forme de aplicare a luminii unei scene 3D este utilizarea unei metode cunoscute sub numele de iluminare per-vertix. Această tehnică preia vârfurile unui obiect – punctele în care liniile unui obiect se întâlnesc – și determină cum ar trebui să arate suprafața unui obiect în acea locație unică. Când toate nodurile dintr-o scenă au informații de iluminare atașate, redarea va folosi interpolarea sau alte tipuri de algoritmi pentru a estima aspectul suprafeței obiectului dintre vârfuri. Acest lucru are ca rezultat, în general, zone care depind de o densitate mare de vârfuri într-un obiect pentru a obține efecte de iluminare clare, cum ar fi o evidențiere phong, în timp ce o formă cum ar fi un cub cu doar șase vârfuri va avea o iluminare largă și gradată pe suprafețe, indiferent de textura sau poziţia luminii.

În schimb, un program poate implementa iluminarea per pixel. Aceasta implică trecerea prin fiecare dintre pixeli dintr-o scenă rasterizată și determinarea culorii și luminii individuale pentru fiecare pixel, indiferent de apropierea acestuia de un vârf. Rezultatele sunt de obicei o iluminare clară, precisă, mai ales cu efecte speculare. Compensația pentru o calitate mai bună a imaginii este un timp de randare mai lung, deoarece fiecare pixel trebuie procesat de un pixel shader, deși acest lucru nu este întotdeauna o preocupare cu modelarea 3D și programele de grafică și randare care nu trebuie să mențină un anumit framerate.

Efectele dramatice ale luminii per pixel atunci când sunt aplicate corect pot îmbunătăți de fapt aspectul unui obiect care are aplicată o mapare complexă a denivelărilor, iar detaliile minuscule s-ar putea pierde cu iluminarea pe vârf. Texturile procedurale pot beneficia, de asemenea, de o abordare a luminii pe pixel. În plus, efectele speciale, cum ar fi volumele de umbră, necesită utilizarea luminii per pixel, la fel ca reflexiile complexe ale luminii, sistemele de particule sau chiar halourile în unele cazuri.