generator de particule proiect spg
Post on 22-Feb-2016
97 Views
Preview:
DESCRIPTION
TRANSCRIPT
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)
top related