In questo tutorial vi descriverò lo schema di nodi che ho utilizzato per realizzare un cielo stellato con nuvole bluastre, completamente procedurale, in Blender 4.1, utilizzando il motore di rendering Cycles.
Trascrizione del video
Salve a tutti! In questo tutorial vi descriverò lo schema di nodi che ho utilizzato per realizzare un cielo stellato con nuvole bluastre, completamente procedurale, in Blender 4.1, utilizzando il motore di rendering Cycles.

Non utilizzeremo quindi nessuna immagine, ma solo le Texture Procedurali Noise e Gradient di Blender. Questo ci consentirà di modificare notevolmente l'effetto finale, perché potremo variare i parametri di questi oggetti, senza compromettere la qualità finale del risultato.
L'ispirazione deriva dal cielo notturno di uno dei miei videogiochi preferiti, "The Secret of Monkey Island".
Si tratta, nello specifico, del cielo notturno visibile su Mêlée Island. Dobbiamo quindi realizzare tre componenti per il World Background, in quest'ordine: il fondo stellato, le nuvole bluastre e il bagliore dell'orizzonte.



Il rendering che vi ho mostrato precedentemente è stato realizzato aggiungendo un po' di bagliore alle stelle e altri effetti in post-produzione mediante Nodes Compositing. Dopo aver descritto lo schema di nodi per il materiale di World Background, daremo un'occhiata anche alla post-produzione.

In un nuovo progetto di Blender, passiamo ad un Layout Shader, o comunque apriamo un editor di questo tipo, selezionando World nel selettore dello Shader.
Mettiamo anche una finestra di tipo 3D View nel Layout, così da poter dare un'occhiata ai vari effetti in tempo reale in modalità Rendered.
In questo momento, lo sfondo dell'universo virtuale si presenterà con le impostazioni del file di default di Blender, che nel mio caso è un colore bianco puro con valore di intensità pari a 1.

Prima di procedere, un'annotazione molto importante: NON visualizzate l'anteprima Rendered della 3D Viewport in modalità Ortogonale, perché non restituirà dei risultati corretti! Mantenete, quindi, una vista libera in modalità prospettiva.
Iniziamo con la realizzazione del fondo stellato, ossia partendo da uno sfondo nero sul quale applicare delle stelle, ossia dei puntini colorati con distribuzione, intensità e grandezze casuali.
Per realizzare uno sfondo stellato procedurale in bianco e nero è sufficiente inserire una Texture di tipo Noise nello schema e aumentare in maniera notevole il valore del parametro Scale, portandolo ad esempio a 200,
Portiamo inoltre il valore del parametro Detail almeno a 5, per ottenere un risultato migliore.
Forniamo poi l'uscita del parametro Factor del nodo Noise ad un nodo di tipo Brightness Contrast con un valore negativo per Brightness, come ad esempio -0.7.

Le stelle così ottenute presentano due problemi, perché sono poco luminose e sono in bianco e nero.
Per rendere più luminose non solo le stelle ma, in generale, tutto l'universo virtuale, che alla fine farà da fonte di illuminazione di base della scena, aumentiamo il valore del parametro Strength del nodo World Background, portandolo ad esempio a 3. Vi ricordo che forniremo un ulteriore bagliore alle stelle in post-produzione, mediante Compositing dei Nodes.
Per quanto riguarda il colore, non possiamo utilizzare l'uscita Color del nodo Noise perché il risultato sarebbe anche fin troppo colorato.
Sappiamo però che possiamo moltiplicare i puntini grigi e bianchi dell'uscita Factor di Noise per una Texture colorata in maniera casuale, ottenendo così dei puntini colorati di grandezze ed intensità diverse. Possiamo utilizzare, ad esempio, un'altra Texture Noise, prelevandone questa volta l'uscita Color, con fattore di Scala impostato a 100, così da ottenere molte parti bianche e alcune parti colorate.
Per rendere più incisivi i colori di questa Texture, utilizziamo anche in questo caso un nodo di tipo Brightness Contrast, ma questa volta lasciamo il valore di Brightness a 0 e portiamo invece il valore di Contrast a 0.7 o anche più, a piacere.
Per ottenere le stelle colorate, quindi, moltiplichiamo tra loro le uscite dei due nodi Brightness Contrast mediante un nodo Color Mix in modalità Multiply con Factor 1.
Per concludere questa parte dello schema, possiamo collegare l'uscita del nodo Multiply ad un nodo di tipo Gamma, con il quale potremo far vedere più o meno stelle, rendendole più o meno luminose, senza rischiare di rischiarare lo sfondo, perché la correzione Gamma non agisce come un nodo Brightness.

