GENERATOR DE PARTICULE Proiect SPG

Preview:

DESCRIPTION

GENERATOR DE PARTICULE Proiect SPG. Studenti : Carmen Sosoiu, Mircea Barbulescu Grupa : 341 C4. Ce este un sistem de particule?. O colectie de un numar mare de primitive ce modeleaza fenomene sau obiecte cu o forma “fuzzy” Ce este o particula “primitiva” ? - PowerPoint PPT Presentation

Citation preview

GENERATOR DE PARTICULEProiect SPG

Studenti : Carmen Sosoiu, Mircea Barbulescu

Grupa : 341 C4

Ce este un sistem de particule?

• O colectie de un numar mare de primitive ce modeleaza fenomene sau obiecte cu o forma “fuzzy”

• Ce este o particula “primitiva” ?

• orice : frunza, picatura, flacara, stea

• Folosite in simularea ploii, focului, exploziei, ninsorii etc

• Procesate ca un intreg sub niste legi fizice impuse

• Sunt definite de niste parametrii precum :

viata particula, gravitatie, viteza, culoare,

numar de particule

Principiul de functionare al sistemelor de particule

1. Un numar ales de particule sunt initializate cu niste parametrii, cel mai relevant fiind cel de viata.

2. Acestea se vor misca atata timp cat au "viata"

3. Particulele moarte sunt reciclate, reinitializate cu aceiasi parametrii, sau cu altii, si vor reintra in

sistem.

Despre Proiect• Proiectul este un generator si editor de particule ce simuleaza urmatoarele efecte:

• Foc

• Ploaie

• Ninsoare

• Bule de sapun

• Ceata

• Explozie

• Artificii

• Fantana

• Magic Sparkles in spirala

Structuri de date(1)• Sistemul de particule este compus din mai multe structuri de tip particula

• Sistemul este descris de urmatorii parametrii :• nr particule

• slowdown

• gravitatie

• fade

• textura

• culoare

• dimensiune particule

Structuri de date(2)•Particula este descrisa de urmatorii parametrii :

• activa

• pozitie

• factor de deplasare (directie)

• viteza

• viata

• culoare

• dimensiune particule

Ciclul de viata al particulelor• if(life<=0)

life = life_new pozitia.xyz = pozitia.xyz_new (fie random, fie fixa) factor de deplasare.xyz = xspeed/yspeed + new_val (fie random,fie fixa)

• while(life>0)pozitia.xyz += factor de deplasare.xyz/(slowdown * 1000) factor de deplasare.xyz += gravitate.xyz life -= fade

• gravitatie.y pozitiva

• particulele pornesc din aceeasi pozitie

• life random

• life mic => focul mocneste, dimensiune mica

• factor de deplasare random

• viteza mare => focul arde puternic, intetit, flacarile sunt aruncate mai departe

• fade particule

Implementare: Foc

Implementare: Ploaie si Ninsoare

• gravitatie.y negativa / aprox cu 0

• particulele pornesc dintr-o pozitie x random dintr-un plan aflat la un y setat

• life random

• factor de deplasare random (doar pe y)

• viteza.y setata

• nu se face fade particule / se face fade particule

• gravitatie.y 0

• pozitie intiala random intr-un volum

• life random mica / foarte mare

• factor de deplasare.xyz random

• nu se face fade particule / se face fade particule

Implementare: Bule si Ceata

Implementare: Explozie si Artificii

• gravitatie.y 0

• pozitie intiala random intr-un volum

• factor de deplasare.xyz random, in forma sferica

• fade particule

• explozie : realizata in 3 faze distincte :

• explozie foc

• fum

• scantei

• gravitatie.y negativa

• particulele pornesc din aceeasi pozitie

• life fix

• viteza.y mare => fantana arunca picaturile mai sus

• realizata din 3 jeturi de apa (cu viteza.x diferite)

• nu se face fade particule

Implementare: Fantana

• gravitatie.y 0

• particulele pornesc din aceeasi pozitie

• life random mare

• se aplica o functie matematica pe una din coordonate

cu o raza data explicit

• nu se face fade particule

Implementare: Magic Sparkles

Intrebari?(urmeaza test run)