Dalam mesin fisika yang saya kembangkan (untuk belajar) menggunakan love-2d , saya menerapkan resolusi tabrakan dengan cara ini:
FixedUpdate(dt) // I use fixed timestep
foreach collide c1 in allNotStaticColliders
c1.integartePhysic // i.e. apply gravitational force..
foreach collider c2 "near" c1 // "near"= I use spatial hashing
if collide(c1,c2)
resolve collision (c1,c2) // the heavy operation
collison callbacks c1
collison callbacks c2
...
Seperti yang dapat Anda lihat di akhir animasi gif, ada pembusukan FPS ketika semua colliders hampir di-ground-kan pada objek statis.
Ini karena jumlah resolusi tabrakan tumbuh sebagai objek menghabiskan lebih banyak waktu menyentuh saat mereka menyelesaikan. Namun, banyak perhitungan yang "tidak berguna" karena benda-benda telah menetap di posisi yang stabil terhadap satu sama lain.
Apa praktik terbaik (mudah-mudahan tidak memerlukan gelar fisika) untuk menghindari deteksi tabrakan "tidak berguna" ini?
Edit: petunjuk DMG yang diterima dan sampai pada hasil ini (belum optimal)
(Merah = statis, Biru = aktif, Hijau = tidur)