मैं निम्नलिखित दृष्टिकोण का उपयोग करता हूं (Tonge http://www.richardtonge.com/ के सामूहिक विभाजन एल्गोरिथ्म के समान ):
- अपने दृश्य / संदर्भ में सभी टकराते जोड़े का पता लगाएं। लेट (ए, बी) ऐसी जोड़ी हो। एक भूत / सामूहिक विभाजन विचार लागू करें: यदि A, M निकायों के संपर्क में है और B N अन्य निकायों के संपर्क में है, तो अस्थायी रूप से A के
m_A/M
और B के द्रव्यमान को सेट करेंm_B/N
- प्रत्येक जोड़ी (ए, बी) के लिए गणना प्रतिक्रिया / बहाली बल योगदान और इन योगदानों को ए और बी के अपने संचायक में संग्रहीत करें
- आवेगों से पुनर्स्थापना वेगों की गणना करें (जैसा कि आपने कहा था) और उन्हें उसी फैशन में संग्रहीत करें ( प्रत्येक के लिए अपने स्वयं के संचयकों में डेल्टा वेग अवशेषों के रूप में (ए, बी) जोड़ी)
- गणना दंड विस्थापन (फिर से, विस्थापन जमा, उन्हें तुरंत लागू न करें!)
- टकराव जोड़े (
m_A = m_A * M
और m_B = m_B * N
) में पार्टियों के रूप में पहले से नामित सभी निकायों के जनता को रीसेट करें
यह दृष्टिकोण समान है कि जैकोबी पुनरावृत्ति एल्गोरिदम समीकरणों के रैखिक युगपत प्रणालियों के साथ कैसे काम करता है। और यह अभिसरण करने की गारंटी नहीं है, लेकिन मेरे सिम्युलेटर में यह काम काफी सुचारू रूप से करता है .. 3 डी में (हाँ, एक अतिरिक्त आयाम दो बार कठिनाई!)।
कैविएट : आपकी टक्कर का पता लगाने / हैंडलिंग चरण समाप्त होने के बाद ही सही स्थिति और वेग! इस तरह आप एक साथ अपने टकराने वाले अभिनेताओं को अपडेट करते हैं। इसके अलावा, अगली बार जब आप पदों और वेग के लिए एकीकृत होते हैं, तो पुनर्स्थापन बलों को ध्यान में रखा जाना चाहिए।
संपादित करें: ठीक है, मुझे लगता है कि आप पहले से ही दुरुपयोग की गई वेरलेट एकीकरण विधि का उपयोग कर रहे हैं (यह एक घरेलू नाम बन गया है उत्साही लोगों के भीतर)। टकराव से निपटने और एकीकरण के इस दर्शक में, आप यहाँ एक नज़र रखना चाहते हैं ।
अद्यतन: टकराव से कैसे संपर्क करें (और उस मामले के लिए स्वयं टकराव) के बारे में कुछ जानकारी इन पत्रों में पाई जा सकती है:
मेरे द्वारा प्रस्तावित दृष्टिकोण एक लंबे शॉट द्वारा एक मूल योगदान नहीं है, कई गेम इसे प्रशंसनीय परिणामों के साथ उपयोग करते हैं और इसे जेकबसेन ने अपने हिटमैन गेम इंजन में सबसे अच्छा नियोजित किया था।
कुछ हद तक व्यावहारिक अनुभव से, पेनल्टी फोर्स (लीनियर या एक्सपोनेंशियल स्प्रिंग्स के समान, जो प्रवेश दूरी से अपना इनपुट प्राप्त कर रहे हैं) ठीक से पेनेट्रेशन को हल नहीं करते हैं, जब निकायों की अन्य सेनाएं टकराती हैं जो उनसे अधिक होने का प्रबंधन करती हैं। इसलिए मैंने तीन (लगभग निरर्थक) दृष्टिकोणों को चुना है: न्यूटोनियन प्रतिक्रिया बल (आप दीवार को धक्का देते हैं, दीवार पीछे धकेलती है), आवेग व्युत्पन्न वेग (स्नूकर बॉल टकराते हुए) और एक गैर-प्राकृतिक "शरीर को एक दूसरे से ज्यामितीय रूप से दूर ले जाते हैं। " समाधान। साथ में वे सब कुछ प्रदान करते हैं: अधिकांश से छुटकारा पाएंबदसूरत अंतर्विरोध कलाकृतियाँ, टकराने वाले शरीर लंबे समय तक एक दूसरे के साथ बातचीत करते हैं (पुनर्स्थापना वेगों और ताकतों के कारण - कम से कम बलों जो टकराव परिदृश्य में निकायों को खींचने के लिए गए थे, रद्द हो गए हैं और शव एक दूसरे से दूर हो गए हैं) । अंत में, इन सरल लेकिन आम अवधारणाओं की आगे की समझ के लिए, मैं इन स्लाइडों का विश्लेषण करने का सुझाव देता हूं ।
वेरलेट एकीकरण चरणों का वर्णन करने वाली मेरी "दुर्व्यवहार विधि" एपिथेट एक लोकप्रिय संस्कृति विश्वास पर लक्षित है कि यह एकीकरण विधियों का पवित्र कंघी बनानेवाले की रेती है। यह अपने सिम्पलेक्टिक यूलर (जिसे कुछ अर्ध-निहित यूलर भी कहा जाता है) चचेरे भाई से थोड़ा बेहतर है। जिस तरह से अधिक जटिल एकीकरण विधियाँ मौजूद हैं (और सभी उन में निहित नाम को सहन करते हैं)। शक्तिशाली खेल इंजन उनका उपयोग करते हैं, लेकिन इंडी डेवलपर्स के पास वेलेट के बाद से प्रयोग करने का समय नहीं है, जब एक विशिष्ट परिदृश्य से जुड़ा होता है, तो वास्तव में चमत्कार होता है। इसके अलावा, पूरी तरह से कोई एकीकरण विधि नहीं है, जिसमें थोड़ी सी भी धोखा दिए बिना कड़ी बाधाओं से निपटा जा सकता है (लिंक नहीं मिल सकता है, लेकिन मैं जिस पेपर का जिक्र कर रहा हूं, उसे "X.Provot -" विरूपण कहा जाना चाहिए) - कठोर कपड़े व्यवहार का वर्णन करने वाला मॉडल