7.3 – Dinamica Fisica – Sistemi Particellari: Emitter

Quando avremo la necessità di animare coerentemente con le leggi della fisica dei sistemi formati da un gran quantitativo di elementi, potremo ricorrere ai Particle Systems di Blender. Pensate al moto delle scintille, o al volo degli sciami di uccelli, oppure ai capelli e i fili d’erba mossi dal vento. Partiamo dalla primitiva plane e dopo averla selezionata rechiamoci al contesto properties Particle, icona  per accedere alle opzioni dei sistemi particellari. Nell’elenco vuoto cliccate + per aggiungere un Particle System e magari assegnare ad esso un nome (è possibile applicare diversi sistemi particellari a un unico oggetto).

Vi ritroverete dinanzi a un complesso insieme di pannelli e opzioni che è la più intricata successione di comandi esistente in tutto Blender. Come al solito non lasciamoci intimorire e concentriamoci esclusivamente su ciò che accade nella 3D View avviando l’animazione (senza preoccuparci del rendering). A seconda dell’orientamento del piano, vedrete comparire dalla sua superficie un certo numero di particelle rappresentate nella 3D View da piccoli cerchi come questo

Tali particelle vengono generate dall’intera superficie per un dato intervallo di tempo ed emesse in direzione delle normali con una propria velocità iniziale. Il moto è influenzato dalla forza di gravità e dopo un certo numero di fotogrammi le particelle scompaiono nel nulla. In Blender infatti abbiamo due diverse tipologie di sistemi particellari, quello appena visto di tipo Emitter (impostazione di default) e un altro di tipo Hair (capelli) nel quale gli elementi sono invece fissi, attaccati alla superficie e rappresentati nella 3D View da linee spezzate a N segmenti. In questo paragrafo ci occuperemo dell’emissione di particelle i cui parametri fondamentali si trovano nel panello Emission:

  • Number è il numero totale di particelle che verranno emesse (fino al valore massimo di un milione).
  • Frame Start ed End sono i fotogrammi di partenza (start) e quello finale (end), dell’intervallo di emissione.
  • Lifetime è la durata della vita, in fotogrammi, delle particelle.
  • Random crea un margine di casualità nel tempo di vita.

Nel pannello emission troviamo l’ulteriore pannello Source e in particolar modo il campo Emit From. L’emissione può avvenire da:

  • i vertici della mesh.
  • qualsiasi punto della superficie della mesh.
  • qualsiasi punto interno alla mesh (se chiusa e quindi dotata di un volume interno).

Come tipo di emissione considereremo quella Jittered, lasciando la spunta sia su Random Order, sia su Even Distribution, in modo da avere un’emissione casuale e uniformemente distribuita su tutta la superficie della mesh, indipendentemente dall’eventuale presenza di facce con diverse dimensioni. Sotto il pannello Emission troviamo quello riservato alla Cache, analogo a quanto visto per la dinamica soft body e cloth.

Dunque arriviamo all’importante pannello Velocity

dove regolare la velocità iniziale delle particelle in direzione della normale (default) oppure tangente, o in una delle direzioni xyz intese nel sistema local dell’emettitore, o infine con una velocità derivata dall’eventuale moto dell’emettitore stesso (Object Velocity).

Per studiare meglio l’effetto della forza di gravità sulle particelle generate, ruotiamo il piano di partenza con la normale ortogonale all’asse z in modo che le particelle vengano lanciate in una traiettoria parabolica con velocità iniziale espressa dal valore Normal (metri al secondo). Randomize crea un margine di casualità nelle velocità iniziali delle particelle.

Prima di capire come renderizzare questi sistemi particellari continuiamo a considerare la loro rappresentazione nella 3D View, studiando gli effetti e il funzionamento dei campi di forza. Partiamo stavolta da una UV Sphere assegnandole un sistema particellare identico al precedente. Dopodiché nel pannello Field Weight annulliamo l’effetto della forza di gravità azzerando il valore Gravity, mantenendo l’emissione per l’intero range di fotogrammi (ad es: 0-400) con il tempo di vita pari o superiore al numero complessivo di fotogrammi (>400). Avviata l’animazione vedrete l’emissione di particelle espandersi dalla superficie della UV Sphere, in moto rettilineo uniforme lungo le normali delle facce generatrici. Con un alto numero di particelle, ad esempio 10.000, otterremo una sfera di punti che si espanderà nel tempo.

Nell’immagine seguente potete vedete l’elenco dei Campi di Forza presenti in Blender (menu Add > Force Field nell’header della 3D View)

proviamone qualcuno sul sistema particellare appena creato, considerando che per esso è attiva nel pannello Physics una fisica di tipo Newtonian (consiglio di testare anche Boids simile al volo degli stormi, oppure Fluids):

Force è un campo di forza di tipo attrattivo/repulsivo. Strenght può assumere valori positivi (effetto repulsivo) o negativi (effetto attrattivo)

