Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaEgon Hajdu Megváltozta több, mint 10 éve
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
28
Köszönöm a figyelmet!
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.