Tutorial - Fumo, fuoco e fiamme in Blender 2.5 con l'Emitter delle particelle e Smoke
* * *
Versione VIDEO di questo tutorial: prima puntata, seconda puntata
* * *
Buonasera ! :-)
In questo tutorial vedremo come realizzare fuoco e fiamme con il sistema particellare Emitter di Blender 2.5 e come utilizzare il nuovo strumento Smoke per creare il fumo.
Prima di procedere, aggiungiamo alla scena un oggetto Empty, che ci servirà per animare le textures delle fiamme. Posizioniamo la Empty al centro dell'oggetto che utilizzeremo come emettitore.
Annulliamo rotazione e traslazione iniziali di questa Empty premendo ALT-R e ALT-G.
Come oggetto per generare le fiamme possiamo utilizzare, per questo esempio, il cubo presente di default. Anticipo che avremo bisogno di almeno tre textures e di un solo sistema particellare Emitter, per cui spostiamoci nella scheda Particles della Properties Window ed aggiungiamone uno.
Procediamo con ordine definendo le impostazioni per il sistema particellare Emitter appena creato.
Possiamo lasciare, per questa simulazione, molti valori presenti di default, ma aumentiamo magari la durata della vita portandola a 70 o 100, impostiamo come velocità iniziali per normal e random 0.5 e soprattutto poniamo il campo Z di Emitter Object a 25.
Assicuriamoci che, nella sezione della simulazione fisica, sia selezionata l'opzione Newton, visto che un comportamento in accordo con la fisica newtoniana, classica, è quello che ci serve.
Sempre nella scheda Physics del nostro emettitore, impostiamo il valore 2 per Size e 1 per Random Size.
In render, e questo è molto importante, selezioniamo Billboard. Questo si tradurrà nella creazione di tante facce che partiranno dall'oggetto. Un'anteprima della situazione, ottenibile premendo ALT-A quando il focus è in una finestra 3D, produrrà un risultato orripilante, ma non vi preoccupate perchè questa situazione è destinata a mutare grazie alle textures.
Aggiungo che, a seconda della durata di Life e della velocità su Z dell'Emitter Object, ad esempio, potete creare fuochi da campo, torce o pozzi petroliferi, sia in fiamme -con le texture che vedremo in questo tutorial- che non, cosa ottenibile anzi addirittura senza textures, solo con materials.
Allo stesso modo, variando alcuni parametri potrete ottenere fiamme colorate, più luminose, ecc... questa è solo la procedura di base.
Per quanto riguarda le impostazioni dell'emitter, per questo esempio, questo può bastare. Prima di procedere con i materiali e le textures di questo sistema particellare, spostiamoci in OBJECT DATA ed aggiungiamo una mappa UV di base all'oggetto.
Anche questa mappa, come la Empty, ci servirà per le textures delle fiamme.
Prima delle textures ci serve, ovviamente, un Material. Se non presente, aggiungiamo quindi un Material per l'oggetto. Lasciamo gli shader di default per i riflessi diffuso e speculare ma in Specular abbassiamo l'intensità a 0 e Hardness a 1.
Attiviamo la Trasparenza, scegliendo il tipo Z-Transp, ponendo però Alpha a 0. L'Alpha verrà infatti modulato da una texture, come vedremo a breve.
Manteniamo deselezionati, come avviene di default, i pulsanti Shadeless, Tangent Shading, Cubic Interpolation e quelli situati in Options, ed anzi deselezioniamo Traceable, visto che questo tipo di effetti non ci serve per quello che stiamo facendo.
Ci servono tre textures per il materiale dell'emettitore, per cui iniziamo ad istanziarle tutte e tre nella pila delle texture ma iniziamo a modificare la seconda, che è una texture “maschera stencil”, ossia che conferirà un alone agli elementi della texture successiva.
Cambiamone il tipo in Blend Spherical, aumentando il contrasto dell'alone bianco, cosa che va fatta aggiungendo un ulteriore passo di bianco puro con alpha a 1 nella ramp del colore, in posizione ad esempio 0.4 o 0.3.
Questa texture non influenzerà il colore dell'oggetto, per cui in influence deselezioniamo Col e selezioniamo Emit -per produrre l'alone luminoso- e, più in basso, selezioniamo Stencil, ad indicare appunto che l'effetto verrà applicato alle textures poste nei canali successivi.
In mapping, infine, scegliamo per Coordinates il valore UV e, nel campo testuale con etichetta Layer che apparirà sotto, scriviamo il nome della mappa UV precedentemente creata per l'oggetto emettitore, ossia il cubo.
Passiamo alla terza texture della pila di textures di questo materiale.
Impostiamo, come tipo, la texture Clouds, ossia le nuvole, con noise size 1.2, noise depth 6 e tipo di rumore HARD.
In influence, manteniamo selezionato Col ed attiviamo anche Alpha. Questa texture, quindi, conferirà il colore e la mappatura della trasparenza alle particelle.
In mapping, scegliamo Object e, nel campo di testo di etichetta Object che apparirà sotto, scriviamo il nome dell'oggetto Empty precedentemente creato. La Texture “seguirà” quindi la Empty che, se animata, animerà a sua volta la texture. Non basta, infatti, generare particelle animate per conferire un aspetto realistico alle fiamme, ma bisogna muovere anche la texture “proiettata”, per così dire, sulle stesse.
In questo modo la texture appena definita è ancora in bianco e nero: apriamo quindi Colors e selezioniamo la casella Ramp.
La Color Band ha di default due valori, posti alle due estremità, ma nel nostro caso ce ne servono altri due, per cui facciamo click due volte su ADD. Al secondo click verrà aggiunta la quarta divisione nello stesso punto della terza, ma possiamo spostare il focus da una fascia all'altra mediante il pulsante numerico con le frecce laterali posto proprio sopra la banda colorata, al centro. Il valore contenuto in questo pulsante è l'indice della divisione attualmente in uso, con l'estremità a sinistra che ha indice 0.
Proprio per l'indice 0, lasciamo la posizione a 0, cambiamo il colore in giallo e impostiamo Alpha, che di default è 0 per questa posizione, a 1.
Per l'indice 1, mettiamo come posizione 0.1, quindi vicino all'estremo sinistro, valore di rosso e di Alpha a 1, valore di verde a 0.5 e valore di blu a 0.
Per l'indice 2, mettiamo come posizione 0.4 o 0.5, colore rosso a 0.5 e alpha, verde e blu a 0.
Per l'ultimo indice, l'estremo destro, mettiamo tutti i valori RGBA a 0.
Fatto questo, la terza texture della pila è pronta.
Vi ricordo che, dal momento che la seconda texture della pila era di tipo Stencil, i suoi effetti verranno mappati sulla texture appena creata, per cui le fiamme avranno un po' di luminosità extra lungo i bordi.
Passiamo all'ultima texture che ci resta da definire per l'emettitore, e che poi è la prima della pila di textures di tale oggetto.
Questa texture deve essere di tipo Blend Linear; in mapping, scegliamo per Coordinates l'opzione Object e, quindi, il nome dell'oggetto emettitore, in questo caso il cubo, mentre nel menù X Mapping scegliamo l'opzione Z. In Influence lasciamo selezionato solo Col, ma abbassando un po' il valore, per limitarne l'effetto, portandolo ad esempio a 0.75.
Come per le altre texture, anche qui le modifiche più importanti riguardano la color band, per cui apriamo Colors e attiviamo la Ramp. In questo caso ci serviranno addirittura tre bande interne, oltre cioè alle due poste agli estremi, per cui clicchiamo tre volte su Add.
La divisione all'estrema sinistra dovrà essere di un bianco puro e Alpha 1 -d'altronde, tutte le divisioni avranno Alpha a 1- ed anzi anche la seconda divisione, da porre accanto alla prima, ad esempio a 0.05 o 0.1, dovrà essere di un bianco puro, mentre la terza divisione -posta ad un quarto della color band, quindi in posizione 0.25, dovrà essere arancione; la quarta e la quinta divisione, infine, saranno entrambe rosse e poste rispettivamente a metà della banda e all'estremità destra.
Animiamo la Empty creata precedentemente, facendole fare uno spostamento dal basso verso l'alto nel corso dell'animazione. Se ci viene più comodo, ad esempio per creare filmati di durata maggiore o con texture più turbolente, possiamo animare la Empty anche solo per un piccolo tratto e poi prolungarne la IPO nel Graph Editor.
L'emitter e le fiamme sono pronte e possiamo finalmente lanciare un rendering di prova per vedere l'effetto ottenuto fino a questo punto.
Passiamo all'effetto del fumo. Nelle versioni precedenti di Blender vi era un sistema particellare di tipo Reactor che produceva particelle che traevano la loro origine da altre particelle -Reactor non stava per reattore, quanto per reazione, effetto- e tale sistema poteva essere utilizzato, con un buon uso delle texture, per il fumo emesso dalle fiamme; con la versione 2.5 di Blender, invece, è disponibile -tra gli strumenti di simulazione della fisica- lo strumento Smoke, ossia appunto fumo.
Il fumo va creato con lo stesso schema dei fluidi del motore dei fluidi di Blender, ossia creando un contenitore che sarà il dominio spaziale della nostra simulazione ed inserendovi, all'interno, gli emettitori inflow o i consumatori outflow.
Noi abbiamo già un emettitore, cioè il cubo con l'emitter, per cui dobbiamo creare un dominio di applicazione; per farlo, creiamo un nuovo cubo, molto più grande del cubo emettitore e che anzi dovrà contenere quest'ultimo.
Con il NUOVO cubo selezionato, quindi, passiamo all'ultima scheda della Properties Window, ossia Physics. Qui aggiungiamo un simulatore Smoke e, tra i pulsanti disponibili, scegliamo Domain, visto che questo cubo sarà proprio il dominio della simulazione.
Selezionando Domain, appariranno nuove schede e una miriade di parametri da impostare, parametri legati più che altro alla simulazione fisica del fumo, ma niente paura: per quanto ci riguarda, le impostazioni presenti di default andranno più che bene... magari aumentiamo solo il numero di divisioni in Resolution portandolo ad esempio a 50 ed attiviamo Dissolve.
Torniamo al cubo emettitore e passiamo anche in questo caso all'ultimo pannello della Properties Window, ossia Physics, ed aggiungiamo un simulatore Smoke. In questo caso, selezioneremo la voce Flow.
Questa volta possiamo impostare solo un paio di parametri di natura “fisica” -ma le impostazioni di default ci vanno bene- mentre possiamo scegliere se rendere l'oggetto emettitore -come è di default, e come lo lasceremo- oppure “consumatore” con outflow.
Il fumo ha origine da un sistema particellare, per cui nel campo testuale Particle System dobbiamo scrivere il nome del sistema particellare che simula le fiamme che danno origine al fumo.
A questo punto premendo ALT-A quando il focus è in una finestra di navigazione 3D dovremmo poter vedere un'anteprima dei “nuvoloni”, rappresentati mediante cubi grigi che chiaramente non hanno niente a che fare con l'effetto finale ma che servono a darci un'idea di quello che vedremo....
Non è obbligatorio effettuare l'anteprima animata per vedere le nuvole: basterà portare a inizio e fine corsa la timeline un paio di volte per vedere l'anteprima nelle finestre 3D.
A valori di divisions maggiori per il Domain si avrà una qualità migliore nella resa, ma ovviamente ciò peserà moltissimo in termini di tempo di elaborazione, proporzionalmente anche al numero di frames da elaborare. A seconda dei casi, il programma può apparire come bloccato, ma basta aprire la finestra della console per monitorare l'avanzamento del lavoro. Possiamo comunque interrompere l'animazione in qualunque momento premendo nuovamente ALT-A.
Ad ogni modo, lanciando un rendering NON vedremo per niente il fumo ! Ciò è dovuto al fatto che bisogna impostare un material per il rendering dei volumi e un particolare tipo di texture per il dominio della simulazione. Selezioniamo quindi il cubo-dominio ed apriamo la scheda Material nel pannello Properties.
Se non presente, aggiungiamo un Material, ma cambiamone il tipo da Surface a Volume, mediante i pulsanti posti sopra l'anteprima. Portiamo a zero il valore di Density e definiamo come preferiamo i colori per Emission, Reflection e Trasmission Color... magari aumentiamo i valori di Scattering (visto che vogliamo simulare proprio del fumo) e di Emission, portandoli ad esempio a 3.
Aggiungiamo ora una texture per questo Material, scegliendo come tipo Voxel Data.
Questo tipo di Texture recupera le informazioni per creare texture 3D direttamente da oggetti della scena, e da qui deriva infatti il nome VOXEL DATA.
In File Format, per questa texture, dovrebbe esserci selezionata di default la voce Smoke, che ci va benissimo. Nel campo testuale Domain Object, invece, scriviamo il nome dell'oggetto dominio della simulazione -nel nostro caso il cubo più grande- dal quale la texture ricaverà i dati sul volume.
Ancora più in basso, sempre nella scheda della Texture Voxel Data, selezioniamo in Influence la casella Density -aumentandone magari il valore- per cui questa texture si occuperà di mappare la densità del material. Verrà attivata automaticamente la casella Emission Color: lasciamola selezionata. Anche per questa casella possiamo variare il valore, ed inoltre possiamo attivare anche altre caselle, se vogliamo, a seconda degli aspetti che vogliamo mappare mediante i VOXEL DATA.
A questo punto, tutto è pronto e possiamo effettuare un rendering. In realtà, proprio con queste impostazioni, l'effetto sarà deludente, e questo perchè i volumi creati dalle particelle sono, come abbiamo visto, simili a dei piani, con visualizzazione Billboard, cioè tutti orientati sempre verso l'osservatore.
La texture Voxel Data si basa sui volumi, in questo caso dei piani, e ciò spiega il perchè di un risultato inferiore alle aspettative -infatti i piani verranno riempiti in maniera volumetrica e vedremo “quadrati di fumo”- ma queste sono solo le indicazioni di partenza per realizzare sistemi particellari con fumo, fuoco e fiamme: basterà variare qualche parametro per ottenere effetti radicalmente diversi, bisogna solo fare diverse prove.
Una soluzione consiste, ad esempio, nel creare un secondo sistema particellare con impostazioni di resa diverse da quelle del primo ed utilizzarne le caratteristiche volumetriche per realizzare il fumo.
In questo caso, infine, l'oggetto che dà origine alla simulazione di fiamme e fumo è immobile nella scena, ma per creare il fumo per oggetti in movimento bisognerà fare il baking della simulazione.
Il pulsante di BAKE si trova nella scheda Smoke Cache per il fumo normale e nella scheda Smoke High Resolution Cache per il fumo High Resolution, se attivato; entrambe le schede si trovano, ovviamente, nel pannello Physics dell'oggetto che farà da dominio spaziale per la simulazione, ossia -nel nostro caso- il cubo più grande.
Per fare il BAKE della simulazione, in entrambi i casi, è sufficiente impostare il frame di partenza e il frame finale dell'animazione e premere il pulsante BAKE. L'operazione può richiedere anche molto tempo -da minuti a ore- a seconda della complessità della simulazione, della sua durata, della presenza di collisioni e anche in base alle prestazioni hardware del computer.
E' tutto per questo tutorial, a presto ! ;-)
|