Il calcolo di radiosity Daniele Marini
Radiosity di superfici finite Sistema lineare di N equazioni in N incognite:
Il sistema lineare riscriviamo il sistema lineare da risolvere: Mb = e dove: M è la matrice dei fattori di forma, b è il vettore incognito delle radiosity di ogni superficie, e è il vettore dei termini noti, emissività delle superfici Mi,j = di,j - ri Fi,j di,j è il delta di Kronecker, =1 per i=j; =0 altrimenti
in forma esplicita il sistema si scrive come: 0 ≤ ri < 1 per ragioni fisiche 0 ≤ Fi,i ≤ 1 ; in superfici piane Fi,i = 0 (la faccia non può vedere sè stessa) quindi Mi,i > 0 e il sistema si può riscrivere:
Metodo di Jacobi metodo iterativo; si sceglie una stima iniziale del vettore b, a ogni passo k successivo si valuta l’equazione risolvente, usando il vettore già calcolato al passo k-1:
Metodo di Gauss-Seidel Modifica di quello di Jacobi, ad ogni passo k si usa sia la valutazione del passo k-1 sia quella del passo k stesso:
Gauss-Seidel Vantaggi: più veloce, converge sempre se la matrice è a diagonale dominante (e questo è proprio il caso!):
“guess” iniziale I metodi iterativi si basano su una ipotesi iniziale del valore della soluzione, chiamata guess in generale si può usare come valore di b quello del vettore di emissività e
Gathering vs. Shooting L’iterazione con G-S o Jacobi produce un risultato solo alla fine il metodo Shooting premette di vedere il risultato in volo la complessità è però analoga: si può vedere il risultato parziale in anticipo, poichè tutte le patch hanno fin dall’inizio una radiosità associata
Shooting: metodo di Southwell Riscriviamo l’equazione come: Kb = e dove: K dipende a Fj,i invece che Fi,j come in M (reciprocità) a ogni passo k di iterazione b(k) approssima la radiosità con un errore residuo
Shooting (cont) il residuo al passo k è: al crescere delle iterazioni il residuo tende a 0 il metodo procede generando una approssimazione di b al passo k+1 modificando una sola componente del vettore b
Shooting (cont) a ogni passo si sceglie la componente di radiosità cui corrisponde il massimo residuo, altri residui possono crescere ma alla fine ciascuno tende a zero. l’ordine di aggiornamento non è noto a priori
Shooting (cont) al passo k si supponga che la componente i dia luogo al residuo massimo ri ; imponendo che esso tenda a zero richiede di risolvere la: solo la bi viene modificata, quindi
Shooting (cont) dalla: si ricava: oppure:
Shooting (cont) la forma del residuo diventa: poiché una sola componente di b(k) vien modificata, allora il termine ha solo un componente diverso da zero (quello di indice i) e basta una colonna di K per aggiornare il residuo
Shooting (cont) in conclusione il residuo si calcola:
Shooting (cont) Date le due equazioni: la prima permette il calcolo di radiosità per la patch i, e i residui sono aggiornati con la seconda fino a una soglia minima. Ad ogni passo si usa una sola colonna della matrice K
Shooting (cont) il guess per b può essere 0; il guess per il residuo può essere il vettore di emissività da qui il significato fisico: si minimizza il residuo massimo, cioè la maggiore sorgente di luce, e la si “spara” su tutte le patch; quando il residuo è inferiore alla soglia si passa alla sorgente successiva:
Shooting (cont) infatti: ma: e assumendo Fi,i=0: quindi l’energia emessa dalla sorgente si ripartisce su tutte le altre patch
Calcolo del form factor trascurando occlusioni si può riformulare:
Analogia di Nusselt
Soluzione analitica possibile solo per forme semplici, esistono formule per rettangoli, dischi, cilindri l’integrale d’area può essere sostituito da un integrale di contorno (teorema di Stokes): dove Ci, Cj sono i contorni delle patch Ai, Aj e i due differenziali sono i vettorilungo i contorni attenzione alle singolarità per r->0
Integrazione per contorno Nel caso di patch poligonali l’integrale si può calcolare esplicitamente, stimando il fattore di forma tra un punto e la patch: