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?
Lihat artikel ini - yang telah diposting di sini berkali-kali sebelumnya, cukup cari melalui tanya jawab yang dideteksi dengan tabrakan - ini menunjukkan kepada Anda bagaimana melakukan resolusi tabrakan "kontinu" yang dibicarakan stephelton:
http://www.gamasutra.com/view/feature/3383/simple_intersection_tests_for_games.php?page=3
Pada dasarnya, Anda memecahkan beberapa persamaan kinematika dasar untuk titik waktu yang tepat ketika dua kotak pembatas Anda mulai berpotongan. Anda menyelesaikan tabrakan pada saat yang tepat, dan kemudian melanjutkan dengan sisa waktu dalam bingkai Anda. Anda mungkin harus mensimulasikan kembali apa yang terjadi setelah momen tabrakan, karena kecepatan / percepatan objek Anda akan berubah. Tapi bagaimanapun, ada titik awal Anda ... tepuk tangan!
sumber