Mappe Ambientali

A partire da Blender v2.31

Le superfici lucide generate da Blender mostrano delle evidenze speculari. Il fatto ironico su questi ombreggiatori speculari, tuttavia, è che sono sensibili solo alle luci. Nello specifico, gli ombreggiatori speculari mostrano le superfici con un punto brillante come una riflessione speculare di una lampada.

Tutto questo ha senso eccetto che se si gira la telecamera direttamente verso la lampada non la si vede! La telecamere vede questa luce solo se è riflessa da un ombreggiatore speculare, non direttamente. D'altra parte, gli oggetti che appaiono molto brillanti nella scena (che riflette tantissima luce verso la telecamera) ma che non sono lampade non mostrano queste rilevanze.

È abbastanza facile fare una lampada che sia direttamente visibile alla telecamera ponendo qualche oggetto visibile che appaia come qualche tipo adatto di lampada fissa, fiamma, sole, e così via. D'altra parte, non ci sono dei rimedi immediati al fatto che gli oggetti circostanti non appaiono nel rilievo speculare.

In una parola, scarseggiano le riflessioni. Questo è il tipo di problema su cui si punterà usando la tecnica della mappatura ambientale.

Proprio come si effettua il rendering della luce che raggiunge il piano di vista usando la telecamera per definire un punto di vista, si può effettuare il rendering della luce che raggiunge la superficie di un oggetto (e quindi, la luce che può in fondo essere riflessa verso la telecamera).

La mappatura ambientale di Blender effettua il rendering di una mappa dell'immagine cubica della scena nelle sei direzioni cardinali da qualsiasi punto. Quando i sei tasselli dell'immagine vengono mappati in un oggetto usando le coordinate di input Refl, creano la complessità visiva che gli occhi si aspettano di vedere dalla riflessione su superfici lucide.

Nota: È utile ricordare che il vero obiettivo di questa tecnica è la credibilità, non l'accuratezza. Gli occhi non hanno bisogno di una simulazione fisicamente precisa del viaggio della luce; necessitano solo di essere portati a credere che la scena sia reale mostrando la complessità che si aspettano. La cosa meno credibile delle immagini ottenute dal rendering è la sterilità, non l'imprecisione.

Il primo passo da seguire nella creazione di una mappa ambientale consiste nel definire il punto di vista per la mappa. Per cominciare, si aggiunge una empty alla scena e la si pone nella posizione speculare alla telecamera rispetto alla superficie riflettente. (Questo è possibile, a rigor di termini, solo per superfici di riflessioni piane).

Idealmente, la posizione dell'empty dovrebbe essere speculare alla posizione della telecamera tra il piano del poligono in cui sarà mappata. Sarebbe ridicolmente difficile creare una mappa ambientale dettagliata diversa per ogni poligono di una mesh, quindi ci si avvantaggerà del fatto che l'occhio umano è molto credulone.

In particolare, per oggetti relativamente piccoli e complessi, si può rimediare ponendo l'empty verso il centro. Si nomina l'empty env in modo che ci si potrà riferire tramite il nome nelle impostazioni della mappa ambientale.

Si creerà una sfera riflettente su un piano riflettente, usando le impostazioni indicate in Figura 11-21.

Figura 11-21. Esempio di utilizzo della Mappa Ambientale.

Si noti che la Empty 'env' è posta esattamente sotto la telecamera, ad una distanza dal piano riflettente pari a 3 unità Blender, che è uguale all'altezza della telecamera sullo stesso piano.

Ora, si posizionano delle luci, si lascia la sfera senza un materiale preciso, e si sposta il piano su un diverso livello [layer]. Per esempio, tutto sul livello 1, ad eccezione del piano che viene posto sul livello 2.

Si dà al piano un materiale con bassi Ref e Spec e si aggiunge una texture sul canale due con i parametri della Figura 11-22.

Figura 11-22. Il materiale del piano riflettente.

Si noti sia la mappatura di Refl che l'effetto Cmir. Si usa il canale 2 e non l'1 perché il canale 1 sarà necessario in seguito nell'esempio.

Figura 11-23. Le impostazioni della Mappa Ambientale del piano riflettente.

Ora si definisce la texture appena assegnata come una EnvMap nella Pulsantiera della Texture (F6) (Figura 11-23). Nel Pannello Envmap, si noti il campo Ob: contenente il nome dell'Empty rispetto a cui verrà calcolata la Mappa Ambientale. Si noti anche la risoluzione del cubo con cui sarà calcolata la Mappa ambientale e, più importante, i pulsanti Don't render layer: (Non effettuare il rendering del livello).

Dato che la Mappa ambientale viene calcolata dalla posizione dell'Empty, essa deve avere una vista senza ostacoli della scena. Dato che il piano riflettente potrebbe nascondere totalmente la sfera, questi deve essere posto sul proprio livello che deve essere marcato come 'Da non portare nel rendering' [Not renderable] per il calcolo della Mappa Ambientale.

