प्रेम -२ डी का उपयोग करते हुए (सीखने के लिए) एक भौतिकी इंजन में , मैंने इस तरह टकराव के प्रस्तावों को लागू किया है:
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
...
जैसा कि आप जिफ एनीमेशन के अंत में देख सकते हैं, एक एफपीएस क्षय है जब सभी कोलाडर लगभग एक स्थिर वस्तु पर आधारित होते हैं।
ऐसा इसलिए है क्योंकि टकराव के प्रस्तावों की संख्या बढ़ जाती है क्योंकि वस्तुओं को छूने में अधिक समय व्यतीत होता है क्योंकि वे बस जाते हैं। हालांकि, कई गणना "बेकार" हैं क्योंकि ऑब्जेक्ट पहले से ही एक दूसरे के खिलाफ स्थिर स्थिति में बस गए हैं।
इन "बेकार" टकराव से बचने के लिए सबसे अच्छा अभ्यास (उम्मीद है कि भौतिकी की डिग्री की आवश्यकता नहीं है) क्या है?
संपादित करें: DMGregory संकेत स्वीकार किए जाते हैं और इस परिणाम पर आते हैं (अभी तक इष्टतम नहीं)
(रेड = स्टैटिक, ब्लू = एक्टिव, ग्रीन = स्लीपिंग)