Che cos'è l'illuminazione per pixel?
"Illuminazione per pixel" è un termine usato nella computer grafica per indicare che una scena tridimensionale (3D) determinerà il colore degli oggetti su una base pixel per pixel anziché su una base vertice per vertice. L'uso dell'illuminazione per pixel anziché dell'illuminazione per vertice di solito crea un'immagine o una cornice finita che ha un aspetto più realistico e spesso più nitido, più definito, soprattutto quando viene utilizzata la mappatura di rilievo. In generale, l'illuminazione per pixel è implementata mediante l'uso di pixel shader che possono utilizzare diversi modi per calcolare il modo in cui la luce in una scena colpisce una determinata area della scena e di che colore dovrebbe essere la superficie risultante. Nelle applicazioni 3D in cui la velocità di rendering è importante, come un'animazione dinamica, l'ombreggiatura per pixel potrebbe non essere pratica perché può richiedere passaggi multipli attraverso una scena o può semplicemente impiegare troppo tempo e rendere impossibile ottenere un framerate accettabile.
Una delle forme più comuni di applicazione della luce a una scena 3D è l'uso di un metodo noto come illuminazione per vertice. Questa tecnica prende i vertici di un oggetto - i punti in cui le linee di un oggetto si incontrano - e determina come dovrebbe apparire la superficie di un oggetto in quella singola posizione. Quando a tutti i vertici di una scena sono associate informazioni di illuminazione, il renderer utilizzerà l'interpolazione o altri tipi di algoritmi per stimare l'aspetto della superficie dell'oggetto tra i vertici. Ciò si traduce generalmente in aree che dipendono da un'alta densità di vertici in un oggetto per ottenere effetti di illuminazione nitidi, come un punto culminante di phong, mentre una forma come un cubo con solo sei vertici avrà un'illuminazione ampia e graduale su tutte le superfici, indipendentemente dalla trama o dalla posizione di illuminazione.
Al contrario, un programma può implementare l'illuminazione per pixel. Ciò comporta il passaggio di ciascuno dei pixel in una scena rasterizzata e la determinazione del colore e dell'illuminazione individuali per ciascun pixel, indipendentemente dalla sua vicinanza a un vertice. I risultati sono in genere un'illuminazione nitida e precisa, soprattutto con effetti speculari. Il compromesso per una migliore qualità dell'immagine è un tempo di rendering più lungo, poiché ogni pixel deve essere elaborato da un pixel shader, anche se ciò non riguarda sempre la modellazione 3D, i programmi di grafica e rendering che non devono mantenere un determinato framerate.
I drammatici effetti dell'illuminazione per pixel se applicati correttamente possono effettivamente migliorare l'aspetto di un oggetto a cui è stata applicata una complessa mappatura di rilievo e che i dettagli minuti potrebbero andare persi con l'illuminazione per vertice. Le trame procedurali possono anche beneficiare di un approccio all'illuminazione per pixel. Inoltre, effetti speciali come i volumi delle ombre richiedono l'uso dell'illuminazione per pixel, così come i riflessi di illuminazione complessi, i sistemi di particelle o persino gli aloni in alcuni casi.