Cos’è il rendering volumetrico? Guida agli shader volumetrici, dalle nuvole alle esplosioni image

Cos’è il rendering volumetrico? Guida agli shader volumetrici, dalle nuvole alle esplosioni

Autore: Arndt von Koenigsmarck · Revisione tecnica a cura di Sergen Eren · Ultima revisione: agosto 2026


La maggior parte degli oggetti in computer grafica sono semplici strutture vuote. Un’auto renderizzata, un personaggio, persino una montagna sono costituiti solitamente da una superficie sottile che avvolge il nulla, poiché, nel caso di oggetti solidi, la superficie è l’unica cosa rilevabile dalla camera. Ma la natura è ricca di elementi che non sono affatto solidi. Nuvole, nebbia, fumo, fuoco, polvere in un fascio di luce: possiamo vedere al loro interno e attraverso di essi, e la luce si comporta in modo diverso in ogni punto al loro interno. Il rendering di questi fenomeni è compito del rendering volumetrico, e lo strumento che ne descrive l’aspetto è lo shader volumetrico. Questo articolo descrive entrambi gli aspetti: prima le idee e gli aspetti fisici, poi lo sviluppo concreto all’interno di Redshift, il motore di rendering accelerato da GPU di Maxon.


Il rendering volumetrico, noto anche come “volume rendering”, è la tecnica che consente di generare immagini a partire da griglie tridimensionali di dati anziché da superfici. Mentre un normale modello 3D è definito da poligoni che ne descrivono l’involucro esterno, un volume è definito da voxel, minuscole celle che riempiono un’area dello spazio, ciascuna delle quali memorizza valori quali la densità o la temperatura. Il renderer osserva cosa accade alla luce mentre attraversa tutte quelle celle; ecco perché un volume può essere vaporoso ai margini, denso al centro e luminoso nel mezzo, tutto allo stesso tempo.

Il confronto con il rendering di superficie è il modo più semplice per comprenderlo. Quando un raggio luminoso colpisce una superficie poligonale, il motore di rendering esamina il materiale in un unico punto esatto e il processo è già concluso. Quando un raggio entra in un volume invece, non esiste un unico punto da valutare. Il raggio continua a propagarsi e ogni tratto del percorso può assorbire luce, diffonderla o aggiungerne. Un pixel è un quadrato colorato in un’immagine 2D; un voxel è la sua controparte 3D, un valore in una griglia spaziale. Quella dimensione in più rappresenta l’essenza stessa del rendering volumetrico, compreso il motivo per cui appare così realistico e perché comporta costi così elevati. 

Qui è stata creata una simulazione turbolenta e vorticosa di fumo. In alto a sinistra, la superficie delle nuvole risultanti è stata visualizzata tramite poligoni regolari; in alto a destra, per il rendering è stato utilizzato uno shader volumetrico, che consente ad esempio una retroilluminazione realistica del fumo, nonché trasparenze finemente graduate e la diffusione della luce all’interno del volume.  

Qui la telecamera è stata avvicinata alla simulazione — mostrata per intero in alto — per illustrare schematicamente la differenza di calcolo. La griglia verde rappresenta i pixel del rendering finale, disposti in righe e colonne. Il pixel visualizzato come area verde piena è ancora in elaborazione e viene quindi colpito da un raggio di calcolo (freccia) dal punto di vista della camera, che penetra nello spazio 3D della scena. Nel caso del semplice modello poligonale (a sinistra nell’immagine), il raggio colpisce la superficie e può raccogliere tutte le informazioni necessarie in quel punto (vedi indicatore rosso). Nel caso di un volume, queste informazioni basate sui punti risultano insufficienti, poiché il raggio di calcolo deve raccogliere informazioni — compresi i dati sulla densità e sulla diffusione della luce — in molte posizioni all’interno del volume per poter renderizzare il fumo in modo realistico.

