• eng
  • deu
  • esp
  • fra
  • Blender modifica intensidade e cor da sombra com o Compositor
  • Tieniti aggiornato sulle novità del sito con un rss feed reader
  • Pagina Facebook Grafica e Programmazione
  • canale Youtube Grafica e Programmazione
  • Graphics and programming Twitter page

Blender modificare intensità e colore ombra con il Compositor

In questo tutorial per Blender (aggiornato alla versione 2.9) vediamo come cambiare il colore e come scurire/schiarire l'ombra di un oggetto nel Compositor di Blender. Questo può essere utile soprattutto quando vogliamo aggiungere un oggetto 3D a una foto preesistente, per adattare meglio l'ombra alla luce e agli oggetti presenti nell'immagine, senza dover renderizzare la scena ad ogni cambiamento.

 

Creiamo la scena 3D:

Come esempio di modello da utilizzare per il fotoinserimento, creiamo un semplice cubo con la sua ombra: partiamo dalla scena di default e diamo al cubo colore #95A6FF, nel tab "Material Properties" della Properties Window

alziamo il cubo e creiamo sotto un piano, riposizioniamo la camera, settiamo come motore di rendering Cycles, nel tab Render Properties della Properties Window, e 500 Samples per il Render

premiamo sul tasto F12 per creare l'immagine renderizzata

Per nascondere il piano, ma non l'ombra del cubo, lo selezioniamo e nel tab Object Properties della Properties Window, nel sottopannello Visibility, settiamo l'opzione "Shadow Catcher" (lo consideriamo cioè solo come un "afferratore di ombra")

Eliminiamo lo sfondo dell'immagine renderizzata, spuntando l'opzione "Transparent"  nel tab "Render Properties" > Film

avviamo il rendering e otteniamo l'oggetto con solo la sua ombra

Come si può vedere, nella figura ci sono due tipi di "zone ombreggiate": la parte del cubo non esposta alla luce (1) e l'ombra che viene proiettata sul piano, ora invisibile, (2) 

Cercheremo ora di schiarire le due "ombre", in modo indipendente l'una dall'altra, utilizzando il Compositor, in modo da limitare il numero di rendering da effettuare nel caso volessimo modificare più volte l'intensità per adattarla meglio ad una foto. 

 

Modificare l'intensità dell'ombra usando le scene nel Compositor:

In questo metodo utilizzeremo le "scene", per separare il cubo dalla sua ombra sul piano e organizzare in modo più semplice la loro gestione.
Quindi nella casella di testo, in alto a destra, rinominiamo la scena attuale (che conterrà solo il cubo) come "Cube scene"

clicchiamo ora sul pulsante a destra per creare una nuova scena, quella che dovrà contenere solo l'ombra sul piano,

e scegliamo come opzione "Full Copy", per copiare tutti gli oggetti dalla prima alla seconda scena

e verrà creata una copia di tutti gli oggetti dalla prima alla seconda scena

rinominiamo la seconda scena come "Shadow scene"

Nella "Shadow scene" dobbiamo eliminare il cubo, però vogliamo che continui a proiettare l'ombra sul piano, quindi non lo cancelliamo, ma lo nascondiamo alla camera: selezioniamo il cubo e, nel tab "Object Properties", nel pannello Visibility > Ray Visibility  togliamo la spunta all'opzione "Camera"

Ora eliminiamo il piano dalla prima scena, nascondendolo durante il rendering: selezioniamo dal menu a tendina la "Cube scene"

nell'Outliner attiviamo tutte le opzioni per la visibilità

quindi disabilitiamo il rendering del piano

selezioniamo il workspace "Compositing" e attiviamo l'opzione "Use Nodes"

Appaiono subito due nodi: "Render Layers" (con la scena già settata su "Cube Scene") e il nodo "Composite", che rappresenta tutto quello che apparirà nel rendering finale.
Aggiungiamo un altro nodo "Render Layers", utilizzando il comando nel menu Add > Input > Render Layers, e nel suo menu a tendina selezioniamo "Shadow scene" 

