Saya telah menerapkan mesin fisika game 3D sederhana. Saya sudah memiliki deteksi tabrakan yang layak, sekarang saya mencoba untuk mencari tahu bagian respons tabrakan. Saya menggunakan metode berbasis impuls untuk menghitung kecepatan pasca-tabrakan. Ini bekerja cukup baik, namun, itu tidak sepenuhnya mencegah tubuh untuk terus melakukan penetrasi. Jadi saya punya potongan kode tambahan untuk menyelesaikan penetrasi. Saat ini, saya hanya menggerakkan tubuh di sepanjang kontak normal dengan setengah kedalaman penetrasi - tubuh pertama ke arah kontak normal, tubuh kedua di arah yang berlawanan.
Ini ok sebagian besar waktu, tetapi ada beberapa efek yang tidak diinginkan. Sebagai contoh, bayangkan sebuah koridor sempit dan sebuah benda bergerak melewatinya. Jika objek menyentuh salah satu dinding koridor, resolusi penetrasi memindahkannya ke dinding yang berlawanan, kemudian di bingkai berikutnya kembali ke dinding pertama dan seterusnya. Efeknya adalah objek bergetar sangat cepat antara dinding yang tidak cantik.
Jadi pertanyaan saya adalah apakah ada cara yang lebih baik untuk menyelesaikan penetrasi? Mungkin tidak menggerakkan tubuh, hanya entah bagaimana menyesuaikan kecepatan mereka (di samping perhitungan impuls) sehingga mereka berhenti bergerak ke satu sama lain dan penetrasi menyelesaikan sendiri dalam beberapa frame berikutnya. Saya hanya menebak-nebak di sini. Ada ide?