Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


oyunyapimi.org: Forums

www.oyunyapimi.org :: Başlığı Görüntüle - Collision Detection?
 SSSSSS   AramaArama   Kullanıcı GruplarıKullanıcı Grupları   ProfilProfil   LoginLogin 

Collision Detection?

 
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> OpenGL, DirectX
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
Vertex3f



Kayıt: Sep 06, 2005
Mesajlar: 3

MesajTarih: Tue Sep 06, 2005 11:38 am    Mesaj konusu: Collision Detection? Alıntıyla Cevap Ver

Merhaba,

Bir haftadır OpenGL ile uğraşıyorum.. Bir bina modelim var..
İçinde dolaşırken duvarları ve merdivenleri nasıl detect ediyorsunuz?

Teşekkürler..
Başa dön
Kullanıcı profilini gör
lucifer



Kayıt: Nov 02, 2002
Mesajlar: 215
Nereden: Istanbool

MesajTarih: Tue Sep 06, 2005 12:01 pm    Mesaj konusu: Alıntıyla Cevap Ver

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.

temel olarak bu.
Başa dön
Kullanıcı profilini gör Kullanıcının web sitesini ziyaret et
Vertex3f



Kayıt: Sep 06, 2005
Mesajlar: 3

MesajTarih: Tue Sep 06, 2005 2:12 pm    Mesaj konusu: Alıntıyla Cevap Ver

Teşekkür ederim..
Başa dön
Kullanıcı profilini gör
MD-C



Kayıt: Feb 26, 2003
Mesajlar: 1258
Nereden: Dünya.Türkiye(54)

MesajTarih: Wed Sep 07, 2005 10:38 am    Mesaj konusu: Alıntıyla Cevap Ver

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...

Örn:
Kod:
Üçgenler verisi:
struct Triangle {
 Vector3 Vertex[3];
 Vector2 TexCoord[3];
 Vector4 Color;
 Plane yada Vector4 Plane;
};

Neslener verisi:
struct Nesne;
 char Nesne[32]; // "Kapı" gibi...
 int Tur; // Statik, dinamik gibi...
 Triangle *NesneninSahipOlduguUcgenBaslangici; // Örn: &Triangles[100];
 Triangle *NesneninSahipOlduguUcgenBitisi; // Örn: &Triangles[107];

};


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 Smile ama pratikte denemedim Very Happy )

2. Yöntemi dinlendikten sonra anlatacam ama olan: Tüm neslelerin Bounding Box yani Hacim kutusu ile yapılacak; Min Max noktalarıyla...
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
RoadMaster



Kayıt: Oct 17, 2003
Mesajlar: 209

MesajTarih: Wed Sep 07, 2005 12:25 pm    Mesaj konusu: Alıntıyla Cevap Ver

carpisma olayi tamam iken bir sonraki saniyeyi hesaplat eger bir sonraki saniye icinde nesnenin icindeyse carpabilecegi acidan pozisyona geri donsun
Başa dön
Kullanıcı profilini gör MSN Messenger
Vertex3f



Kayıt: Sep 06, 2005
Mesajlar: 3

MesajTarih: Wed Sep 07, 2005 1:14 pm    Mesaj konusu: Alıntıyla Cevap Ver

Çok teşekkürler arkadaşlar..
Başa dön
Kullanıcı profilini gör
Mesajları göster:   
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> OpenGL, DirectX Tüm saatler GMT +2 Saat
1. sayfa (Toplam 1 sayfa)

 
Forum Seçin:  
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


Powered by phpBB 2.x.x © 200x phpBB Group
Türkçe Çeviri : Onur Turgay & Erdem Çorapçıoğlu
Türkçe Düzenleme: Alexis Canver
Version 2.x.x of PHP-Nuke Port by Tom Nitzschner © 200x www.toms-home.com




Web site powered by PHP-Nuke
Web site engine\'s code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Sayfa Üretimi: 0.103 Saniye