questi due nodi rappresentano quello che viene renderizzato nelle due scene, quella con il cubo e quella contenente solo l'ombra.
Selezioniamo ora la "Cube scene" nel menu a tendina e attiviamo, nel tab "View Layer Properties", lo Shadow Pass che permette di raccogliere le informazioni sulle ombre che ci serviranno per lavorare su una determinata zona del cubo

Lo Shadow Pass crea una maschera: le parti della scena illuminate sono di colore chiaro, quelle corrispondenti alle ombre e allo sfondo (senza elementi illuminati) sono nere. Se la nostra scena avesse come sfondo due piani ortogonali visibili 

La maschera avrebbe l'aspetto seguente, in cui possiamo notare: la parte del cubo illuminata (1), i piani illuminati (2-3), la parte del cubo in ombra (4), l'ombra del cubo sul piano (5), lo sfondo (6)

Nel nostro caso però il piano è invisibile, quindi se aggiungiamo il nodo Viewer con Add > Output

e lo colleghiamo con la porta shadow
 

avviamo il rendering e nel Compositor visualizziamo

utilizzando l'uscita della porta alpha che fornisce una maschera, che rappresenta in colore chiaro gli oggetti presenti e in nero lo sfondo trasparente

possiamo sottrarre i valori di una maschera all'altra, utilizzando il nodo Math con opzione Subtract, che aggiungiamo con Add > Converter > Math

per il quale selezioniamo l'opzione "Subtract" al posto di "Add" e otteniamo la maschera

che ci permetterà di lavorare solo sulla parte in ombra del cubo che ci interessa.

Aggiungiamo perciò il nodo RGB Curves, dal menu Add > Color > RGB Curves, inseriamo in "Fac" la maschera ottenuta in precedenza e in "Image" il rendering della scena, modifichiamo la curva dei canali combinati (Combined RGB->"C") e rendiamo così più chiara la zona ombreggiata del cubo

Si consiglia di utilizzare il nodo RGB Curves, o simili, in quanto la parte in ombra dell'oggetto di solito è colorata, quindi per un miglior risultato potrebbe essere necessario agire su ogni singolo canale separatamente.
Ora rendiamo più chiara l'ombra del cubo sul piano. Per schiarire un'ombra non dobbiamo però rendere più luminosa l'immagine dell'ombra, altrimenti alla fine avremo un'immagine bianca, ma renderla più o meno trasparente, quindi dobbiamo aumentare o diminuire l'intensità della maschera del suo canale alpha e modificare di conseguenza l'immagine dell'ombra.
Dalla porta "alpha" del nodo Render Layers della scena "Shadow scene" estraiamo la maschera

Per modulare l'intensità e l'influenza della maschera usiamo il nodo Bright/Contrast (Add > Color > Bright/Contrast) che permette di scurire la maschera  

ciò ci permette di aumentare la trasparenza dell'immagine dell'ombra utilizzando il nodo SetAlpha, agendo sulla parte dell'immagine delimitata dalla maschera. Aggiungiamo dunque il nodo SetAlpha, con Add > Converter > SetAlpha, e settando un valore opportuno di "Bright" modifichiamo la trasparenza.

Ora sommiamo i risultati dei lavori effettuati sulle due scene, utilizzando il nodo Add > Color > Alpha Over, ponendo il cubo nel secondo ingresso "Image" con "Fac" = 1

attiviamo l'opzione "Use Alpha" nel nodo "Composite"

e avviamo il rendering, premendo il tasto F12, ottenendo così il risultato desiderato, che possiamo salvare ed utilizzare in seguito 

nota: può succedere che, forse a causa di un errore, non si veda il risultato giusto del "Composite" nel rendering, selezionare allora prima View Layer e poi di nuovo Composite nella finestra di rendering

 

Per inserire un'immagine di sfondo, si può aggiungerla utilizzando il nodo Add > Input > Image e collegarla al cubo e alla sua ombra con un altro nodo "Alpha Over" (collegato al precedente di avevamo parlato prima). Per esempio, se vogliamo mettere il cubo sopra l'immagine di un pavimento, scaricata da Pixabay.com, settando Bright:-23.3

