Citat:
Srki_82:
Da li je bolje da za crtanje terena ispod letilice i za crtanje zvezda koristim vec transformisane vertexe (kao u prvom primeru sa vertexima u SDK-u) ili da koristim ne transformisane koordinate pa da podesavam matrice prilikom iscrtavanja?
Prvo da utvrdim terminologiju:
RHW = screen space
XZY = model space
Mislim da je bolje da koristiš XYZ prostor ako teren koji crtaš koristi stalno istu geometriju. Ali ako ti je teren uvek različit i nikada ne ponavljaš geometriju i praktično ga generišeš u toku skrolovanja ekrana, onda je jednostavnije koristiti RHW prostor. Takođe u ovom slučaju možeš koristiti jedan vertex buffer i jedan DrawPrimitive poziv (pod pretpostavkom da su ti sve teksture terena kombinovane u jednu teksturu). Tako ćeš imati bolji frame rate. Puno DrawPrimitive poziva znatno usporava celu igru jer je igra u tom slučaju tzv. driver bound, tj. provodi najviše vremena u drajveru iako CPU i GPU mogu biti značajno brži.
Citat:
Srki_82:
Sad cu poceti da radim na zvezdanom polju iza letilice (to mi je nekako najlakse) i za sad planiram samo da crtam pixele koji se krecu razlicitim brzinama pa bi izgledalo kao da su neke zvezde blize, a neke dalje... kasnije cu, mozda, umesto pixela koristiti point sprite za zvezde.
Ako napraviš dovoljno fleksibilan particle system zvezdano polje i eksplozije mogu koristiti isti code.
Npr. Paralaks zvezdano polje je particle system kojem je
- emiter predstavljen linijom
- početno stanje je random
- život partikla je uvek isti
- svaki partikl ima neograničeni broj života
- smer je uvek isti
- broj partikla je konstantan
- početna brzina varira
Kod eksplozije
- emiter je predstavljen tačkom
- početno stanje je bez partikla
- život je određen dužinom eksplozije
- svaki partikl ima samo jedan život
- smer je random
- broj partikla varira od veličine eksplozije
- početna brzina je konstantna
Što više ovakvih stavki dodaš tvoj particle system će biti fleksibilniji, mada u isto vreme znači da neće biti optimalan za svaki pojedinačni slučaj.
Branimir