Premendo F12 inizia il processo del rendering. Prima, vengono calcolate le sei diverse immagini quadrate che costituiscono la Mappa ambientale, in seguito viene prodotta l'immagine finale, della sfera riflessa sul piano.

Figura 11-24. La sfera su una superficie riflettente.

Per aggiungere ulteriori attrazioni visive alla scena, si aggiunge una grande sfera che racchiude l'intera scena e si mappa un'immagine del cielo su di essa per simulare un mondo reale e nuvoloso. Quindi si aggiunge una nuova Empty al centro della Sfera e si sposta la Sfera sul Livello 3. Quindi, si dà una Mappa Ambientale alla sfera esattamente come si è fatto per il piano (ma questa volta è il livello 3 a non dover essere incluso nel rendering!).

Ora si aggiungono dei cilindri, per rendere l'ambiente ulteriormente interessante, e, prima di premere F12 si torna alla texture del piano e si preme il pulsante Free Data. Questo obbligherà Blender a ricalcolare la Mappa Ambientale per il nuovo, diverso, ambiente.

Questa volta nel processo del rendering saranno calcolate dodici immagini, sei per ciascuna Mappa Ambientale. Il risultato è in Figura 11-25. La sfera è più lucente del piano a causa delle impostazioni del materiale leggermente diverse.

Figura 11-25. sfera riflettente su una superficie riflettente.

Ma un momento, c'è un problema! La sfera riflette il Piano, ma il Piano riflette una Sfera grigio scura! Questo avviene perché la Mappa ambientale del Piano viene calcolata prima della Mappa Ambientale della sfera. In questo modo, quando viene calcolata la sfera resta grigio scura, mentre quando viene calcolata la Mappa ambientale della Sfera il piano ha già la sua Riflessione.

Per porvi rimedio si individua il Pulsante Numerico Depth nel pannello Envmap della pulsantiera della Texture e lo si imposta 1 sia per il la mappa ambientale del plano che per quella della sfera. Questo impone il calcolo ricorsivo delle Mappe Ambientali. Viene calcolata ciascuna Mappa Ambientale, quindi esse vengono ricalcolate tante volte quante indicato in 'Depth', sempre una dopo l'altra. Il risultato per questa soluzione è la Figura 11-26.

Figura 11-26. Una sfera riflettente su una superficie riflettente con riflessioni multiple.

Ora, se ci si sta ancora chiedendo perché il primo canale della texture del materiale del Piano è stato lasciato vuoto... Si aggiunge una nuova texture al primo canale del materiale del piano. Lo si rende Glob, regolando il Nor ad un'intensità di 0.25 (Figura 11-27).

Figura 11-27. Impostazione della texture aggiuntiva per la Mappa di Rugosità [Bump Mapping].

Questa nuova texture dovrebbe essere di tipo Stucci; regolata con un Noise Size sotto 0.15 o quasi. Se si effettua ora il rendering l'immagine del piano appare come acqua increspata (Figura 11-28).

Figura 11-28. La sfera riflettente su dell'acqua riflettente con riflessioni multiple.

Si deve avere la BumpMap su un canale precedente quello della Mappa Ambientale in quanto le textures vengono applicate in sequenza. Se si invertono i canali la riflessione apparirebbe interrotta dalle onde.

Si può salvare una Mappa Ambientale per usarla in seguito o per caricarla col pulsante adatto nella Pulsantiera della Texture. Si può anche costruire la propria mappa ambientale. Lo standard consiste nel porre sei immagini mappate su un cubo su due righe di tre immagini ciascuna, come in Figura 11-29.

Figura 11-29. La Mappa Ambientale così come viene salvata.

Blender consente tre tipi di mappe ambientali, come si può vedere in Figura 11-23:

Nota: Si può animare l'acqua dell'esempio precedente impostando una IPO per i valori di ofsX e ofsY della posizionamento della texture nella Pulsantiera del Materiale. Effettuando il rendering l'animazione apparirebbe con le increspature della superficie in movimento, con la riflessione che cambia di conseguenza!

Nota: Bisogna calcolare la Mappa Ambientale sul Piano una volta sola all'inizio se non si muove nient'altro! Quindi essa può essere static. La Mappa Ambientale sulla sfera è un'altra questione, dato che non rifletterà i cambiamenti delle riflessioni nell'acqua a meno che non sia calcolata per ciascun frame dell'animazione. Quindi essa dovrebbe essere di tipo Anim.

Se è la telecamera il solo oggetto in movimento e si ha un piano riflettente, anche l'Empty deve spostarsi e si devono usare Mappe Ambientali Anim. Se l'oggetto è piccolo e la Empty è nel suo centro, la Mappa ambientale può essere Static, anche se l'oggetto stesso ruota dato che l'Empty non si sposta. Se, d'altra parte, l'Oggetto trasla la Empty dovrebbe seguirlo e la Mappa Ambientale essere del tipo Anim.

Le altre regolazioni sono:

Nota: Il calcolo della Mappa Ambientale può essere disabilitato ad un livello globale dal Pulsante Interruttore EnvMap nel Pannello Render della Pulsantiera del Rendering.