7.8.9.1        Come Funziona la Radiosity



Il problema principale del raytracing è di scoprire quale è il livello di illuminazione di ogni punto visibile in una scena. Normalmente, l'illuminazione di un punto è divisa in questi quattro componenti :

Luce diffusa : l'effetto che rende più chiari i lati degli oggetti che sono di fronte alla luce ;
Luce speculare : l'effetto che fa sì che gli oggetti lucidi abbiano dei riflessi più chiari ;
Riflessione : l'effetto 'specchio'
Luce Ambiente : il livello complessivo di luce che ha la scena e che impedisce alle zone in ombra di essere totalmente oscurate.

Il sistema di calcolo radiosity di POV-Ray, basato su un metodo di Greg Ward, fornisce la via per sostituire l'ultimo di questi termini, la luce ambiente costante con un'illuminazione basata su quali superfici sono vicine ad un oggetto e quanto sono illuminate.
La prima cosa che si dovrebbe notare riguardo a questa definizione è che essa è circolare : l'illuminazione di ogni oggetto dipende da tutti gli altri e viceversa. Ciò è vero nel mondo reale, ma nel raytracing possiamo (e dobbiamo) accontentarci di un'approssimazione. L'approssimazione che viene usata è : gli oggetti che osservi hanno il loro valore di luce ambiente che viene calcolato sulla base dell'ambiente circostante, ma durante i calcoli viene usata l'illuminazione ambiente costante. Come fa POV-Ray a calcolare il termine corrispondente alla luce ambiente per ogni punto ? Lanciando raggi supplementari, in direzioni diverse e facendo una media dei risultati. Un punto normalmente può utilizzare 200 o più raggi per ritornare un valore corretto di luce ambiente. Questo fa pensare che il rendering sarebbe 200 volte più lento ed è vero, tranne che per il fatto che il software si avvantaggia del cambiamento molto graduale dei valori della luce ambiente (le ombre vengono calcolate separatamente, per cui i loro bordi, anche se sono molto netti, non costituiscono un problema). In questo modo questi raggi supplementari sono lanciati solo una volta (ogni 50 pixel circa) e poi i valori che ne risultano vengono memorizzati e riutilizzati per i punti vicini dell'immagine, quando possibile).
Il processo di memorizzare e riutilizzare i valori provoca la necessità di un certo numero di parametri che lo regolino, in modo da potere ottenere la scena che desideri.