Kayıt: Nov 02, 2002 Mesajlar: 215 Nereden: Istanbool
Tarih: Tue Sep 06, 2005 12:01 pm Mesaj konusu:
en basit bi collision detection:
elinde kamera'nin oldugu point var.
bu point'i merkez alan bir sphere var diye dusun, radius'u R olsun.
bina'nin duvarlarini olusturan triangle'lerin vertexleri var.
bu vertexlerin olusturdugu plane'ler var, hesaplanir.
kamera her hareket ettiginde sunu test et:
1)kameranin point'i ile triangle'nin uzerinde yattigi plane arasindaki mesafe R'den kucuk mu?eger kucukse kuremiz plane'e carpiyor demektir.
2)eger plane'e carpiyorsak, carptigimiz nokta triangle'nin icinde mi disinda mi? burada biraz matematigimizi konusturuyor, ve bolca google yapiyoruz. eger carpisma noktasi triangle'nin vertexlerinin icindeyse aha carpmisiz, demek ki o tarafa daha fazla gidemeyiz diyoruz.
Kayıt: Feb 26, 2003 Mesajlar: 1258 Nereden: Dünya.Türkiye(54)
Tarih: Wed Sep 07, 2005 10:38 am Mesaj konusu:
Al sana benim yöntemim:
Plane & Kamera: Bu olayı yapmak için gereken iki olay var. Birincisi; Çarpışmanın gerçekleşeceği nesleleri Örn: Ev, bina, Masa vs. vs. gibi objelerin Plane/Yüzey verilerinide hesapla ve bir yerde tut. İkincisi; Bu plane yüzeylerinin hangi nesnelere ait olduklarınıda başka bir veri içinde tut ve bunların başlangıç ve bitiş aralığını bu Nesne yapısında tut...
Olay: Buradan sonrası gerçek zamanda yapacağın testlere kalıyor: tüm nesneleri render() içinde dön, Nesneler[nesneSayisi] kadar ve burada nesnenin sahip olduğu plane'leri kamerayla kontrol et ama kameranın View vektörü ile yada Min Max kutusu varsa yani Bounding Box (Hacim Kutusu), Min noktası ile test et ve Nesenedeki tüm Plane'lerin YUZEY_ARKASINDA olup olmadığını kontrol et (Dikkat tüm plane'lerin) eğer hepsinden true cevabu alırsan kamerayı durdur... geri çekilme işleminide aynı şekilkde, kameranın Position vektörü yada Min Max varsa Max noktası ile kontol et... Eğer çarpışmışma yoksa kamera geri gelecektir... (Bu benim fikrim, daha önce bu işi yapan bir uygulama görmedim fakat teoride çalışıyor gibi ama pratikte denemedim )
2. Yöntemi dinlendikten sonra anlatacam ama olan: Tüm neslelerin Bounding Box yani Hacim kutusu ile yapılacak; Min Max noktalarıyla...
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