Regolazione delle Luci

A partire da Blender v2.31

Ok, abbiamo visto le basi. Ora possiamo veramente parlare d'illuminazione. Lavoreremo su un singolo esempio, più complicato di un piano: 'un piano su una sfera', per vedere cosa si può ottenere in Blender con un'illuminazione realistica.

Riorganizzeremo la composizione della Figura 12-25. La figura scimmiesca è Cornelius, il fratellino piccolo di Suzanne. Ha un materiale piuttosto lucido marrone chiaro (R=0.8, G=0.704 B=0.584, Ref=0.7, Spec=0.444, Hard=10 - Sì, non molto scimmiesco, ma si parla di luci, non di materiali!) ed è posizionato su un piano blu (R=0.275, G=0.5, B=1.0, Ref=0.8, Spec=0.5, Hard=50). Per ora è illuminato da un singolo faretto [spot] (Energy=1.0, R=G=B=1.0, SpotSi=45.0, SpotBl=0.15, ClipSta=0.1, ClipEnd=100, Samples=3, Soft=3, Bias=1.0, BufSize=512).

Figura 12-25. La composizione per la regolazione della Luce.

Un rendering di Cornelius con questa impostazione, con OSA=8 e le ombre (Shadows) abilitate, dà il risultato di Figura 12-26. Il risultato è brutto. Ci sono delle irrealistiche ombre molto nere su Cornelius, e quelle proiettate da Cornelius stesso sono inaccettabili.

Figura 12-26. Una semplice impostazione della luce Spot.

La prima regolazione è su ClipSta e ClipEnd, se sono regolati in modo da includere il più possibile la scena (ClipSta=5, ClipEnd=21) i risultati sono decisamente migliori, almeno per le ombre proiettate. Quella di Cornelius resta troppo nera (Figura 12-27).

Figura 12-27. L'impostazione di una sola luce Spot con una taglio (Clipping) adeguato.

C'è un trucco utile per impostare i valori del Clipping: Ciascun oggetto in Blender può agire da Telecamera nella vista 3D. Quindi si può selezionare il faretto (Spot) e cambiare la vista attraverso di esso premendo CTRL-NUM0. Quello che si vede, in modo ombreggiato (shaded), è mostrato in Figura 12-28.

Tutte le cose più vicine al faretto di ClipSta e quelle più lontane di ClipEnd non appaiono affatto. Quindi si possono regolare con precisione questi valori verificando che tutti gli oggetti che proiettano ombre siano visibili.

Figura 12-28. Regolazione dello Spot. A sinistra: ClipSta troppo alto; Al centro: Buono; A Destra: ClipEnd troppo basso.

Continua a mancare il fenomeno fisico della diffusione. Un corpo illuminato emana luce esso stesso, quindi le ombre non sono completamente nere giacché un po' di luce s'irradia dalle regioni limitrofe.

Questa diffusione di luce è correttamente tenuta in conto in un Ray Tracer, ed anche in Blender, tramite il Motore della Radiosità. Ci sono però dei metodi con cui si può imitare questo fenomeno in modo accettabile.

Li analizzeremo, dal più semplice al più complesso.

I tre punti Luce

Il metodo dei tre punti luce è un classico, uno schema molto semplice per ottenere una scena con un'illuminazione più morbida. La luce Spot è la principale, o la Luce Chiave [Key Light], della scena, quella che proietta l'ombra. Aggiungeremo altre due luci per simulare la diffusione.

La seconda luce è per la Retro Illuminazione [Back Light]. Viene posta dietro Cornelius (Figura 12-29). Questa illumina il lato nascosto del personaggio, e consente di separare il primo piano dell'immagine dal fondo, aggiungendo complessivamente un senso di profondità. Di solito la Back Light è forte come la Key Light, se non di più. Qui usiamo Energy=1 per la Luce di tipo Lamp (Figura 12-30).

Figura 12-29. Impostazione della Retro-Illuminazione [Back Light].

Figura 12-30. La sola Key Light (a sinistra). Solo la Back Light (al centro) ed entrambe (a destra).

Il risultato è ancora migliore. Infine, la terza luce è quella di Riempimento [Fill Light]. Lo scopo della luce Fill è quello di illuminare le ombre davanti a Cornelius. Porremo la luce Fill esattamente nella posizione della telecamera, con una Energy più bassa della luce Key e della Back (Figura 12-31). Per questo esempio è stata scelta una Energy=0.75 (Figura 12-32).

Figura 12-31. Impostazione della Luce di Riempimento (Fill).

Figura 12-32. Le sole luci Key e Back (a sinistra). Solo la luce Fill (al centro) e tutte e tre (a destra).

La luce di Riempimento (Fill) rende visibili le parti del modello totalmente immerse nell'ombra dalle sole luci Key e Back.

Perdita del colore: Il metodo dei tre punti può essere ulteriormente migliorato aggiungendo una quarta luce, specialmente quando è presente un pavimento di un colore vivace, come in questo caso.

Se c'è un pavimento di un colore vivace il nostro occhio si aspetta che il pavimento diffonda in giro, parte della luce, e parte di questa colpisca il modello.

Per simulare questo effetto si pone un secondo faretto (spot) esattamente speculare a quello Chiave (Key) rispetto al pavimento. Questo vuol dire che, se il pavimento è orizzontale e z=0, come nel nostro esempio, e con la Key light posta in (x=-5, y=-5, z=10), allora la luce di diffusione del pavimento sarà posta nel punto (x=-5, y=-5, z=-10), puntando in alto (Figura 12-33).

Figura 12-33. L'impostazione della Luce di Diffusione del Pavimento.

L'energia per tale luce sarà più bassa della Luce Key (qui è 0.8) ed il suo colore deve coincidere con quello del pavimento (qui R=0.25, G=0.5, B=1.0). Il risultato appare in Figura 12-34.

Figura 12-34. Impostazione di una quarta Luce.

Si noti che abbiamo usato una luce Spot non una Lamp, questa dovrebbe essere completamente bloccata dal pavimento (ombreggiato) a meno di impostare il faretto come senza ombre (shadeless) premendo il pulsante appropriato.

Infatti avremmo potuto usare una Lamp ma se il pavimento è lucido la luce proiettata è più riflessa che diffusa. La luce riflessa, fisicamente è essa stessa un cono proveniente dalla sorgente speculare.

Si può ulteriormente migliorare l'effetto facendo in modo che il Faretto [Spot] proietti ombre ed impostando il suo valore di ClipStart abbastanza alto in modo che il piano non proietti ombre, o rendendolo efficace solo per il suo livello e ponendo il piano su un altro livello.

I tre punti luce - Esterno

Usando una luce Spot come luce chiave il precedente metodo è sfortunatamente limitato ad interni o, al massimo, esterni notturni. Questo perché la Key light è ad una distanza finita, da cui si diffondono i raggi, ed il pavimento non è uniformemente illuminato.

In esterno, su una chiara giornata assolata, tutti i pavimenti saranno uniformemente illuminati, e le ombre proiettate.

Per avere un'illuminazione uniforme su tutto il pavimento è ottima una luce Solare (Sun). E se si aggiunge una luce Hemi per simulare la luce proveniente da tutti i punti del cielo (come in Figura 12-8) si ottiene una bella illuminazione esterna... ma non abbiamo ombre!

L'impostazione della luce Chiave (la Sun, R=1.0, G=0.95, B=0.9, Energy=1.0) e le Luci Fill/Back (entrambe rappresentate dalla Hemi, R=0.8, G=0.9,B=1.0, Energy=0.4) appare in Figura 12-35 ed il rendering relativo in Figura 12-36.

Figura 12-35. Impostazione della luce Sun e della Hemi per l'illuminazione esterna.

Figura 12-36. Il rendering dell'illuminazione esterna con la Sun e la Hemi.

La mancanza di ombre fa apparire Cornelius come se fluttuasse nello spazio. Per avere l'ombra si pone un faretto (Spot) in coincidenza della Sun con la stessa direzione. Lo si rende uno Spot con solo ombre [Shadow Only] col pulsante appropriato. Se Energy è più bassa di 0.9 e tutte le altre impostazioni sono tenute ai valori usati nell'esempio precedente (BufSize=512, Samples=3, Soft=3, Bias=1, ClipSta=5, ClipEnd=21) il risultato è quello di Figura 12-37 (al centro).

Figura 12-37. Il rendering in esterno.

L'ombra è un po' a blocchi perché Cornelius ha molti piccoli dettagli e BufSize è troppo piccolo, ed il valore di Samples è troppo basso per tenerlo correttamente in conto. Se si alzano BufSize a 2560, Samples a 6 e Bias a 3.0 il risultato è quello in Figura 12-37 (a destra). Più morbido.

Area Luminosa

Il concetto di Luce proveniente da un punto è un'approssimazione. Nessuna sorgente di luce nel mondo reale è senza dimensioni. Tutte le luci si irradiano da superfici, non da punti.

Questo implica un paio di cose interessanti, principalmente sulle ombre:

Il primo punto è approssimato con la regolazione di 'Soft' del faretto (Spot), ma non il secondo. Per chiarire tale punto si immagini un palo alto e sottile in mezzo a un pavimento illuminato dal Sole.

Il Sole non è un punto, ha una dimensione e, per noi terrestri, ha un'ampiezza di mezzo grado. Se si guarda l'ombra si noterà che è molto netta verso la base del palo e lsi sfoca andando verso la punta. Se il palo è abbastanza alto e sottile la sua ombra svanisce.