Uno shader volumetrico è il materiale utilizzato per gli oggetti che occupano lo spazio. Anziché descrivere una superficie, indica al motore di rendering in che modo tale elemento, in ogni punto all’interno di un volume, interagisce con la luce. Quasi tutti i motori moderni costruiscono questa descrizione a partire dagli stessi 3 elementi, e la documentazione di Redshift offre per ciascuno di essi un’analogia facile da ricordare con i materiali di superficie:

  • Diffusione: nel caso di un volume, corrisponde al colore diffuso. Definisce quanta luce rimbalza sulle particelle microscopiche all’interno dell'elemento e di quale colore è, e questo è ciò che rende le nuvole bianche e il fumo grigio.

  • Assorbimento: corrisponde alla trasparenza. Definisce quanta luce viene assorbita dall'elemento, ed è ciò che rende scuro il fumo denso e opaco un volume compatto.

  • Emissione: equivale all’incandescenza o all’auto-illuminazione. Consente all’elemento di emettere luce propria: è ciò che fa risplendere dall’interno il fuoco e le esplosioni!

Ogni nuvola, banco di nebbia o palla di fuoco che avete visto in un film è una combinazione di questi 3 comportamenti, solitamente generata dai dati di una simulazione. In Redshift questo ruolo è ricoperto dallo shader Volume Standard, un materiale volumetrico basato su principi fisici per nuvole, fumo, fuoco ed esplosioni. Una piccola precisazione per chiunque sia giunto qui da un motore di ricerca: esiste anche un noto “stress test” per GPU chiamato “Volume Shader BM” che utilizza lo stesso termine. Si tratta però di un benchmark, non di un materiale. Il presente articolo riguarda invece il vero e proprio shader. 

I fisici definiscono la nebbia, il fumo e le nuvole “participating media”, poiché questi elementi fanno sì che lo spazio stesso partecipi all’illuminazione, anziché lasciare che la luce proceda indisturbata fino a raggiungere una superficie. Quando un raggio attraversa un tale elemento, possono verificarsi 4 fenomeni. La luce può essere "assorbita" e trasformata in calore. La luce può essere “diffusa” al di fuori del percorso del raggio, il che ne attenua l’intensità. La luce può essere “diffusa” nel percorso del raggio proveniente da altre direzioni, il che ne aumenta l’intensità. Inoltre, l'elemento stesso può “emettere” nuova luce. L’effetto combinato di attenuazione dovuto all’assorbimento e alla diffusione verso l’esterno è denominato «estinzione», mentre la frazione di luce che sopravvive a un tratto del percorso è denominata «trasmittanza». I parametri dello shader Volumetrico sono, in sostanza, strumenti di facile utilizzo per gli artisti che agiscono proprio su queste caratteristiche.

C'è un altro concetto che svolge un ruolo sorprendentemente importante: la funzione di fase, che è l’equivalente volumetrico del modo in cui un materiale di superficie distribuisce la luce riflessa. Risponde alla domanda su quale direzione prenda la luce dopo essersi diffusa. Le particelle di fumo diffondono la luce in modo pressoché uguale in tutte le direzioni: si tratta del cosiddetto Isotropic Scattering. Le goccioline d’acqua nelle nuvole proiettano la luce prevalentemente in avanti, lungo la direzione originale di propagazione. È proprio questa diffusione in avanti a spiegare perché una nuvola tra noi e il sole abbia un bordo brillante argentato attorno e perché la nebbia in controluce risplenda. I motori di rendering modellano questo fenomeno con la "funzione di fase" di Henyey-Greenstein, un classico che risale a un articolo di astrofisica del 1941, utilizzando un unico valore di anisotropia che va da "-1" (Back Scattering) "0" (Isotropic Scattering) fino a +1 (Forward Scattering). Per quanto riguarda le nuvole nello specifico, Redshift offre inoltre il modello più recente Jendersie-d’Eon, che simula il vero "Mie scattering" delle goccioline d’acqua, riproducendo un picco di diffusione in avanti più realistico rispetto a quanto possa fare il modello Henyey-Greenstein. 

In ciascuno di questi rendering è stata riprodotta la stessa nuvola illuminata dal sole proveniente da dietro. L'unica differenza risiede nel parametro di Anisotropia del materiale volumetrico. Da sinistra a destra, i valori utilizzati sono -0,9, 0 e 0,85. Il valore positivo di Anisotropia nel rendering a destra mostra chiaramente come i raggi vengano rifratti maggiormente verso la parte posteriore del volume della nuvola, rendendo visibile una maggiore quantità di luce solare sui bordi meno densi delle nuvole.

