You are on page 1of 4

BSP Aac

BSP(Binary Space Partitioning-kili Uzay Blmlendirme) Aac Nasl Yaratlr Oyunumuzda, dnyamz ina ettik ve kamerayla gezinmeye baladk. Aaaa duvarlardan geiyoruz. Ne yapacaz? Dnyamzdaki duvarlar,zemini , tavan ,merdivenleri vsi alglamak grnr yzeyin tespitini gerektirir ki kameramzla gerekli tepkimeyi verelim. En yaygn grnr yzey tespit algoritmalar z-buffer(dinamik modeller iin) ve bsp aacdr(statik modeller iin). Bu derste, bir bsp aacn yaratmadaki btn admlar ele alnacaktr(Figr 1'de gsterilen kk dnyamzdaki(oyun) hatlar (duvarlar) zmlenecek.)

Figr 1 ("Hibir ss olmayan" basit oyunumuzdan bir blm)

Figr 2 (Figr 1in stten grnm) Bir bsp aac yaratmak iin genel algoritma: Adm 1: Btn duvarlarn bir listesi yaplr. Adm 2: Duvarlarn biri uzay(oyun) ki ksma(P1 ve P2) blen "ayrc duvar" olarak seilir. Adm 3: Ayrc duvarn nnde olan tm duvarlar "n" olarak isimli bir listeye konur. Adm 4: Ayrc duvarn arkasnda olan tm duvarlar "Arka" olarak isimli baka listeye konur. Adm 5: Eer ayrc duvar, duvarlardan herhangi biriyle kesiirse, o duvar iki paraya ayrlr, n listeye ayrc duvarnn nndeki duvar paras konur, arka listeye dier para. Not: Basitlik iin, ayrc duvar ile ayn hatta uzanan duvarlar ele alnmayacak. Adm 6: Ayrc duvar, bsp aacna yerletirilir. Basite ayrc duvar aacn kk olur. Ondan sonra, eer ilgili bir duvar ebeveyn duvarnn nndeyse ebeveyn duvarnn sana bsp aacnda

yerletirilir. Eer ilgili duvar ebeveyn duvarnn arkasndaysa ebeveyn duvarnn soluna bsp aacnda yerletirilir. (rnek iin figr 8 ve 9a bakn.) Adm 7: P1de , hat(duvar) tekil kalana kadar tekrar tekrar blmlenir. Sonra P2. imdi figr 1'deki dnyadan bir bsp aac yaratmak iin bu admlar izleyeceiz. Notlar: 1) Aadaki aklamalarda hali hazrda ikili aalar hakknda bilginiz olduu farz ediliyor. yle deilse una bak: http://sherman3d.com/Sherman3D/download.php?view.7(Link 03-23-2009de gncellenmitir) 2) Basitlik iin, aklama, 2D uzay esasl yaplmtr (Sadece xy dzlemi). Bu 2D algoritma, 3D uzayda yaplana ok benzerdir. 3) "yi" bir ayrc dm seiminde herhangi zel metod yok, bir bsp aa algoritmas uygularken Bu konuya gerekten dikkat verilmesi gereine ramen. 4) Bu 2D aklamada, her duvar, ayr bir poligon olacak ekilde dikkate alnr. Aada(figr 3 ve 4de) Figur 1deki 8 poligondan oluan mini dnyamz, Ha kadar etiketlenmitir. Her duvar, balama noktas (X1, y1) ve biti noktas (X2, y2) olan bir hat paras olarak temsil edilebilir. Bu derste, "hat paras" yerine "hat" denilecek. 5) Javaclar u siteyi mutlaka ziyaret etmeli: http://www.theparticle.com/dog3d.html..

imdi daha ayrntl algoritmay grelim: Figur 1 ve 2 deki dnyamz figr 3 ve 4de harflendirilmitir. Harflendirirken herhangi zel bir kstas yoktur.

Figr 3 (Figur 1nin harflerle etiketlenmi hali)

Figr 4 (Figur 3 n etiketli olarak stten grnm) Adm 1: Sayfann stndeki algoritmay izleyerek, Oyun dnyamzdaki poligonlarn hepsini listeleyerek balarz. Burada (Figur 3 ve 4de), bir dnyann Sadece bir ksmna sahibiz, Bundan dolay hatlar listemiz olduka kktr Tm hatlarn listesi: { A,B,C,D,E,F,G,H }. Gerek bir oyunda bu liste kocaman olur, belki 10000 veya fazlas poligon. Adm 2: Hatlar snflamak zere blnr, dnyay blen bir para seeriz. Dnyay blmede kullanlacak en iyi hatt semenin yollar vardr, Ama basitlik iin, Bu yollar burada kullanlmaz. Burada, C hatt ayrc hat olarak seilir, bu figur 6da krmzyla gsterilemekte:

Figur 6 Krmz izgi ayrc hattr. Ok, C hattnn nn gsterir.

Adm 3 ve 4: Devam edecek... http://opengltr.blogspot.com/2010/11/bsp.html

You might also like