karakterin üzerinde durduğu üçgeni bul önce. eğer heightmap kullanıyorsan bunu bulmak kolay ama arazin dağınık üçgenlerden oluşuyorsa karakterin hangi üçgene denk geldiğini bulmak için tüm üçgenleri test etmen gerekir.. bu noktada en azından kaba bir biçimde bir çeşit arazi geometri bölümlemesi yapmak mantıklı gözüküyor - quadtree kadar karmaşık bir yapıya gerek yok gibi.. en kolayı arazi geometrisini parçalara böl.. bunları ayrı modeller olarak kaydet ve programında farklı modeller olarak yükle ve göster.. her parçanın boundinn box ını bildiğin için karakterin koordinatlarının hangi parçaya denk geldiğini bulabilirsin.. daha sonra bu parçadaki tüm üçgenler içinde hangi üçgene denk geldiğini yine kaba kuvvet if ler ile bulacaksın..
daha sonra bulduğun üçgenin köşe noktalarından faydalanarak yüzey denklemini çıkar.. karakter koordinatının x ve z değerini yüzey denklemi üzerine koyup yüzey üzerinde bulunacağı y kordinatını direk hesaplayabilirsin.. buda sana karakterin durması gereken y (yükseklik) değerini verir tabi..
aslında çok da kolay olmadı ama..
lib3d terrain.cpp içerisinde köşe noktalarından yüzey denklemi bulmak ve x,z ye göre bu denklemden y değerini çıkarmak ile ilgili kod hazır olarak var..
başlangıç olarak tüm üçgenleri test ederek işe başlayabilirsin.. kolay gelsin..
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