Per i lettori che desiderano approfondire i dettagli tecnici, ecco come gli stessi sviluppatori di Redshift descrivono lo shader Volume Standard. Internamente è strettamente correlato al "Random Walk Subsurface Scattering" presente nei materiali OpenPBR e Standard Surface di Redshift. Subsurface Scattering simula il percorso della luce attraverso un materiale finito e uniforme, come la pelle o la cera; lo shader “Standard Volume” applica lo stesso principio a un "media" eterogeneo la cui densità varia in ogni voxel. I parametri corrispondono quasi uno a uno: il Subsurface Color corrisponde allo Scatter Color del Volume, il Subsurface Radius corrisponde al Transparency Color e il Subsurface Scale corrisponde al controllo Depth del Volume (vedi immagine successiva).

L'immagine mette a confronto l'effetto del Subsurface Scattering (a sinistra) con il Rendering Volumetrico (a destra). Mentre il Subsurface Scattering simula la diffusione della luce all'interno di un volume racchiuso da una superficie poligonale (come cera, pelle, latte o marmo), uno Shader Volumetrico simula proprietà quali la densità e l'emissione di luce dovuta alla temperatura all'interno di uno spazio non definito da poligoni (come fiamme, nebbia, fumo o nuvole).

Durante il rendering, Redshift fa avanzare i raggi nel volume, campionando voxel per voxel man mano che il raggio attraversa l'elemento. La griglia di densità che viene campionata è semplicemente una descrizione scalare del numero di particelle presenti in ciascun voxel rispetto allo spazio vuoto, indipendentemente da qualsiasi colore. Il colore di diffusione è l’albedo di quelle particelle sospese, ovvero il colore della luce che esse riflettono. I controlli di anisotropia indirizzano quella luce diffusa in avanti, all’indietro o uniformemente in tutte le direzioni, utilizzando per impostazione predefinita il modello Henyey-Greenstein o Jendersie-d’Eon per gli elementi acquosi simili alle nuvole.

Il colore della trasparenza è l’aspetto più interessante. Si tratta di una codifica "artist friendly", ovvero la distanza media che ciascuna lunghezza d’onda della luce percorre attraverso l'elemento prima di estinguersi. I valori di rosso, verde e blu rappresentano ciascuno la distanza percorsa dalla propria lunghezza d’onda, mentre il parametro Profondità moltiplica questi valori compresi tra 0 e 1 per ottenere distanze reali, misurate in centimetri e in base alla scala della scena. Poiché le diverse lunghezze d’onda vengono assorbite a velocità diverse, la luce che percorre una distanza sufficiente attraverso questo elemento finisce per assumere una tonalità opposta al colore della trasparenza ( una volta che le altre lunghezze d’onda sono state esaurite). È esattamente questo il fenomeno fisico che rende l’acqua profonda di colore blu, ed è il motivo per cui una sottile sfumatura di trasparenza conferisce ai volumi una profondità naturale e organica che un colore piatto e diffuso non può simulare. 

Il percorso attraverso i voxel spiega come un motore di rendering legga un volume, ma il vero costo risiede nella frequenza con cui la luce cambia direzione al suo interno. Se il motore simula un solo rimbalzo, denominato “diffusione singola”, le strutture sottili come una nebbia leggera appariranno perfette, mentre una nuvola densa risulterà scura e priva di vita. Le nuvole reali sono luminose perché i fotoni rimbalzano decine o centinaia di volte al loro interno prima di fuoriuscire; una densa nuvola cumuliforme riflette fino al 90 per cento della luce che la colpisce. Simulare questa “diffusione multipla” significa seguire ogni raggio attraverso numerosi rimbalzi aggiuntivi, e ogni rimbalzo in più moltiplica il carico di lavoro. Questo è il vero motivo per cui il rendering volumetrico ha la reputazione di essere lento, ed è proprio qui che il rendering su GPU e le approssimazioni intelligenti, trattate nella Parte 2, dimostrano la loro utilità. I motori moderni riducono ulteriormente il carico di lavoro grazie alla riduzione del disturbo, sebbene i volumi siano notoriamente più difficili da ripulire rispetto alle superfici, in quanto i dati ausiliari che guidano la riduzione del disturbo, come le normali alle superfici, semplicemente non esistono all’interno di una nuvola. 

Questa serie di immagini confronta l'effetto di diverse impostazioni del valore "Volume Trace Depth" nel rendering di una nuvola contenente una sorgente luminosa cilindrica. Da sinistra a destra, per "Volume Trace Depth" sono stati utilizzati i valori 1, 5 e 31. È importante notare che l'intensità di diffusione nello shader volumetrico deve essere sufficientemente elevata affinché l'intensità della luce diffusa all'interno del volume sia visibile.