renderizzando otterremo

 

Modificare il colore delle ombre usando le scene nel Compositor:

Utilizziamo i nodi precedenti per colorare le ombre. 
Utilizziamo la porta "Alpha" del nodo Render Layers, corrispondente alla scena "Shadow scene", contenente le informazioni sulla trasparenza dell'ombra, che possiamo regolare come prima con i nodi "Bright/Contrast" e SetAlpha. Misceliamo ora l'ombra ottenuta con un colore (rosso), rappresentato dal nodo RGB (Add > Input > RGB) con colore #FF0000, in un nodo Mix (Add > Color > Mix). In ingresso alla porta "Fac" inseriamo l'ombra di cui abbiamo prima modificato l'intensità, in modo da conservare la densità dell'ombra e di poterla variare a nostro piacimento.

se colleghiamo l'uscita del nodo "Mix" al nodo "Composite" e avviamo il rendering premendo il tasto F12, otteniamo l'ombra colorata desiderata

Coloriamo ora la parte del cubo in ombra.
Come prima eseguiamo la sottrazione (Add > Converter > Math, con opzione "Subtract") tra "Alpha" e "Shadow" per poter calcolare l'area su cui agire

Modifichiamo quindi il colore e la luminosità della parte del cubo in ombra, utilizzando il nodo "Color Balance" (Add > Color > Color Balance);  modifichiamo la proprietà "Lift", quella che si riferisce a toni scuri o ombre, settando il colore esadecimale #FF204A, ottenendo

Uniamo ora il cubo modificato con la sua ombra, collegando il nodo "Color Balance" appena visto con il nodo "Mix", con cui avevamo colorato l'ombra.

avviamo il rendering, premendo il tasto F12, ed otteniamo l'effetto desiderato (in caso contrario cambiare come prima da Composite a View Layer e viceversa per aggiornare)

 

Cambiare il colore delle ombre durante il rendering con il nodo Light Path:

Per completare il discorso vediamo ora come cambiare il colore delle ombre anche durante il rendering.
Cycles è un motore di rendering ray tracing, nel quale i raggi partono dalla camera e in seguito a varie interazioni vengono scomposti, contenendo varie informazioni.
Utilizziamo quindi il nodo "Light Path" (Add > Input > Light Path) che ci aiuta nelle elaborazioni, dandoci indicazioni su che raggio stiamo considerando (proveniente dalla camera, o che contiene informazioni sulle ombre, o sul diffuse, sul glossy etc.)

Per cambiare il colore a noi interessano i raggi che contengono le informazioni sull'ombra (i raggi di ritorno che incontrano un oggetto come ostacolo); con il loro aiuto nel caso "is Shadow Ray" vogliamo che l'oggetto non venga considerato opaco, ma come se i raggi passassero attraverso un oggetto di materiale trasparente colorato, per realizzare questo sostituiamo lo shader Principled con uno Transparent (Add > Shader > Transparent BSDF) colorato, utilizzando l'informazione della porta "is Shadow Ray" per filtrare gli shaders in un nodo "Mix Shader" (Add > Shader > Mix Shader)

e, avviando il rendering, otteniamo

questa soluzione però presenta qualche problema con lo Shadow Catcher, perché l'ombra perde il colore.

Per questo tutorial, su come modificare intensità e colore di un ombra con il Compositor, è tutto, sperando che vi aiuti nei vostri fotoinserimenti, per amalgamare meglio gli oggetti 3D nella scena. Happy blending!

Se ti è piaciuto l'articolo condividilo con un amico:

Articoli correlati:

Blender: dove si trova il file startup

In questo tutorial per Blender (2.83+) in italiano si parlerà del file startup e dei files di configurazione, cosa sono ...

Leggi l'articolo >

Come sfocare selettivamente un oggetto in Blender e animazione

In questo tutorial mostreremo come sfocare selettivamente un oggetto in Blender utilizzando il "Compositor", lasciando invariati quelli vicini, indipendentemente dalla ...

Leggi l'articolo >

 

Vai alla lista dei tutorials: > Blender <