Buffer delle Ombre

A partire da Blender v2.31

Gli schemi di illuminazione analizzati finora producono sugli oggetti solo aree più o meno illuminate, ma nessuna proiezione di ombre o auto ombreggiatura, ed una scena senza un'appropriata ombreggiatura perde profondità e realismo.

D'altra parte, il calcolo delle ombre giuste richiede un vero -e lento- ray tracer. Per ogni scan liner, come lo è Blender, le ombre possono essere calcolate usando un buffer delle ombre [shadow buffer] per le ombre proiettate dalle luci. Questo implica che una 'immagine', viene 'vista' nel rendering come se fosse vista dalla luce Spot stessa, e, per ciascun punto, è memorizzata la distanza dal faretto. Ogni punto dell'immagine del rendering più lontano di ciascuno di questi punti è considerato essere in ombra.

Lo shadow buffer immagazzina questi dati. Per tenere l'algoritmo compatto, efficiente e veloce tale shadow buffer ha una dimensione fissata inizialmente e che in Blender può andare da 512x512 a 5120x5120, i valori più alti sono i più accurati.

L'utente può controllare l'algoritmo tramite i pulsanti in basso nel Pannello Spot (Figura 12-16).

Figura 12-16. Pulsanti per ombra della Luce di tipo Spot.

ShadowBuffSize - Pulsante numerico, da 512 a 5120, definisce la dimensione del Buffer dell'ombra.

ClipSta, ClipEnd - Per accrescere ulteriormente l'efficienza dei calcoli dell'ombra vengono in realtà eseguite solo in una gamma predefinita di distanze dalla posizione del faretto (spot). Tale gamma va da ClipSta, più vicino alla luce Spot, a ClipEnd, più lontano (Figura 12-12). Tutti gli oggetti più vicini di ClipSta, a partire dallo Spot, non vengono controllati per le ombre, e sono sempre illuminati. Gli oggetti oltre ClipEnd non vengono controllati per le ombre, e sono sempre in ombra. Per avere un'ombra realistica ClipSta dev'essere inferiore alla distanza tra qualsiasi oggetto rilevante della scena dallo spot, e ClipEnd maggiore della distanza più grande. Per l'uso migliore della memoria allocata ed una migliore qualità dell'ombra, ClipSta dev'essere il più grande possibile e ClipEnd il più piccolo possibile. Questo minimizza il volume dove le ombre dovranno essere calcolate.

Samples - Per ottenere delle ombre morbide lo shadow buffer, una volta calcolato, partecipa al rendering con un proprio algoritmo di anti-scalettatura (anti-aliasing) che funziona effettuando una media del valore delle ombre su un quadrato con lato di una dato numero di pixels. Samples è il numero di pixels. Il suo default è 3, vale a dire un quadrato 3x3. Valori più alti danno un migliore anti-aliasing, ed un tempo di calcolo più lento.

Bias - È la distorsione (bias) usata nel calcolo delle ombre, più alto è il valore, migliore è il risultato ma più lento.

Soft - Controlla la morbidezza del bordo dell'ombra. Più è alto il valore, più è morbido e più è esteso il bordo dell'ombra. Usualmente si dovrebbe assegnare un valore nell'intervallo tra lo stesso valore del Pulsante numerico Sample al doppio di tale valore.

Halo step - Il passo di campionamento della luminescenza [halo] per le ombre volumetriche quando è attivata la luce volumetrica. Ciò sarà spiegato in la Sezione Luce Volumetrica.

Figura 12-17. Esempi di ombre con illuminazione di tipo Spot.

Nota: Per le ombre da far rientrare nel rendering, esse devono essere abilitate ad un livello globale. Questo vuol dire che il pulsante Shadow del Pannello Render nel Contesto Scene ed i Pulsanti Render devono essere attivi!