I volumi devono poter essere trasferiti dal software che li simula al motore che li renderizza, e gli sviluppatori hanno risolto quest'esigenza anni fa con OpenVDB. Sviluppato originariamente presso DreamWorks Animation, reso open source nel 2012, insignito di un Oscar per i risultati tecnici ottenuti e ora gestito dall'Academy Software Foundation, OpenVDB rappresenta lo standard de facto per l’archiviazione dei dati volumetrici. La documentazione di Redshift ne offre una sintesi perfetta in una sola riga: “I file OpenVDB stanno al rendering volumetrico come i file EXR stanno alle immagini HDR”. Laddove un file EXR memorizza i pixel, un file VDB memorizza i voxel, e li memorizza in modo sparso, per cui l'enorme spazio vuoto attorno a un sottile pennacchio di fumo non occupa praticamente nulla né sul disco né in memoria.

All’interno di un file VDB, i dati dei voxel sono organizzati in griglie denominate, che Redshift chiama «canali» nei contesti di shading. I nomi sono convenzioni piuttosto che regole, ma quelli più comuni sono density, un valore senza unità che descrive quante particelle riempiono ciascun voxel e quindi dove il volume ha "consistenza", temperature per il calore che alimenta l’emissione del fuoco, velocity per il motion blur e, occasionalmente, una griglia color per i volumi pre-dipinti. In Redshift i nomi dei canali distinguono tra maiuscole e minuscole, il che ha causato non pochi momenti di confusione a molti artisti. Da dove provengono i file VDB? Strumenti di simulazione come Houdini, il simulatore di fluidi in tempo reale EmberGen e il sistema Pyro integrato in Cinema 4D li esportano tutti, e ci sono eccellenti fonti gratuite con cui esercitarsi, tra cui il famoso data set sulle nuvole di Walt Disney Animation Studios e i pacchetti VDB gratuiti di JangaFX


Redshift suddivide il rendering dei volumi in una serie ridotta di strumenti, e sapere quale utilizzare rappresenta già metà del flusso di lavoro. I volumi eterogenei, ovvero qualsiasi elemento con densità variabile come nuvole, fumo, fuoco ed esplosioni, vengono caricati tramite l’oggetto Redshift Volume, che legge un file VDB o una sequenza VDB animata e mostra nella viewport un box di delimitazione o un’anteprima sotto forma di nuvola di punti. L’aspetto di tale volume viene quindi definito dal materiale Volume Standard. I volumi uniformi, ovvero strutture uniformi quali foschia atmosferica e nebbia, non necessitano affatto di dati voxel: l’oggetto Redshift Environment riempie la scena, o un suo livello limitato in altezza, con un mezzo di diffusione. Questo è anche lo strumento per l’illuminazione volumetrica, i tanto amati "raggi divini" che rendono visibili i fasci di luce nell’aria polverosa. Infine, un oggetto Clouds dedicato genera interi cieli procedurali, con una modalità veloce che rende la coltre di nuvole come uno sfondo intelligente e una modalità completamente volumetrica in cui un grattacielo o un aereo può attraversare lo strato nuvoloso ed esserne illuminato. 

Ecco un esempio che mostra una finestra in vetro illuminata dall’esterno. Senza una simulazione atmosferica dell’ambiente circostante, i raggi di luce tra la finestra e il pavimento risultano invisibili. Grazie all’oggetto Environment di Redshft, è possibile simulare la nebbia o un’atmosfera visibile, come quella provocata dall’elevata umidità o dalle particelle di polvere presenti nell’aria. Di conseguenza, i raggi luminosi diventano visibili anche tra gli oggetti.

Esiste un vincolo tecnico che merita di essere chiarito in modo esplicito: i volumi devono rientrare interamente nella memoria della GPU. Si tratta dell’unica classe di asset esclusa dal sistema “out-of-core” di Redshift, pertanto un VDB di dimensioni gigantesche che superi la VRAM disponibile interromperà il rendering anziché rallentarlo. Mantenere le simulazioni alla risoluzione massima richiesta dallo shot non è una semplice scelta in termini di velocità, ma riguarda anche la gestione della memoria disponibile.

