Love-2d kullanarak geliştirdiğim (öğrenme için) bir fizik motorunda çarpışma çözümlerini şu şekilde uyguladım:
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
...
Gif animasyonunun sonunda görebileceğiniz gibi, tüm çarpıştırıcılar neredeyse statik bir nesneye topraklandığında bir FPS bozulması var.
Çünkü nesneler yerleştikçe dokunmak için daha fazla zaman harcadıkça çarpışma çözümlerinin sayısı artar. Ancak, hesaplamaların çoğu "işe yaramaz" çünkü nesneler zaten birbirlerine karşı istikrarlı pozisyonlara yerleşmiştir.
Bu "işe yaramaz" çarpışma tespitlerinden kaçınmak için en iyi uygulama hangisidir (umarım fizik derecesi gerektirmez)?
Düzenleme: kabul edilen DMGregory ipuçları ve bu sonuca gelin (henüz optimal değil)
(Kırmızı = statik, Mavi = aktif, Yeşil = uyku)