ILLUMINAZIONE INDIRETTA | |||||||||||||
di Fabio Leporelli | |||||||||||||
Prima d'iniziare è d'obbligo una
breve spiegazione del concetto d'illuminazione indiretta. Normalmente
l'algoritmo di raytracing, che è stato il più utilizzato nella scorsa
decade, calcola la luce solo nei punti illuminati direttamente, lasciando
le zona d'ombra completamente scure, a differenza di ciò che avviene nella
realtà. Per ovviare a questo problema si è sempre ricorso a set up di luci
molto complessi che andavano a simulare il rimbalzo dei raggi sui vari
oggetti. Ora la maggior parte dei motori di rendering ci offrono la
possibilità di creare illuminazioni realistiche in pochi passaggi, facendo
si che un raggio di luce invece di fermarsi ,al contatto con un oggetto,
rimbalzi per andare a toccare un altro oggetto e così via. Il raggio
,rimbalzando, porterà con se parte del colore dell'oggetto, posandola
sull'oggetto successivo. In xsi l'entità demandata al trasporto della luce
viene chiamata fotone.
Questa in poche parole è l'illuminazione indiretta, ora vediamo come simularla all'interno di Softimage|Xsi. Come scena utilizzeremo il classico cubo di Cornell, e cominceremo analizzando l'algoritmo di global illumination. Per utilizzare l'algoritmo di global illumination devono esistere alcuni fattori: -Deve esserci almeno una luce abilitata ad emettere fotoni -Deve esserci almeno un oggetto che trasmette i fotoni e uno che li riceve -Deve essere abilitata nelle opzioni di render e della region Qui sotto vediamo la scena renderizzata con una sola area light di tipo point. | |||||||||||||
Come potete notare, il tutto è un po' troppo pulito e perfettino, e poi il soffitto che non viene illuminato a sufficienza risulta troppo scuro. Ora vediamo la stessa immagine con attivata l'illuminazione globale. | |||||||||||||
Il colore violaceo è dovuto dalla somma del colore rosso e di quello blu, che essendo stati trasportati dai fotoni sono andati a mischiarsi sul pavimento. In questo caso ho usato dei settaggi un po' troppo pesanti, difatti nella realta il rimbalzo dei colori non è a questi livelli. Questo è un caso estremo che serve a chiarire il concetto di global illumination. Andiamo ad esaminare la scena, e a ricostruire i passaggi necessari a simulare l'illuminazione di quest'ultima immagine; Selezionate la luce e sotto il Tab Photon attivate Global illumination, questo ci da accesso a tre parametri, Energy,Intensity e Number of emitted photons. | |||||||||||||
Energia ed intensità decidono quanto deve essere forte ed evidente l'effetto.E' importante sapere che lavorano a seconda della distanza della luce, se una luce è troppo lontana e non ha abbastanza energia i fotoni non riesciranno a raggiungere gli oggetti e l'illuminazione non cambierà di una virgola da quella tradizionale. Questi due parametri non vanno ad influenzare i tempi di resa. Number of emitted photons come dice il nome stesso decide il numero dei fotoni da emettere; questo valore va aumentato solo se necessario, inquanto si rischia di prolungare i tempi di resa oltre il dovuto. Ora selezionate il cubo e cliccate sul tasto Selection (che trovate sulla destra dello schermo) e poi ancora sulla voce Visibility | |||||||||||||
Nel pannello appena aperto selezionate sia la voce Transmitters che Receivers. Transmitters serve a far trasmettere i fotoni all'oggetto , receivers a farglieli ricevere. Un oggetto puo' anche solo trasmettere (o ricevere)a seconda delle esigenze, quest'ottimizzazione serve a diminuire i tempi di rendering in scene particolarmente complesse. | |||||||||||||
L'ultimo passaggio consiste nell'attivazione della voce global illumination nelle Render options e nelle Region options(se abbiamo bisogno del preview), qui troviamo le voci Accuracy e Radius. Accuracy i ammorbidisce e rende più piacevole l'effetto, radius decide il raggio dei fotoni e cioè la loro grandezza. Tenete presente che utilizzando raggi particolarmente bassi il numero di fotoni da emettere per avere un effetto convincente, dovrà essere molto elevato, percui vi consiglio di fare vari test con diverse ampiezze di raggio. | |||||||||||||
I parametri nelle immagini non corrispondono a quelli da me utilizzati per la creazione dell'immagine. Lascio a voi la sperimentazione utile ad apprendere al meglio il funzionamento dell'algoritmo. La global illumination lavora in maniera differente a seconda della scena nella quale viene utilizzata, percui non esistono dei valori applicabili universalmente, starà a voi trovare i settaggi più appropriati. | |||||||||||||
CONTINUA |