• Non ci sono risultati.

Sistema di particelle:

N/A
N/A
Protected

Academic year: 2021

Condividi "Sistema di particelle: "

Copied!
7
0
0

Testo completo

(1)

Video Game Dev 2015/2016 Università dell’Insubria

Particle systems

Marco Tarini

Particle systems:

un tipo di Modelli 3D

Rapresentazioni digitali di oggetti 3D…

non facilmente descrivibili attraverso la loro superficie

molto dinamici (topologia variabile)

…come:

nuvole, nuvole di polvere fiamme, esplosioni

spruzzi d’acqua, cascate, getti

pioggia, neve, vento (che porta pulviscoli) sbuffi di vapore, polvere sollevata da passi effetti visuali astratti (di incantesimi, etc) sciame di mosche

scintille, fuochi d’artificio fumo, nuvole, etc…

(aka particle effects)

(2)

Sistema di particelle:

insieme di particelle

1 particella rappresenta

una goccia d’acqua, una scintilla di fiamma, una goccia di pioggia, uno sbuffetto di fumo…

stato

di una particella

include: pos, vel, durata rimanente di vita, … e/o anche custom variables: size, temperatura … altre cose riferibili all’aspetto (colore, orientamento …)

vengono emesse dinamicamente

da un «emitter»

vengono distrutte dinamicamente variano dinamicamente stato

secondo criteri prestabiliti

Emitters & Particles

Emitter (plane)

Emitters Particles

(3)

Emitter

Il produttore di particelle

è in un nodo nello scene graph

cioè: è posizionato nella scena da una trasformazione cioè: è dotato del proprio spazio oggetto

posizionare e orientare il sistema di particelle

<==>

posizionare e orientare il suo emitter

emette particellesecondo un criterio stabilito…

in posizione pseudo-casuale al proprio interno con una distr. di prob data

generata nel proprio spazio oggetto ad un rate stabilito (num/sec) con uno stato iniziale (es initial vel)

…per un intervallo di tempo stabilito

es: breve (es. esplosione) o medio (es. sangue da ferita) o lungo (es. colonna di fumo)

o indefinitito (es acqua da rubinetto, fiamma da torcia…) La fiammata, l’esplisione, il getto d’acqua…

Forma dell’emitter

Astrazione geometrica utile a guidare la creazione delle particelle

particella creata in una posizione

pseudocasuale all’interno di questa forma stato particella: inizializzato con dati espressi in spazio mondo

es, fumo: vel preponderante in dir Z spazio mondo oppure in spazio emitter

es, fiammata del motore: in dir Z spazio emitter

Sfera, cono, box, piano, punto…

(4)

Computo dell’evoluzione del sist di part

Task del Physic Engine

Semplificato (rispetto agli altri oggetti fisici)

numerosità delle particelle elevata!

(10^1 – 10^5)

Computo progresso particelle:

Numerico: stato( t+dt ) F( stato(t) ) Analitico: stato( t ) F( t )

Computato in: spazio emitter, o spazio mondo Particelle possono interagire con (oppure no!)

altre particelle (es. coesione):

expensive! usually, not ambiente (collisions):

se sì: o solo parti statiche della scena, o anche dinamiche se dinamiche: “one way” (di solito), o “two ways” (raro)

Esempio

semplificato in C++

class Particle{

vec3 pos;

vec3 vel;

float life; // how much longer to live ...

}

class ParticleSystem{

std::vector< Particle > particles;

void evolve( float dt );

void render();

void init( vec3 p );

}

(5)

Rendering

del Sistema di Particelle

Modo 1: ogni particella resa separatemente, attraverso:

una primitiva base

un point splat / un segmento…

un piccolo modello 3D

pochi (o un!) poligoni, maybe textured un impostor , cioè

un piccolo quad

orientato verso l’osservatore (oppure no) con texture (animate, oppure no)

e.g. alpha maps + RGB maps

il caso di più comune

Textured impostors

for particle rendering

(6)

Textured impostors for particle rendering

Rendering

del Sistema di Particelle

Modo 2: multipassata

passata 1:

splat di un di “blob” temporaneo per particella (solo nel depth buffer)

passata 2:

stima in spazio schermo normale dell’unione dei “blob”

passata 3:

rendering della superficie risultante

(7)

Authoring dei

sistemi di particelle

Task del curatore di effetti --

fx specialist

Specifica dei criteri e modalità di

creazione

+ evoluzione particelle

attraverso:

programmazione di appositi script, oppure

specifica di insieme di parametri predefiniti (dal motore)

Specifica dell’aspetto delle particelle

texturesper impostors, o piccoli modelli 3D, o parametri dello splat, etc

Non esiste uno standard

ogni game engine ha il suo sistema, il suo formato di file, etc

Particle systems:

cosmetics o gameplay?

Di solito, solo coating grafico

interazioni fisiche: one-way no effect on collision

no effect on gameplay

Alcune notevoli eccezioni

Riferimenti

Documenti correlati

=&gt; conoscenza, ad ogni istante di interesse, del campo di turbolenza (soprattutto delle deviazioni standard delle tre componenti del vento).... Per quanto riguarda le sorgenti

Ogni sistema, ogni game engine, ogni software di modellazione. ha il suo sistema, il suo formato di

Le particelle costituite da polveri e fibre raggiungono le strutture polmonari profonde (alveoli) solo quando il diametro ad esse associato è molto piccolo (&lt; 3÷5 µm)

La rivelazione del fenomeno della ionizzazione provocata dal passaggio di particelle cariche nell’attraversare spessori di materiale e’ uno dei metodi piu’ comuni per la rivelazione

Fase 1: entro 4 anni, avvio del programma di Ri-formare Bovisa; realizzazione della nuova piazza della stazione di Bovisa e degli spazi commerciali, sistemazione dell’intero margine

• muovendo il sistema di riferimento con velocità uniforme la dinamica di un qualunque sistema fisico - come aveva intuito galileo per la meccanica ed Einstein per qualunque

w  Elettroni meno penetranti delle particelle cariche pesanti perché perdono energia in un minor numero di urti. w  Traiettorie molto perturbate solo

Se una lacuna libera od una lacuna di un eccitone incontra uno di questi centri attivatori, può ionizzare uno di questi atomi di impurità. Se ora arriva un altro elettrone, questo