Per afferrare questo concetto si dia uno sguardo alla Figura 12-38. Il Sole irradia la luce, l'oggetto in mezzo ostruisce completamente i raggi del Sole solo nella zona blu scuro. Per un punto nella regione blu chiaro il Sole è parzialmente visibile, quindi ciascuna di tali aree è parzialmente illuminata.

Figura 12-38. L'area luminosa e la sua ombra.

La regione blu chiaro è una regione parzialmente in ombra dove l'illuminazione si riduce lentamente dalla luce piena al buio totale. È anche evidente, dalla Figura 12-38 che questa regione di transizione è più piccola subito dopo l'ombra proiettata dall'oggetto e si allarga allontanandosi da esso. Inoltre, se l'ombra proiettata dall'oggetto è più piccola della luce proiettata dall'oggetto (e se la luce proiettata dall'oggetto è il Sole si ricade in questo caso) c'è una distanza oltre la quale resta solo l'ombra parziale Figura 12-39.

Figura 12-39. L'area luminosa e la sua ombra 2.

In Blender, se si pone un solo Spot ad una distanza fissa dal primo piano e si guarda l'ombra proiettata sul secondo piano dato che questo secondo piano è ulteriormente più lontano si noterà che l'ombra si allarga ma non si sfoca (Figura 12-40).

Figura 12-40. La luce Spot e la sua ombra.

Per simulare un'area luminosa con Blender si possono usare diverse luci Spot, come se si simulasse l'area della luce proiettata con un numero discreto di punti luce.

Questo può ottenersi ponendo diverse luci Spots manualmente, o usando la Duplicazione ai Vertici [DupliVert] di Blender (la Sezione Duplicazione ai Vertici [DupliVerts] nel Capitolo 22), che è più efficiente.

Si aggiunge una Mesh Griglia [Grid] di 4x4. Dove c'è la luce Spot, ci si assicuri che la normale punti in basso, consentendo a Blender di mostrare le Normali ed eventualmente ribaltandole, come spiegato nella la Sezione Modifiche elementari nel Capitolo 6 (Figura 12-41). Si imparenta lo Spot alla Grid, si seleziona la Grid e nel Contesto Oggetto [Object] il Pannello Anim Settings (F7) si preme DupliVert e Rot. Rot non è strettamente necessario ma aiuterà nel successivo posizionamento dell'Area Luminosa. Si dovrà avere un insieme di Spots come nella Figura 12-42.

Figura 12-41. Impostazione della Griglia (Grid).

Figura 12-42. La luce Spot ed i suoi duplicati ai vertici [dupliverts].

Si diminuisce l'energia (Energy) dello Spot. Se per un solo Spot si è usata una certa energia, ora la si deve suddividere fra tutti i duplicati. Ci sono 16 Spots, quindi si dividerà per 1/16 di Energia (ovvero Energy=0.0625).

Gli stessi due renderings di sopra, con questo nuovo taglio dell'area della luce produrrà il risultato di Figura 12-43. Il risultato è lontano da quello atteso, perché il campione di luce Spot dell'area di luce è troppo grossa. D'altra parte un campionamento più fine richiederebbe un maggior numero di Spots duplicati e dei tempi di rendering inaccettabili.

Figura 12-43. Simulazione di un'area di luminosa con più Spots.

Un risultato migliore si può raggiungere ammorbidendo gli Spots, ovvero impostando SpotBl=0.45, Sample=12, Soft=24 e Bias=1.5 (Figura 12-44).

Figura 12-44. Simulazione di un'area luminosa con più Spot soffusi.

Finalmente, la Figura 12-45 mostra ciò che capita a Cornelius una volta che la Luce Chiave (Key) viene sostituita con i 65 Spots duplicati con Energy=0.0154 in disposizione circolare. Si noti come l'ombra ricada più morbidamente partendo da netta vicino ai piedi e sfocandosi man mano che ci si allontana da lui. Questo è il comportamento fisico corretto.

Figura 12-45. Cornelius sotto l'Area Luminosa.

Illuminazione Globale (ed Ombreggiatura Globale)

Le tecniche precedenti funzionano quando c'è una sola sorgente, o, almeno un numero finito di luci, che proiettano ombre distinte.

Le sole eccezioni stanno nella composizione per esterni, dove la luce tipo Hemi simula quella proveniente dal cielo, e nell'Area Luminosa, dove più faretti simulano una sorgente di luce di dimensioni finite.

La prima di queste due è molto vicina ad una buona luce esterna, per il fatto che la luce Hemi non deve produrre ombre e quindi non c'è bisogno di un risultato realistico.

Per ottenere una situazione realistica per gli esterni, specie per un tempo nuvoloso, si deve avere una luce proveniente da tutte le direzioni del cielo, e che proietti ombre!

Questo si può avere usando una tecnica molto simile a quella usata per l'Area Luminosa, ma usando una semisfera come mesh genitore. Questa viene solitamente chiamata "Illuminazione Globale".

Si può usare sia una Sfera UV sia una IcoSfera, quest'ultima ha i vertici distribuiti uniformemente mentre la prima ha una maggior concentrazione di vertici ai poli. Usando una IcoSfera quindi si ottiene un'illuminazione più 'uniforme', tutti i punti del cielo irradiano con la stessa intensità; una Sfera UV ha molta più luce al/i polo/i. Personalmente raccomando la IcoSfera.

Prepariamo la composizione, includendo un piano e qualche solido, come in Figura 12-46. Useremo delle forme semplici per apprezzare meglio il risultato.

Figura 12-46. La scena dell'Illuminazione Globale.

Ci si sposta nella vista dall'alto per aggiungere una IcoSfera, una suddivisione di livello 2 della IcoSphere di solito è sufficiente, con un livello 3 si hanno risultati più omogenei. Si dimensiona la IcoSfera in modo che contenga completamente ed approssimativamente tutta la scena. Si torna nella vista frontale e, in Modo Edit, si cancella la metà inferiore della IcoSfera (Figura 12-47). Questa sarà la nostra "Volta Celeste" con cui i vertici saranno imparentati e duplicati ai vertici (duplivert).

Figura 12-47. La Volta Celeste.

Ancora nella Vista dall'Alto si aggiunge una Luce Spot, la si imparenta alla mezza IcoSfera (CTRL-P) e si premono i pulsanti DupliVert e Rot esattamente come nell'esempio precedente. Il risultato, nella Vista Frontale, è quello in Figura 12-48.

Figura 12-48. La volta Celeste con gli Spots duplicati.

Questo non è quello che vogliamo, dato che tutti gli spots puntano verso l'esterno della scena e non la illuminano. Ciò è dovuto al fatto che le normali della IcoSfera puntano verso l'esterno. È possibile invertirne la direzione selezionando tutti i vertici in Modo Edit e premendo il pulsante Flip Normals nel Pannello Mesh Tools del Contesto di Editing (F9) (Figura 12-49).

Figura 12-49. Ribaltamento delle normali.

Questo produce la nuova composizione di Figura 12-50.

Figura 12-50. La volta celeste corretta e le Luci Spot duplicate ai vertici.

Per ottenere un buon risultato si seleziona la Luce Spot originale se ne cambiano i parametri per avere un angolo maggiore con bordi più diffusi (SpotSi=70.0; SpotBl=0.5); con i valori ClipSta e ClipEnd adatti; in questo caso 5 e 30, rispettivamente, in ogni caso i valori appropriati per racchiudere tutta la scena; si aumenta samples a 6 e softness a 12. Si diminuisce Energy a 0.1; ci si ricordi che si stanno usando molti faretti, quindi ciascuno dev'essere indebolito. (Figura 12-51).

Figura 12-51. La regolazione della Luce Spot.

Ora si può effettuare il rendering. Se si assegnano dei materiali e viene dato un Mondo (World), il risultato dovrebbe essere quello di Figura 12-52. Si notino le ombre dell'illuminazione 'omnidirezionale'. Un risultato ancora migliore lo si ottiene con una IcoSfera di livello 3.

Figura 12-52. Sistemazione con la Luce Spot.

Questa tecnica dell'Illuminazione Globale sostituisce efficacemente, ad un costo computazionale molto alto, la Hemi per la composizione per esterni precedente.

È possibile aggiungere una componente direzionale della luce simulando il Sole sia con un unico Spot sia con un'Area Luminosa.

Un'alternativa potrebbe consistere nel rendere la IcoSfera 'meno uniforme' suddividendo una delle sue facce un certo numero di volte, come fatto per le facce posteriori in Figura 12-53. Questo viene fatto selezionando una faccia e premendo il pulsante Subdivide, ancora nel Pannello Mesh Tools del Contesto di Editing (F9). Quindi si deseleziona tutto e si ri-seleziona la piccola faccia interna la si suddivide ancora, e così via.

Figura 12-53. La creazione di un'area più densa di faretti.

Ne risulta una luce direzionale molto soffusa con l'illuminazione globale della volta celeste o, brevemente, una volta celeste asimmetrica (Figura 12-54). Questa è ottima per delle condizioni nuvolose, ma non molto buone per delle limpide giornate assolate. Per dei giorni davvero sereni, è meglio mantenere la volta celeste separata dalla luce Solare, in modo da poter usare colori differenti per ciascuno.

Figura 12-54. Il rendering con una volta celeste asimmetrica.