bounding sphere ile basit bir collision testi yazmaya calisiyorum. hem entity-entity, hem de entity-kamera bounding spherelerin testi ile (ilk filtre bu) karsilastirilacak. Soyle bir noktada kilitlendim;
her iki kurenin de ayni world space\'de olmalari gerekiyor. ama her biri bagli olduklari objenin object space\'ine gore hesaplanmis durumda. bir tanesinin o anki transform matrisi elimde var, ama digerinin yok. sonucta scene yapisinda yukariya kadar cikip, tekrar asagiya inip, carparak diger sphere\'in transform matrisini bulabilirim ama cok sacma geldi. daha basit bir yolu olmali.. fikri olan?
Oncelikle bir nesne (Entity) icin bounding box (BB)hesaplarken, o entity nin her vertex \'ini elden geçirip (once toplayip, daha sonra vertex sayisina bolerek) bu entity \'nin koordinat agirlik merkezini buluyorum.. Bu dongu icerisinde ayni zamanda entity için bu koordinat merkezinden en buyuk uzaklasmayi sağlayan vertexin koordinat merkezine olan uzakligida bulunuyor (yaricap..) .. Sonucta elimde entity icin obje koordinat uzayinda bir adet koordinat merkezi ve ona bagli olan BB radius değeri oluyor.. BB kontrolu sirasinda karsilastirilan 2 entity icin bu entity lerin dunya uzerindeki konumlarina kendi BB koordinat merkezi degerlerini ekliyor boylelikle scene \'de (world space) BB merkez noktasini buluyor daha sonra yaricap i da bildigimden karsilastirmayi kolaylikla yapabiliyorum..
uffs, basit biseyi ne kadar da zor anlatabiliyormus insan.. Sorununu dogru anladiysam aslinda cozumu bu kadar basit..
kolay gelsin.. gorusuruz..
/* deniz */
[ Bu mesajı düzenleyen: deniz _FIL 15-12-2002 00:14 ]
aslinda problem tam olarak her iki farkli obce (entity) icin world space\'e gecebilmekti. cunku her iki obce de scene graph icinde farkli yerlerde. sorunu soyle cozdum, bb\'lari world space\'de tutmam gerekiyormus. Rendering islemine baslamadan once, scene\'i update (tazelemek?) icin bir tur geziyorum, asagiya dogru recursive inerken transformlari, sonra en alttan yukari cikarken de BB\'lari hesapliyorum. Boylece rendering pass\'i sirasinda elimde world space\'de degerler oluyor.
sagolsun 3D game engine design kitabi. Ilgilenen olursa magic.software.com adresinde, kitabin tam da bu bolumunu (4. bolumun basi) pdf olarak buldum. scene graph update, rendering nasil olur tam ihtiyacim oldugu sekilde anlatiliyor..
bounding sphere hesaplarken agirlik merkezi ile hatali kureler bulma ihtimalin var sanirim. yani eger objendeki vertexlerin dagilimi orantili degilse vertexin yogun oldugu yere yaklasir agirlik merkezi ve daha kotusu yaricap ucar bu durumda. bence min - max x, y, z degerlerini bulmak daha iyi bir yaklasim. hem boylelikle her vertexin merkeze uzakligini hesaplama ile ugrasmiyorsun (en iyi ihtimalle her vertex icin squared length buluyosun sanirim). yani hem daha hizli hem de daha dogru gibi geldi bana.. ne dersin?
Bu forumda yeni konular açamazsınız Bu forumdaki mesajlara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız