Apri argomento con navigazione
In questa pagina troverete una breve introduzione al sistema di simulazione Pyro che consente di calcolare nebbia, nuvole, fumo, fuoco ed esplosioni. Per ulteriori informazioni su tutte le impostazioni del tag Emettitore Pyro, del tag Carburante Pyro, dell'oggetto Output Pyro o delle impostazioni della Scena Pyro ad esso collegate, consultate le rispettive pagine del manuale.
Per gestire diverse impostazioni di simulazione all'interno di una scena, usate l'oggetto Scena di Simulazione.
Qui possiamo vedere due semplici esempi di simulazione Pyro: a sinistra del fumo colorato, a destra una palla infuocata.
Alcune fasi di una simulazione Pyro possono essere salvate in un oggetto Set Volumi che può essere utilizzato come nuovo stato iniziale di una simulazione. Inoltre, le singole proprietà di un oggetto Set Volumi possono essere separate come oggetti Volume separati. Anche questi possono essere utilizzati per definire lo stato iniziale di una simulazione Pyro. Inoltre, questi oggetti Volume possono essere utilizzati anche per il "meshing", cioè la conversione della densità simulata di una simulazione Pyro in un oggetto poligonale.
Per eseguire il rendering di una simulazione Pyro salvata come sequenza .vdb, è possibile utilizzare, ad esempio, l'oggetto RS Volume o il materiale Pyro Volume di Redshift già preconfigurato per l'uso con Pyro.
In questa pagina sono trattati i seguenti argomenti:
Forse vi sorprenderà se qui parliamo di simulazione di fluidi. Di fatto si applicano le stesse leggi fisiche sia per i gas che per i liquidi, per cui possiamo utilizzare metodi di calcolo simili per i liquidi e anche per i movimenti dei gas. In Pyro, tuttavia, l'attenzione è chiaramente rivolta alle simulazioni di gas visti i parametri a disposizione.
In questo tipo di simulazione, è necessario innanzitutto creare un volume entro cui il gas viene creato. Al gas vengono attribuite proprietà quali densità, massa, velocità e temperatura. Anche l'ambiente dell'Emettitore di Gas acquisisce proprietà come la temperatura, la pressione o la direzione e la forza di gravità. Con questi dati chiave, la simulazione può quindi prevedere il movimento dei gas e dei solidi sospesi fotogramma per fotogramma. Come per altre simulazioni, è quindi importante che non si salti avanti e indietro nel tempo ma che la simulazione sia eseguita fotogramma per fotogramma dall'inizio. Tuttavia, la simulazione può anche essere memorizzata come immagine nella memoria o come file cache, il che consente di combinare la simulazione con i generatori di mesh o con il rendering di Redshift.
Le simulazioni Pyro possono anche essere mixate con altri tipi di simulazione. Qui nell'esempio il fumo scorre su un piano spingendo via una sfera Corpo Rigido.
Per poter calcolare la simulazione il più rapidamente possibile, lo spazio (o l'aria simulata nell'area del Emettitore Pyro) viene suddiviso in cubi ben distinti, i cosiddetti Voxel. Forse conoscete già questo principio grazie al sistema OpenVDB dell'oggetto Costruttore Volume. La dimensione di questi Voxel determina la dimensione della simulazione, nonché la densità di dettagli e i requisiti di memoria. Quanto più piccoli sono i Voxel, tanto più dettagliati saranno calcolati il fumo e le fiamme. Tuttavia questo richiede anche più memoria e potenza di calcolo, il che deve essere tenuto in considerazione, soprattutto per i volumi di simulazione più grandi. Pertanto, scegliete sempre con attenzione una dimensione di voxel adeguata. Inoltre potete iniziare deliberatamente con una simulazione a bassa risoluzione, più facile da modellare e da calcolare velocemente, e poi convertirla in una versione ad alta risoluzione in un secondo momento.
All'interno di ogni Voxel, dovete inoltre controllare se la densità di gas è significativa. I Voxel tra l'altro comunicano con i loro vicini, ad esempio per poter creare nuovi Voxel nelle vicinanze in caso di esplosione. Poiché ogni cubo di Voxel richiede memoria e potenza di elaborazione, i Voxel vengono creati solo quando la simulazione lo ritiene necessario o quando l'utente definisce dei limiti appropriati. Questo ha il vantaggio di non dover specificare da soli un volume di simulazione, ma è la simulazione stessa a determinare dove sono necessari i Voxel.
Per la simulazione vera e propria, ogni Voxel viene poi suddiviso ancora una volta in unità più piccole per poter calcolare e rappresentare i flussi e i vortici caratteristici di una fiamma o di una colonna di fumo. In questo modo, avremo già un'anteprima significativa della simulazione nelle viste ombreggiate dell'editor durante la riproduzione della simulazione, senza doverla memorizzare nella cache o senza doverla prima renderizzare.
Se la simulazione è di nostro gradimento, può essere memorizzata come immagine nella RAM o in modo permanente come file di cache. I file della cache salvati possono essere caricati direttamente in altre scene, senza ulteriori elaborazioni, o addirittura trasferiti ad altri programmi 3D con i quali visualizzare i dati di simulazione in formato vdb.
Infine, i dati della simulazione possono essere renderizzati come un'unica immagine o animazione.
Ecco un esempio dei componenti di base di una simulazione Pyro: a sinistra viene emessa solo la densità (fumo), al centro solo la temperatura (fiamme). Se a queste proprietà aggiungiamo la pressione e la conversione del carburante in densità e temperatura, possiamo simulare anche le esplosioni (vedi a destra).
Come descritto in precedenza, la simulazione richiede un volume in cui viene generato il gas, che a sua volta acquisisce proprietà come la densità o la temperatura. Ad esempio, immaginate quest'area come la punta di un fiammifero. In quel punto l'attrito genera calore, che poi incendia il materiale combustibile. In sostanza si verifica una reazione tra l'ossigeno e il legno. Viene generato ulteriore calore e altre particelle che si sollevano in uno sbuffo di fumo.
Il compito dell'Emettitore è quindi quello di descrivere innanzitutto la posizione in cui avviene tale reazione (testa di fiammifero). Inoltre, è necessario definire la densità dell'energia in quella posizione, ad esempio quanto combustibile è presente, quanto fumo e quanto calore andranno generati. La descrizione del componente carburante è facoltativa. Ad esempio, possiamo definire Emettitore la fiamma di una candela anche solo specificando la temperatura dello stoppino e la quantità di cenere prodotta. In pratica, ecco come possiamo procedere:
Per prima cosa, create o selezionate l'oggetto che farà da Emettitore di fuoco o fumo. Questo oggetto può anche essere nascosto in seguito e quindi non deve necessariamente essere una parte visibile di un modello. Spesso, ad esempio, come Emettitore è sufficiente la primitiva di una Sfera. Assicuratevi solo che la dimensione sia attendibile, cioè che abbia dimensioni realistiche.
I seguenti tipi di oggetti possono essere utilizzati come Emettitori:
Assegnate un tag Emettitore Pyro a questo oggetto, ad esempio tramite il menu Tag in Gestione Oggetti della categoria Tag Simulazione. Ciò consente di specificare fra l'altro la quantità e il tipo di componenti Pyro che devono essere creati (ad esempio, la densità per simulare il fumo, la temperatura per simulare il fuoco e il carburante per simulare un'esplosione). Il tag Carburante Pyro si trova nello stesso menu, ma è identico al tag Emettitore Pyro. Nel tag Carburante Pyro, le impostazioni predefinite sono pensate solo per simulare un'esplosione, mentre nel tag Emettitore Pyro, per impostazione predefinita, vengono create fiamme e fumo. Tuttavia, il tag Emettitore Pyro può anche essere riconfigurato come tag Carburante Pyro e quindi generare esplosioni. Allo stesso modo, il tag Carburante Pyro può generare fumo e fiamme se le opzioni corrispondenti sono abilitate.
Nota 1:Per tutte le spline e anche per gli oggetti poligonali che non rappresentano un volume chiuso (come gli oggetti con fori o un piano semplice), l'opzione Superficie deve essere abilitata sul tag Emettitore Pyro. Il parametro Spessore può anche essere utilizzato per formare un volume per gli oggetti in cui la simulazione Pyro genera gas caldi o fumo.
Nota 2:Quando si utilizzano le particelle o l'oggetto Matrice MoGraph, abilitate la modalità Punti nel tag Emettitore Pyro. Ciò consente di definire un dato raggio intorno alle posizioni delle particelle o delle matrici in cui generare gli elementi Pyro. L'uso di particelle può offrire ulteriori opzioni. Ad esempio la dimensione delle particelle, o anche il colore nel caso di Thinking Particles, possono essere trasferiti direttamente alla simulazione Pyro. Lo stesso vale per i colori dell'oggetto Matrice MoGraph.
Nota 3:Non è obbligatorio utilizzare l'intero oggetto come Emettitore. Assegnando dei tag Mappa Vertice, tag Colore Vertice o tag Selezione Poligoni, è possibile restringere l'area dell'oggetto utilizzato per l'emissione (ad esempio, una torcia deve bruciare solo dalla parte superiore). Ulteriori informazioni sono disponibili qui.
Insieme al tag Emettitore Pyro, viene creato automaticamente un oggetto Output Pyro dove è possibile selezionare successivamente le proprietà della simulazione che vogliamo memorizzare come cache. Questo passaggio è necessario per renderizzare la simulazione con Redshift, ma può anche essere utile per trasferire la simulazione ad altri programmi.
Nota:Se l'oggetto Output Pyro è stato accidentalmente cancellato, è possibile crearlo di nuovo con il pulsante Crea Oggetto di Output nei settaggi Pyro dei Parametri Progetto.
Nell'oggetto Output Pyro (vedi tab Scena Pyro ) si trova un collegamento ai Settaggi Simulazione Pyro, che vengono assunti dai Parametri Progetto. Qui si trovano tutti i settaggi più importanti della simulazione, come il valore Dimensione Voxel già menzionato all'inizio, che influenza in modo significativo il livello di dettaglio, la velocità della simulazione e i requisiti di memoria. Il tag Emettitore Pyro è responsabile solo dell'Emettitore e delle impostazioni della Scena Pyro collegate all'oggetto Output Pyro per il calcolo della simulazione effettiva.
Se ora eseguiamo l'animazione fotogramma per fotogramma premendo il pulsante Riproduci, vedremo già generati sull'oggetto il fuoco e il fumo. Notare che il comportamento e il livello di dettaglio della simulazione (nonché i requisiti di memoria) dipendono in larga misura dal valore Dimensione Voxel.
Per maggiore chiarezza, le immagini seguenti mostrano ancora una volta la relazione tra il tag Emettitore Pyro, l'oggetto Output Pyro e le impostazioni di simulazione Pyro ad esso collegate, già descritte in precedenza. L'immagine seguente mostra un caso predefinito. A un oggetto Cubo è stato assegnato il tag Emettitore Pyro. Questo crea un oggetto Output Pyro nella scena. Qui si trova la tab Scena Pyro oltre alle varie opzioni della cache. Per impostazione predefinita, sono collegate le impostazioni della simulazione Pyro, i cui valori sono presi dai Parametri Progetto di Cinema 4D.
A sinistra, le impostazioni della simulazione sono visibili sull'oggetto Output Pyro in Gestione Attributi. Per impostazione predefinita, i rispettivi valori sono identici a quelli della categoria Simulazione/Pyro nei Parametri Progetto (vedi il lato destro dell'immagine).
Una seconda opzione è quella di creare un oggetto Scena di Simulazione dal menu Simulazione di Cinema 4D. Questo può essere trascinato nel campo Scena dai parametri della Scena Pyro sull'oggetto Output Pyro. In questo modo saranno usate le impostazioni della simulazione Pyro disponibili sull'oggetto Scena di Simulazione. I settaggi Pyro dei Parametri Progetto non svolgono più alcun ruolo per questa simulazione.
Poiché nella scena possono essere presenti numerosi oggetti Scena di Simulazione, essi consentono di gestire diverse impostazioni di simulazione facilmente assegnabili all'oggetto Output Pyro mediante trascinamento.
Le impostazioni della simulazione Pyro di un oggetto Scena di Simulazione possono essere utilizzate anche come Scena Pyro sull'oggetto Output Pyro.
Ora manca il collegamento tra le impostazioni della simulazione Pyro e i tag Emettitore Pyro che dovrebbero accedervi. A tale scopo, nella tab Scena dell'oggetto Scena di Simulazione e nei Parametri Progetto è disponibile un campo Elementi. Trascinate in questo elenco tutti i tag Emettitore Pyro (solo i tag corrispondenti, non gli oggetti) che devono utilizzare queste impostazioni di simulazione. Vedi l'immagine seguente a titolo di esempio.
Nella stessa area si trova anche un elenco di Forze, in cui è possibile collegare gli oggetti Forza che devono agire sulla simulazione Pyro corrispondente (vedi anche l'immagine seguente).
Infine, è possibile leggere direttamente dal nome dell'oggetto Output Pyro quali impostazioni di simulazione sono state collegate ad esso. Collegando la Scena Pyro ai Parametri Progetto, il riferimento del nome apparirà lì (Default). Se avete utilizzato un oggetto Scena di Simulazione, il suo nome apparirà allegato all'oggetto Output Pyro. Possiamo osservarlo anche nell'immagine seguente.
Quando utilizzate gli oggetti Scena di Simulazione come sorgente per la configurazione della simulazione Pyro, dovete assicurarvi che i tag Emettitore Pyro corrispondenti siano collegati nelle liste di Elementi. Se usate solo i Parametri Progetto, appariranno automaticamente nelle rispettive liste di Elementi.
Un altro utilizzo degli oggetti Scena di Simulazione è la possibilità di creare simulazioni indipendenti l'una dall'altra. Usando l'approccio predefinito di assegnazione dei tag Emettitore Pyro a diversi oggetti della scena, questi oggetti diventano Emettitori per la simulazione Pyro stessa. Pertanto, tutti i gas simulati in prossimità di questi Emettitore Pyro interagiscono tra loro, poiché tutte le simulazioni sono definite utilizzando le stesse impostazioni.
Se invece desiderate creare simulazioni completamente indipendenti, ogni tag Emettitore Pyro deve essere collegato tramite un proprio oggetto Output Pyro con settaggi di simulazione Pyro indipendenti (cioè principalmente oggetti Scena di Simulazione).
Le immagini mostrano due singoli oggetti Sfera (primitive) che sono stati taggati con i tag Emettitore Pyro. A sinistra, entrambi i tag Emettitore Pyro utilizzano i propri settaggi di simulazione; a destra, entrambi i tag utilizzano lo stesso collegamento a un settaggio della simulazione Pyro. In questo modo, i due flussi di gas Pyro emessi possono interagire e mescolarsi tra loro. Nella scena mostrata a sinistra invece, entrambi i gas si comportano in modo completamente indipendente e non sono influenzati l'uno dall'altro.
È nella natura stessa delle simulazioni fisiche evolvere da uno "stato iniziale" definito. Ad esempio, nelle simulazioni Pyro, una nuvola emerge lentamente dalla superficie o dal volume di un oggetto a cui è stato assegnato il tag Emettitore Pyro. Questo è ciò che avviene di default. Le quantità di carburante, le temperature, la densità e le velocità sono impostate all'Emettitore, che è poi responsabile della successiva distribuzione e del movimento della simulazione. Tuttavia, esistono anche dei progetti (es. una nuvola Pyro) in cui una certa distribuzione deve essere già presente dal primo fotogramma dell'animazione, e quindi la nuvola non ha il tempo di diffondersi fotogramma per fotogramma a partire da un Emettitore. In questi casi, possiamo salvare uno Stato Iniziale. Se avete già lavorato con una simulazione Tessuto (Cloth), conoscete già questo principio.
Per fare questo dobbiamo impostare innanzitutto le proprietà desiderate sul tag Emettitore Pyro e i settaggi della Scena Pyro associata come di consueto. Poi dobbiamo eseguire la simulazione fino a raggiungere l'immagine di animazione necessaria come stato iniziale della simulazione.
Cliccando il pulsante Imposta Stato Iniziale nelle impostazioni della Scena Pyro, salveremo lo stato attuale della simulazione Pyro. Un nuovo oggetto Set Volumi appare nella scena ed elenca tutte le proprietà Pyro che sono state contrassegnate come Stato Iniziale. Il tipo e il numero di queste proprietà dipendono da ciò che è stato abilitato per la simulazione sul tag Emettitore Pyro. Per impostazione predefinita, si tratta delle proprietà di densità, temperatura e velocità. La creazione dell'oggetto Set Volumi provoca automaticamente il salvataggio delle proprietà Pyro in esso contenute come file .vdb nella directory del progetto. In questo modo è possibile accedere a questo stato congelato di Pyro anche in altri progetti.
Se ora eseguiamo nuovamente l'animazione a partire dal fotogramma 0, apparirà direttamente lo stato iniziale salvato e la simulazione continuerà a svilupparsi a partire da questo stato e in base alle impostazioni del tag Emettitore Pyro e della Scena Pyro. Naturalmente, questo può essere utilizzato anche per effetti particolarmente interessanti, ad esempio nel caso in cui la simulazione utilizzi valori o addirittura forme di Emettitori completamente diversi per la creazione dello stato iniziale rispetto alla simulazione a cui viene assegnato questo stato iniziale. Quindi non deve trattarsi necessariamente della stessa simulazione,