Il materiale Volume Standard presenta due modalità di utilizzo. Se impiegato da solo, con i nomi delle griglie inseriti nei campi dei canali, segue un percorso veloce appositamente ottimizzato e si comporta come un classico e semplice shader volume con preset ben calibrati per nuvole, fumo e fiamme. Se utilizzato con nodi di input collegati, diventa completamente programmabile, consentendo di regolare densità, colore e temperatura tramite disturbi procedurali, rimappare le griglie e persino spostare i voxel per ottenere ulteriori dettagli. Per iniziare, i campi integrati sono tutto ciò che serve, e 4 gruppi di parametri svolgono la maggior parte del lavoro:

  • Canali Volume e Density. Il campo “channel” indica il nome della griglia VDB che definisce la forma del volume; quasi sempre si tratta della densità. Il parametro “Density” la moltiplica e determina il carattere complessivo di spessore o sottigliezza della struttura. È necessario digitare il nome della griglia esattamente come indicato; i canali distinguono tra maiuscole e minuscole!

  • Scatter. Colore e Scala determinano ciò che il volume riflette e con quale intensità. Il Modo Anisotropy sceglie la funzione di fase: Henyey-Greenstein, con un cursore da -1 a +1, è la soluzione più versatile e corretta a per il fumo isotropo, mentre Jendersie-d’Eon è lo specialista delle nuvole, che modella la luce che attraversa le goccioline d’acqua.

  • Transparency. I parametri Transparency Color e Depth implementano le distanze percorse per lunghezza d’onda descritte nella Parte 1. Più scuro significa più denso, più chiaro significa più sottile, e qualsiasi colore tinge il volume con il suo opposto in profondità, ombre incluse. Una saturazione delicata fa la differenza in questo caso; è opportuno impostare Depth in relazione alle dimensioni reali del volume, poiché è misurato in centimetri.

  • Emission. Per il fuoco e le esplosioni, dirigere il canale di emissione verso la griglia delle temperature e scegliere la modalità “Blackbody”, che converte le temperature in colori e intensità fisicamente corretti sulla scala Kelvin, dal rosso intenso intorno ai 3.000 K al bianco e al bianco-azzurro oltre i 9.000 K. La modalità alternativa “Color” offre invece un gradiente, la classica sfumatura a fiamma dal nero al rosso al giallo, per un effetto di fuoco più artistico che ignora volutamente le leggi della fisica. 

Esempi di rendering di una torcia accesa, con la fiamma e il fumo rappresentati a diverse temperature (da sinistra a destra: 0, 3.000, 6.000, 9.000 e 12.000 Kelvin). Questa regolazione può essere effettuata in un secondo momento tramite il materiale Volume Standard di Redshift, senza dover simulare nuovamente la scena. 
Anziché affidarsi a una distribuzione fisicamente accurata dei valori di colore e luminosità basata sulle temperature simulate, è inoltre possibile utilizzare gradienti personalizzati e regolazioni cromatiche standard all’interno del materiale volumetrico per personalizzare, ad esempio, il rendering del fumo e delle fiamme secondo le proprie esigenze.

Nella Parte 1 abbiamo stabilito che i volumi densi prendono vita solo grazie alla diffusione multipla, e Redshift offre questa funzionalità tramite un’impostazione di rendering chiamata “Volume Trace Depth”, insieme a un requisito che vale la pena ricordare: la funzione Multiple Scattering funziona con l’illuminazione globale Brute Force. Aumentando Volume Trace Depth rispetto al valore predefinito, una nuvola si trasforma da una massa grigia in un oggetto luminoso e realistico, con un costo di rendering che cresce in modo esponenziale. Le nuvole a diffusione diretta traggono enormi benefici da una maggiore profondità; il fumo isotropico mostra rendimenti decrescenti molto prima; il fuoco emissivo acquisisce una splendida diffusione interna della luce man mano che il suo bagliore illumina il fumo circostante.

