Basit 3D oyun fizik motoru uyguladım. Zaten iyi bir çarpışma tespiti var, şimdi çarpışma tepki kısmını anlamaya çalışıyorum. Çarpışma sonrası hızları hesaplamak için dürtü tabanlı yöntem kullanıyorum. Bu oldukça iyi çalışıyor, ancak vücutların iç içe geçmesini tamamen engellemiyor. Yani penetrasyonu çözmek için ek kod parçası var. Şu anda, vücutları normalde temas derinliği boyunca penetrasyon derinliğinin yarısı kadar hareket ettiriyorum - ilk vücut normal temas yönünde, ikinci vücut ters yönde.
Bu çoğu zaman iyidir, ancak bazı istenmeyen etkiler vardır. Örneğin, dar bir koridor ve içinde hareket eden bir nesne düşünün. Nesne koridorun duvarlarından birine çarparsa, penetrasyon çözünürlüğü onu karşı duvara, daha sonra bir sonraki çerçevede ilk duvara geri döndürür ve bu şekilde devam eder. Etki, nesnenin duvarlar arasında gerçekten hızlı olmayan bir şekilde titremesidir.
Benim sorum, penetrasyonu çözmenin daha iyi bir yolu olup olmadığı? Belki de bedenleri hareket ettirmeyin, hızlarını bir şekilde ayarlayın (dürtü hesaplamasına ek olarak), böylece birbirlerine doğru hareket etmeyi bırakırlar ve penetrasyon sonraki birkaç karede kendiliğinden çözülür. Sadece burada tahmin ediyorum. Herhangi bir fikir?