Abbiamo realizzato il primo effetto di questo tutorial! Possiamo raggruppare i nodi fino a Gamma in un nuovo gruppo, chiamandolo ad esempio STARS, prima di passare all'effetto successivo!
Le nuvole e il bagliore dell'orizzonte vengono realizzati ciascuno in due parti. Nella prima parte si definisce la Texture che genera l'effetto, mentre nella seconda parte si definisce il fattore di miscelazione che aggiunge l'effetto al cielo ottenuto fino a quel punto.
Dal momento che le nuvole vanno miscelate al fondo stellato e che successivamente va applicato il bagliore dell'orizzonte, iniziamo proprio dalla definizione delle nuvole.
In teoria, realizzare le nuvole bluastre dovrebbe essere un compito semplice, perché è sufficiente inserire un'altra Texture di tipo Noise 3D nello schema dei nodi, questa volta con Scale impostato a 3 e Detail impostato a 5, per poi prelevare l'uscita Factor di tale nodo e passare questa informazione ad un nodo di tipo Color Ramp, per definire il colore delle nuvole.
Il nodo Color Ramp va definito a piacere, facendo dei tentativi. Nel mio caso, ho impostato il primo marcatore con colore nero e posizione 0.36, poi ho impostato il secondo marcatore con colore blu puro e posizione 0.93, dopodiché ho cambiato la modalità di transizione in Easing.

Con questi due nodi otteniamo già delle nubi bluastre procedurali, ma c'è un problema: queste nubi sono presenti su tutte le parti dell'universo virtuale! A noi interessa farle partire da una certa altezza sull'orizzonte, con la possibilità di impostare questa altezza a piacere! Voglio quindi creare una maschera gradiente, in bianco e nero, da moltiplicare a queste nuvole, con l'intenzione di non mostrare le nuvole nelle parti corrispondenti alle zone nere della texture gradiente.
Per far ciò, inserisco nello schema una Texture procedurale di tipo Gradient Linear, fornendole in ingresso un nodo di tipo Vector Mapping in modalità Point con Rotation Y impostato a 90°.
Per ottenere la mappatura corretta di questo gradiente, l'ingresso Vector del nuovo nodo Vector Mapping va collegato all'uscita Generated di un nodo Input Texture Coordinate.
Per poter alzare o abbassare la linea di demarcazione del gradiente, aggiungo un nodo di tipo Color Ramp allo schema. In questo caso, dovrò agire sul marcatore nero a sinistra, nella Color Ramp di default, per spostare il punto di transizione del gradiente.
Le due Color Ramp così ottenute possono essere ora moltiplicate con un nodo Color Mix, in modalità di miscelazione Multiply, con fattore di miscelazione pari a 1.

A questo punto possiamo raggruppare anche questo schema di nodi in un nuovo gruppo, chiamandolo ad esempio CLOUDS.
Passiamo ora alla seconda parte dell'effetto delle nuvole bluastre, ossia il suo mixaggio con il fondo stellato.
Per aggiungere questo effetto al fondo stellato, inseriamo un altro nodo Color Mix nello schema, ma questa volta lo lasciamo in modalità Mix, anziché cambiarlo in modalità Multiply, come fatto finora.
Facendo attenzione all'ordine, colleghiamo l'uscita del gruppo STARS al primo ingresso Color del nuovo nodo Mix.
Colleghiamo poi l'uscita del gruppo CLOUDS al secondo ingresso Color del nuovo nodo Mix.

In questo momento, abbiamo sia le nuvole che le stelle, ma ovviamente le stelle non devono essere visibili lì dove le nuvole sono più dense! Per risolvere questo problema, colleghiamo l'uscita CLOUDS all'ingresso Factor del nodo Mix Color che miscela le stelle e le nuvole.
L'uscita di CLOUDS che stiamo utilizzando non va ancora bene, perché è a colori e la sua intensità non è corretta. Per risolvere questi problemi, inseriamo in successione un nodo RGB TO BW e un nodo Gamma tra l'uscita di CLOUDS e l'ingresso Factor del nodo Mix Color. Diamo poi un valore molto basso a Gamma, come ad esempio 0.01.

Il terzo e ultimo effetto è quello di un leggero bagliore all'orizzonte da sommare all'effetto finale.
Lo schema di nodi per questo terzo gruppo può essere ricavato duplicando la successione di nodi Texture Coordinate, Mapping, Gradient Texture e Color Ramp di CLOUDS, per poi modificare i parametri di tali nodi.
In effetti, dal momento che ci serviranno anche dei nodi RGB TO BW e GAMMA, possiamo proprio duplicare il gruppo CLOUDS e i due nodi esterni.
Attenzione qui, perché c'è da fare un'operazione molto importante! In questo momento, la copia appena effettuata è un'istanza del gruppo CLOUDS originale, per cui qualsiasi operazione effettuata in questo gruppo finirà per modificare anche il gruppo originale!

Prima di effettuare qualsiasi operazione, quindi, clicchiamo sul pulsante con il numero 2 all'interno del gruppo, così da ottenere un gruppo separato dall'originale. Blender rinominerà questo nuovo nodo in Clouds 001.

Per prima cosa, rinominiamo il nuovo gruppo in HORIZON-GLOW, dopodiché entriamo all'interno del gruppo.

