Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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.

Hasonló előadás


Az előadások a következő témára: "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."— Előadás másolata:

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 rohamos fejlődése –Több millió háromszög má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észek betö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 tengelyekkel párhuzamos hipersíkokkal osztjuk ketté úgy, hogy… –a sík két oldalán közel azonos 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 BSPNode (root) •cutterPlane •boundingBox BSPLeaf (front) •polygonList •boundingBox BSPNode (behind) •cutterPlane •boundingBox BSPLeaf (front) •polygonList •boundingBox BSPLeaf (behind) •polygonList •boundingBox

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 1.Induljunk el a gyökértől 2.A vizsgált pont (aktuális pozíció) és a csomópont vágósíkjának viszonya szerint lépjünk tovább a gyerekek felé (front vagy behind) 3.Ismételjük a 2. pontot rekurzívan mindaddig, amíg levélhez nem érünk. 4.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észekhez befoglaló 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 1.Keressük meg, mely térrészben tartózkodunk aktuálisan 2.Gyűjtsük össze az innen látható térrészeket 3.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) 4.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 a

18 Példa a b

19 Példa a b 21

20 Példa a cb 21

21 Példa a c 43 b 21

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

28 Köszönöm a figyelmet!


Letölteni ppt "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."

Hasonló előadás


Google Hirdetések