1 / 28

BSP-fák használata játék-engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez

BSP-fák használata játék-engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez. Előadó: Boromissza Gergely Konzulens: dr. Szirmay-Kalos László. Bevezetés I. BSP-fa használat 1990-es évek: Doom 2000-es évek: Quake 2005: Half-Life 2. Bevezetés II.

Download Presentation

BSP-fák használata játék-engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BSP-fák használata játék-engine fejlesztésében a nagy kiterjedésű zárt terek megjelenítéséhez Előadó: Boromissza Gergely Konzulens: dr. Szirmay-Kalos László

  2. Bevezetés I. • BSP-fa használat • 1990-es évek: Doom • 2000-es évek: Quake • 2005: Half-Life 2

  3. Bevezetés II. • Videokártyák rohamosfejlődése • Több millió háromszögmásodpercenként • Felhasználói igények növekedése • Élethű környezet (még több háromszög) • Dinamikus elemek, árnyékok • Minél nagyobb FPS • Rövid várakozási/betöltési idő

  4. Bevezetés III. Teljes terep kirajzolása • Részletes kidolgozottság • Nagyon sok háromszög • Lassú megjelenítés (kicsi FPS) • Elnagyolt kidolgozottság • Gyors megjelenítés • Csúnya terek

  5. Bevezetés IV. • Pálya szétszabdalása • Kicsi pályarészek • Várakozás az új részekbetöltésére • Lineáris játékmenet • Dinamikus pályarész betöltés

  6. Bevezetés V. • BSP-fák ötlete • Játéktér strukturális felépítése • Csak a szükséges méretű játéktér megjelenítése • Vizsgálatok (pl. ütközésdetektálás) csak az aktuális térrészben • Előfeldolgozási időben számolható • Minimális valós-idejű számítási igény • Lehet részletesen kidolgozott terep • Elfogadható FPS

  7. Kd-fa • Kd-fa • A teret a tengelyekkelpárhuzamos hipersíkokkalosztjuk ketté úgy, hogy… • a sík két oldalán közelazonos számú poligon legyen, mindaddig… • amíg elegendően kevés poligon nem lesz minden egyes térrészben.

  8. BSP-fa • BSP-fa (Kd-fa kiterjesztése) • A teret a pálya egy poligonjának síkjával osztjuk ketté úgy, hogy… • minél kevesebb poligont vágjunk ketté és… • a sík két oldalán közel azonos számú poligon legyen mindaddig… • amíg minden egyes térrészben a poligonok által alkotott alakzat konvex nem lesz.

  9. BSP-fa struktúra

  10. BSP-fa használata • Különféle vizsgálatokhoz • Csak az aktuális térrészben szükséges • Megjelenítéshez • Aktuális térrész • Aktuális térrészből látható térrészek

  11. Aktuális térrész keresése • Rekurzív algoritmus • Induljunk el a gyökértől • A vizsgált pont (aktuálispozíció) és a csomópont vágósíkjának viszonya szerint lépjünk tovább a gyerekek felé (front vagy behind) • Ismételjük a 2. pontot rekurzívan mindaddig, amíg levélhez nem érünk. • A levél reprezentálja a térrészt, amiben aktuálisan tartózkodunk

  12. Átjárás a térrészek között I. • Szükség van rá, mert… • nem feltétlenül csak az aktuális térrész látható az aktuális pozícióból, hanem… • a szomszédosak is látszódhatnak • Módszer • A térfelosztás után még előfeldolgozási időben döntsük el minden egyes térrészre, hogy abból mely más térrészek látszódhatnak • Tároljuk el ezt is a struktúránkban

  13. Átjárás a térrészek között II. • Megvalósítás • Számoljunk a térrészekhezbefoglaló dobozt • Amennyiben a befoglalódobozoknak van közös részük, mondjuk azt, hogy van átjárás a térrészek között • Tároljuk ezt az információt egy vektorban, ahol egy bit jelöli az átjáró létét a két térrész között

  14. Megjelenítés I. • A látható térrészek összegyűjtése • Keressük meg, mely térrészben tartózkodunk aktuálisan • Gyűjtsük össze az innen látható térrészeket • Dobjuk el ezek közül a már vizsgált, és az aktuális kamera beállítások mellett nem látszódó térrészeket (befoglaló dobozos vizsgálat) • Végezzük el rekurzívan minden egyes megmaradt térrészre a vizsgálatokat a 2. ponttól kezdődően

  15. Megjelenítés II. • Jelenítsük meg az így összegyűjtött látható térrészek összes háromszögét • ha az aktuális térrésszel kezdünk, akkor a Z-bufferbe való írások száma jelentősen lecsökken, mert… • a jelenleginél közelebbi térrészek, illetve háromszögek nem lehetnek

  16. Példa

  17. Példa

  18. Példa

  19. Példa

  20. Példa

  21. Példa

  22. Példa • Átjárhatóságok • 1-2 • 2-4 • 3-4

  23. Példa • Avatar térrésze • 1 • Látható térrész(ek) • 2 • Valóban látható • 2 • Onnan látható • 1; 4 • Nem vizsgált térrész • 4 • Valóban látható • n.a. • Összes látható • 1; 2

  24. Eredményeim I. • BSP készítő program • Bemenet: OBJ fájl • Háromszögesített • Befele néző normálokkal • Avatar kezdőpontja a (0; 0; 0)-s koordinátában • Elegendően magas mennyezet (avatar szempozíciója 1 egység magasan) • Kimenet: BSP fájl • Saját készítésű • Alapötlet a Quake 3 formátuma alapján

  25. Eredményeim II. • BSP megjelenítő program • DirectX 9.0c használata • BSP fájlok betöltése • Megjelenítés • Adott térrész zöld színnel • Többi látható térrész pirosból kékbe átmenő árnyalattal • Mozgás • Felhasználói irányítás (mozgás, ugrás) • Minimális fizika (gravitáció, csúszás, ütközés)

  26. Továbblépés • Anyag jellemzők és textúra használata MTL fájlból • Láthatósági feltételek finomítása • egyszerűen és gyorsan kezelhető • megbízható módszerre • Fizikai modell finomítása

  27. Köszönöm a figyelmet!

More Related