Eliminiamo da HORIZON-GLOW i nodi Noise Texture, Color Ramp e Multiply, collegando così la prima Color Ramp direttamente all'uscita del gruppo.
Cambiamo la modalità del nodo Gradient Texture da Linear a Easing, per ottenere una transizione più dolce.
In questo momento, abbiamo una maschera gradiente nera all'orizzonte e via via più chiara verso l'alto.
Per quanto riguarda il primo marcatore della Color Ramp, cambiamolo in un colore verde-bluastro scuro, come ad esempio RGB 0.007, 0.018, 0.031, mantenendolo in posizione 0.0.
Per quanto riguarda il secondo marcatore, spostiamolo in posizione 0.09, cioè molto vicino al primo, dopodiché cambiamone il colore in nero e, soprattutto, portiamo Alpha a 0, rendendolo cioè completamente trasparente.
Il nuovo gradiente sarà quindi verde-bluastro in basso e completamente trasparente in alto.

La miscelazione di questo effetto agli altri avviene con un nodo Color Mix in modalità Mix, collegando in particolare il primo Color Mix, che miscelava CLOUDS e STAR, al primo ingresso del nuovo nodo Color Mix.
Effettuiamo un collegamento tra l'uscita del gruppo HORIZON-GLOW e il secondo ingresso del nuovo nodo Color Mix.

L'uscita del gruppo HORIZON-GLOW dovrebbe essere già collegata anche ad un nodo RGB TO BW e ad un nodo GAMMA, per via della duplicazione che abbiamo effettuato poco fa. Colleghiamo quindi l'uscita del nodo GAMMA all'ingresso Factor del secondo nodo Color Mix. Questa volta consiglio un valore uguale o maggiore di 0.5 per il nodo Gamma.

L'output del secondo nodo Color Mix potrà essere quindi inviato al nodo Background, ottenendo così l'effetto finale, al quale dovremo applicare la post-produzione per aggiungere del bagliore alle stelle.
Prima di passare alla post-produzione per aggiungere un po' di bagliore, vi ricordo che tutti gli effetti trattati finora sono stati realizzati con Textures procedurali, per cui è possibile modificarli ed inserire dei keyframes per realizzare delle animazioni.
Ad esempio, possiamo fornire dei nodi Texture Coordinates e Mapping alla Texture Noise che realizza, mediante la Color Ramp colorata, le nuvole. Fatto ciò, sarà possibile animare il movimento e il cambiamento delle nuvole agendo ad esempio sui parametri Location e Rotation del nuovo nodo Mapping.

Ci sono vari modi per animare anche l'intensità luminosa delle stelle.
Ad esempio, è possibile entrare in quel gruppo ed inserire un nodo Color Mix in modalità Multiply con Fattore 1 tra il nodo Gamma e l'uscita del gruppo, per poi inserire una Texture procedurale di tipo Magic e collegare l'uscita Factor di Magic al secondo ingresso immagine del nodo Color Multiply appena creato.

Fatto ciò, si potrà animare l'aspetto della Texture Magic in vari modi, ad esempio modificandone le coordinate con dei nodi Texture Coordinates e Mapping, come fatto per le nuvole, oppure semplicemente animando il valore del parametro Scale della Texture Magic.
In questo modo, la Texture si muoverà sullo sfondo e, moltiplicata alle stelle, le scurirà in maniera casuale. Questo è comunque solo uno dei possibili metodi con i quali potete variare l'intensità delle stelle in maniera casuale e animata.
Ok, spostiamoci adesso in un Layout di tipo Compositing e attiviamo i Nodes per la post-produzione.
Prima di avviare il rendering, attiviamo Emission ed Environment nella sezione Render Passes della scheda View Layers, nell'editor Properties.

Inseriamo anche dei nodi Viewer e Reroute ed attiviamo il tasto Backdrop, così da avere un'anteprima dell'effetto finale dopo il rendering.
Avviamo un rendering della scena, così da avere le informazioni Emission ed Environment e poter applicare un bagliore ed altri effetti al rendering.
Sommiamo tra loro le uscite Emit ed Env del nodo Render Layers mediante un nodo Color Mix in modalità Add e con Factor impostato a 1.
All'uscita di questo nodo, colleghiamo un nodo Glare, che nel mio caso ho impostato in modalità Fog Glow con un valore basso per il parametro Threshold, alta qualità, Size 9 e, soprattutto, Mix pari a 1. Ho parlato del parametro Mix del nodo Glare in diversi tutorial pubblicati precedentemente nel mio canale, dove ho mostrato che, impostando tale parametro a 1, otteniamo solo l'effetto Glare, isolato, da poter modificare a piacere.
A questo punto potete aggiungere altri nodi per modificare ulteriormente l'effetto, come ad esempio Glare, Blur o RGB Curves, come ho fatto io.
In ogni caso, sarà necessario sommare gli effetti Glare così ottenuti al rendering originale, cosa che può essere fatta mediante l'utilizzo di un altro nodo Color Mix in modalità Add con fattore di miscelazione pari a 1. L'uscita Image di Render Layer va collegata al primo ingresso Image del nodo Add.

Nulla ci vieta di applicare anche altri effetti dopo questa miscelazione, come ad esempio una correzione del contrasto e della luminosità, oppure un effetto Vignetting finale.
Non resta che avviare il rendering dell'animazione ed esaminare il risultato così ottenuto.

Bene, anche per questo tutorial è tutto! Spero vi sia stato utile! A presto!