Redshift offre anche 3 scorciatoie a cui gli artisti esperti ricorrono prima di aumentare il valore Volume Trace Depth. La prima è Extinction Falloff, che approssima l’effetto di centinaia di rimbalzi aggiuntivi riducendo delicatamente l’estinzione ad ogni rimbalzo effettivo. Il suo valore predefinito di 0,2 rappresenta un punto di equilibrio ottimale e, nel test sulle nuvole riportato nella stessa documentazione, ha prodotto un risultato più luminoso e realistico, con un rendering più veloce rispetto alla stessa scena senza questa impostazione. La seconda è Anisotropy Falloff, la sua naturale compagna, che abbassa leggermente l’anisotropia ad ogni rimbalzo in modo che i raggi più profondi si diffondano in modo sempre più isotropico. Ciò riproduce un classico concetto del trasporto radiativo noto come principio di similarità di van de Hulst: in elementi caratterizzati da una dispersione altamente multipla, diverse combinazioni di albedo di dispersione e anisotropia producono un aspetto quasi indistinguibile, purché le proprietà di trasporto complessive rimangano invariate. Poiché la valutazione della diffusione anisotropa è dispendiosa, attenuarla nel corso dei rimbalzi simula sia una diffusione di ordine elevato sia un rendering del volume più efficiente in termini di risorse. Il terzo è Shadow Density Scale, un classico espediente che consente alla luce di penetrare più in profondità nel volume senza modificarne la silhouette, simulando l’effetto di illuminazione del multiscatter a un costo decisamente inferiore. Un volume ben bilanciato combina solitamente valori moderati di Volume Trace Depth con questi strumenti ausiliari, anziché affidarsi esclusivamente a una profondità estrema. 

