Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

XNA performanse pri kreiranju grada

[es] :: GameDev - Razvoj Igara :: XNA performanse pri kreiranju grada

[ Pregleda: 2079 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bondja

Član broj: 10286
Poruke: 167
80.93.241.*



+3 Profil

icon XNA performanse pri kreiranju grada19.07.2012. u 12:14 - pre 143 meseci
Da li neko ima iskustva (ne ono moglo bi ovo ili ono), vec realna iskustva, kako napraviti grad (sa npr 100-nu zgrada, kuca) u XNA?
Recimo da imam neke modele ulica, zgrada/kuca (nebitno), sa teksturama, pitanje je sta primeniti (koje tehnike iscrtavanja, koji "engine",
pristup) da bi nacrtali veci broj tih objekata, a da bi imali i dalje dobre performanse?

Primeri koda koji radi , bi bili vise nego dobrodosli (moze i link na sajt/forum) gde ste videli da je tako nesto napravljeno u XNA/C#.

Hvala

poz
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
180.71.20.*

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: XNA performanse pri kreiranju grada19.07.2012. u 12:17 - pre 143 meseci
100, pa i 1000+ objekata nije nikakav problem danas, probaj prvo pa napisi sta te muci, posalji neki screenshot ili nesto po cemu bi mogli da zakljucimo sta je problem.
 
Odgovor na temu

bondja

Član broj: 10286
Poruke: 167
80.93.241.*



+3 Profil

icon Re: XNA performanse pri kreiranju grada19.07.2012. u 13:44 - pre 143 meseci
Toso,
nije problem neka je i 10K zgrada/kuca, nego se raspitujem koji pristup da primenim, npr:

Occlusion Query (OcclusionQuery class)
Frustum Culling
QuadTree
Hardware instancing (mnogo istih modela)
Vertex Cashe (vertexi koji imaju istu texturu i normale, ali drugacije polozaje -crta ih GPU u 1 cugu)
------------------------------------------------------------
-BoundingSphere for each model
-BoundingFrustum for camera
-check kamera Bounding with model Sphere
------------------------------------------------------------
Group all objects that use the same texture/material properties together (and send to GPU)
The key is not minimising calls but minimising the amount of changes in state (textures/shaders etc) required across the scene.
------------------------------------------------------------

E sada ako neko ima iskustva u tome sta iskoristiti / iskombinovati od ovoga (ili ako postoji jos neki pristup) ?

Hvala

poz

PS.Dobro bi doslo i neko parce koda koje radi ispravno :D


 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
180.71.20.*

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: XNA performanse pri kreiranju grada19.07.2012. u 13:58 - pre 143 meseci
Pa svakako ce ti trebati neki visibility culling. Posto je struktura relativno ravna (grad) onda je quad tree sasvim ok. Kada izolujes vidljive celije quad tree-a onda radis frustum culling za svaku kucu/zgradu/objekat.
Da li ces da koristis sfere ili AABB nije preterano vazno jer ce ti svakako broj vidljivih zgrada pasti drasticno. Pretpostavljam da nisu providne zgrade, tj. da nemas transparenciju - onda ih sortiras po udaljenosti od kamere i crtas od blize ka daljim, da bi lepo koristio Z buffer.
Ove ostale optimizacije su u redu svaka za sebe ali stvarno zavisi, pre svega, od podataka koliko svaka ima smisla. Ja ti predlazem da odradis prvo quad tree/frustum cull pa da onda vidis da li to radi dovoljno brzo - ako ne radi onda da vidimo sa cim radis (podaci).

Za kod ce morati neko drugi da se javi jer ne koristim C# :)
 
Odgovor na temu

bondja

Član broj: 10286
Poruke: 167
80.93.241.*



+3 Profil

icon Re: XNA performanse pri kreiranju grada19.07.2012. u 14:42 - pre 143 meseci
Hvala Toso!

"Ove ostale optimizacije su u redu svaka za sebe ali stvarno zavisi, pre svega, od podataka koliko svaka ima smisla" - pa to je, znaci najvise ce zavisiti od modela / tekstura koje imam...

Nisam pomenuo LOD - da se ucitavaju lakse teksture u zavisnosti od razdaljine - ovo ce da ubrza, ali ce mozda ruzno da izgleda... :(

Nadao sam se da postoji neki opstiji pristup, gde moze da se napravi poredjenje npr ovako nesto:

Npr imamo 1000 objekata koji treba da se iscrtaju, sledeci pristupi odreduju sta treba da se zaista i nacrta:

- quad tree - crtaj samo 120 objekata
- frustum culling - crtaj 90
- occlusion culling - crtaj 60
- LOD - crtaj 60, ali brze iscrtavanje (pitanje koliko)
- hardware instancing - brze ako ima vise istih objekata (a uglavnom ima)

Brojevi su onako nabacani, ali pokazuju koliko bi ove tehnike bile efikasne...

Ali ako svako ovo iscrtavanje zavisi od podataka (modela/tekstura), to znaci da cu morati da eksprimentisem :)

PS. nasao sam primere gde se crtaju tereni (primenjuju ove pristupe), ali nigde da se crta grad.
Ono sto je vazno napomenuti, da bi ipak trebalo da imam i sunce + senku!

poz

[Ovu poruku je menjao bondja dana 20.07.2012. u 09:13 GMT+1]
 
Odgovor na temu

[es] :: GameDev - Razvoj Igara :: XNA performanse pri kreiranju grada

[ Pregleda: 2079 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.