Il pannello Force Fields è situato nel contesto Physics relativo al campo di forza.

Il moto del sistema particellare è più complesso nei campi attrattivi poiché le particelle, superando per inerzia il punto di attrazione, tenderanno a tornare indietro e ripetere la stessa dinamica in direzione opposta. Potrete osservare in tempo reale l’evoluzione del sistema roteando la visuale e osservando il moto nelle tre dimensioni.

L’effetto del campo di forza Magnetic dipende dalla velocità delle particelle, come avviene per le cariche elettriche immerse in un campo elettromagnetico che a loro volta in movimento generano un ulteriore campo.

Turbulence crea dei moti complessi e caotici (in questi esempi abbiamo utilizzato sempre l’impostazione Shape>Point). Se volessimo limitare l’emissione solo ad alcune parti della mesh, basterà creare il relativo gruppo di vertici ed assegnarlo al sistema particellare, nel pannello Vertex Group alla voce Density

Notare che cliccando su    invertiremo l’emissione all’intera mesh, esclusa la parte individuata dal gruppo di vertici. A scopo di esempio prendiamo una primitiva Cylinder e limitiamo l’emissione a un vertex group formato da quattro zone della superficie cilindrica, tra loro diametralmente opposte e disposte a croce. Successivamente inseriamo un campo di forza di tipo Vortex come in figura, per ottenere un campo particellare di forma a spirale

I campi di forza potranno essere generati anche dalle mesh presenti in scena, attivando per esse Force Field nel contesto Physics (eventualmente insieme alle dinamiche già viste nei paragrafi precedenti).

In tal caso per gran parte delle forze potremo scegliere alla voce Shape se il campo debba avere un’origine puntiforme (point), o se originato da ogni punto dell’eventuale volume 3D (every point), o dalla superficie (surface). Finora non abbiamo provato a renderizzare i sistemi particellari ammirando la loro dinamica nella 3D view. Nel pannello Viewport display potremo variare la rappresentazione nella 3D View scegliendo ad esempio delle croci al posto dei cerchi, e variando il loro colore in base alla velocità delle singole particelle.

Ma per quanto riguarda il rendering esso resterà sempre privo di particelle. Nel vecchio engine Blender Render era possibile utilizzare i cosiddetti materiali Halo (alone o aura) ossia un cerchio semitrasparente avente centro in corrispondenza di ogni particella, il cui aspetto non dipendeva dall’angolazione della visuale, ma variava in dimensioni a seconda della distanza dal punto di osservazione, ciò in pieno rispetto delle regole prospettiche. Era quindi possibile renderizzare direttamente un sistema particellare senza dover collocare nessuna mesh al posto di ogni singola particella elaborata nella 3D View. In Blender Cycles ed Eevee le cose vanno diversamente e dovremo recarci al pannello Render (immagine a destra) dove sceglieremo Object in Render As

Dopodiché basterà indicare l’oggetto “istanza” nel sub-pannello Object, ovvero la mesh che verrà moltiplicata e piazzata in modo che il suo centro coincida con la posizione di ogni singola particella elaborata. Potremo ad esempio utilizzare una UV Sphere (appartenente nella scena anche se invisibile) a cui assegneremo il materiale visibile nell’immagine seguente creato proprio per simulare con Cycles i vecchi halo dell’engine Blender Render.

Potremo scegliere di non renderizzare la mesh emettitrice togliendo la spunta alla casella Show Emitter, o aumentare le dimensioni delle mesh emesse con Scale, e infine variarne le dimensioni in modo casuale con Scale Randomness.

Quando un sistema particellare è costituito da un elevato numero di mesh (non sferiche) potrete impostare una rotazione casuale per ognuna di esse, ciò attivando il pannello Rotation del sistema particellare e aumentando il valore Randomize di default pari a 0.

Nell’immagine in alto vediamo tre sistemi particellari emessi da un singolo oggetto emettitore, ognuno dei quali duplica N volte una singola mesh istanza. Grazie a un fattore casuale nella rotazione e variazione di scala, l’occhio viene ingannato e non percepisce la ripetizione di soli tre tipi di asteroide. Motion Blur e profondità di campo rendono il tutto più realistico e spostano l’attenzione sulla mesh a destra perfettamente a fuoco (quest’ultima è stata posizionata manualmente in quel punto).

Paragrafo successivo
Paragrafo precedente

Torna all’Indice


Nell’augurarti un divertente e produttivo studio di Blender, ti ricordo che puoi supportare questo progetto in due diversi modi: con una piccola donazione (paypal) oppure acquistando la versione PDF (su lulu.com) impaginata in modo professionale e ottimizzata per la visione su Tablet.  



>Acquista l’ebook (PDF) su lulu.com in piena sicurezza con paypal e carte prepagate<