Se si lavora con Cinema 4D, non servono software esterni per generare dati volumetrici, poiché il sistema integrato Pyro simula in modo nativo fumo, fuoco ed esplosioni. Il flusso di lavoro è piacevolmente breve. Qualsiasi oggetto con un tag Emettitore Pyro inizia a generare una simulazione, mentre l’oggetto Output Pyro raccoglie i relativi canali, in genere densità, temperatura e velocità (un'introduzione alle simulazioni Pyro è disponibile qui nella documentazione di Cinema 4D). Da lì è possibile eseguire direttamente il rendering oppure salvare la simulazione nella cache come sequenza VDB e ricaricarla tramite un oggetto Volume Redshift, raccomandato nella documentazione come soluzione a basso costo in termini di memoria per la produzione. La parte relativa allo shading è quasi automatica: i preset Volume Pyro inclusi per lo shader Volume Standard di Redshit sono forniti con una Griglia di Densità collegata alla diffusione e la Griglia di Temperatura collegata all’emissione Blackbody, proprio i due collegamenti che trasformano i dati grezzi della simulazione in fumo e fuoco renderizzati. Il Motion Blur è l’unico passaggio che gli artisti tendono a dimenticare. Poiché una sequenza VDB è una serie di istantanee fisse, Redshift legge il movimento dalla Griglia di Velocità; è necessario inserire la velocità nel campo Velocity dell’oggetto Volume e aumentare il valore Velocity Scale finché la sfocatura non corrisponde all’energia della simulazione. Il tutto senza esitazioni: valori ben superiori a 1.000 sono del tutto normali! 

La parte sinistra dell’immagine illustra la prima fase della creazione o del caricamento di una simulazione volumetrica. Nel nostro caso, abbiamo utilizzato la simulazione Pyro in Cinema 4D per generare una nube di esplosione e abbiamo salvato la relativa animazione come sequenza VDB. Ciò consente di riutilizzare la simulazione in altri progetti in qualsiasi momento e rende inoltre il rendering più efficiente in termini di memoria. Le immagini a destra illustrano le fasi successive: configurazione del Volume Shader per controllare il colore e l’emissione, illuminazione della simulazione, correzione colore e aggiunta di effetti visivi quali il bagliore o il motion blur. Tutto ciò può essere effettuato direttamente in Cinema 4D e Redshift oppure in post-produzione, a seconda della pipeline desiderata e dell’eventuale necessità, ad esempio, di integrare il risultato con altri rendering o riprese live-action.

  • Il volume viene visualizzato in nero o è invisibile: verificare che nel campo "Channel" sia stato inserito il nome della griglia con ortografia e maiuscole/minuscole esatte e che almeno una luce abbia un contributo al volume superiore allo zero.

  • Il volume appare con disturbo o sgranato: aumentare innanzitutto il numero di campioni per la luce, poiché le luci dominano il disturbo del volume; gli elementi con forte diffusione richiedono più campioni rispetto a quelli con forte assorbimento.

  • Il volume appare a blocchi: la risoluzione della simulazione è troppo bassa. La rimappatura dello shader può ammorbidirlo, ma solo una cache a risoluzione più alta risolve veramente il problema.

  • Il rendering si interrompe con un errore di VRAM esaurita: il VDB non entra nella memoria della GPU. Ridurre la risoluzione della simulazione, eliminare le griglie inutilizzate dalla cache o suddividere l’effetto.

  • La nuvola appare piatta e grigia: aumentare il valore Volume Trace Depth con IG / Brute Force, mantenere il valore predefinito di 0,2 per Extinction Falloff e ridurre leggermente il valore Shadow Density Scale delle ombre prima di aumentare ulteriormente la profondità.

  • La nebbia offusca l’intero fotogramma: ridurre drasticamente il valore di Scattering dell’oggetto Ambiente; anche valori bassi hanno un forte impatto.

In parole semplici, cos’è uno shader volumetrico?

Uno shader volumetrico è un materiale destinato a riempire lo spazio con elementi quali fumo, nebbia, nuvole e fuoco. Anziché colorare una superficie, indica al motore di rendering come ogni punto all’interno di un volume assorba, diffonda ed emetta luce, solitamente sulla base di dati di simulazione memorizzati in griglie di voxel. 

Qual è la differenza tra un rendering volumetrico e un rendering di superficie?

Il rendering di superficie valuta un materiale nel singolo punto in cui il raggio colpisce la superficie poligonale. Il rendering volumetrico segue il raggio attraverso una griglia 3D di voxel e raccoglie le interazioni luminose lungo l’intero percorso, consentendo di ottenere elementi semitrasparenti e illuminati internamente che nessuna superficie potrebbe imitare. 

Che cos'è un file VDB?

Un file VDB è il formato di file standard del settore per i dati volumetrici, basato sulla libreria open source OpenVDB, sviluppata originariamente da DreamWorks Animation. Memorizza griglie di voxel sparse con nomi quali densità, temperatura e velocità, e viene esportato da strumenti quali Houdini, EmberGen e il sistema Pyro di Cinema 4D. 

Cos'è un voxel e in cosa si differenzia da un pixel?

Un pixel è un quadratino colorato in un'immagine 2D. Un voxel è una cella di una griglia 3D che memorizza valori quali la densità o la temperatura in una determinata posizione nello spazio. Il rendering volumetrico calcola i pixel 2D simulando il passaggio della luce attraverso milioni di voxel 3D. 

Perché i miei rendering volumetrici presentano del disturbo?

Il disturbo nei volumi deriva solitamente dall'illuminazione. Le luci richiedono un numero sufficiente di campioni per determinare il loro contributo all'interno di un elemento diffusivo, quindi aumentare il numero di campioni di luce è in genere più efficace che aumentare i parametri generali di qualità. I volumi in cui prevale la diffusione, come le nuvole, richiedono un numero notevolmente maggiore di campioni rispetto al fumo leggero e assorbente. 

Come si simula un fuoco realistico?

Usa la griglia della temperatura della simulazione per controllare l'emissione in modalità "Blackbody". L'emissione "Blackbody" converte automaticamente le temperature fisiche nei colori e nelle intensità corretti del fuoco, con un bagliore rosso intorno ai 3.000 Kelvin che tende al bianco man mano che la temperatura aumenta. In Cinema 4D, lo shader Standard Volume offre già impostazioni predefinite adatte a molti sistemi di simulazione volumetrica e inserisce automaticamente i nomi corrispondenti delle griglie di voxel. 

Come si creano i raggi di luce?

I "god rays" sono un effetto di illuminazione volumetrica: fasci visibili che si formano quando la luce attraversa un elemento sottile che la diffonde. In Redshift, è possibile aggiungere un oggetto «Redshift Environment», attivare un leggero effetto di diffusione e inserire nella scena una fonte di luce intensa e parzialmente bloccata, come il sole che filtra da una finestra. I fasci luminosi e le ombre volumetriche appariranno in modo naturale. 

Perché il rendering volumetrico richiede così tanto tempo e come posso velocizzarlo?

I volumi sono costosi in termine di tempo perché i raggi vengono campionati in molti punti lungo il percorso e possono diffondersi più volte all'interno di elementi molto densi. Per velocizzare il processo in Redshift, è importante mantenere le simulazioni alla risoluzione necessaria, impostare un valore Volume Trace Depth moderato, lasciare Extinction Falloff al valore predefinito, ridurre Shadow Density Scale invece di aggiungere rimbalzi e lasciare che la GPU e il denoiser facciano il resto.