विभिन्न समन्वय-प्रणालियों के साथ भौतिकी सिमुलेशन को जोड़ना


9

मैं वस्तुओं को एक "विंडो" के माध्यम से दो भौतिकी सिमुलेशन के बीच ले जाना चाहता हूं और दोनों सिमुलेशन से उन लोगों के साथ टकराता है जब वे खिड़की के विमान को काटते हैं।

सिमुलेशन की समन्वय प्रणालियों में एक ही मूल नहीं है और एक अलग अभिविन्यास हो सकता है। खुद के लिए एक सिमुलेशन लपेटना आवश्यक नहीं है, लेकिन एक प्लस होगा।

मैं व्यक्तिगत वस्तुओं के क्लोनिंग के बिना सिस्टम को कुशलता से कैसे कनेक्ट करूं?

संपादित करें:

गणना यथासंभव सटीक होनी चाहिए, इसलिए यदि वे विपरीत पक्षों से एक ही समय में खिड़की पार करते हैं, तो ऑब्जेक्ट अटक नहीं जाते हैं।


पहला सवाल होगा, क्या शारीरिक अनुकरण खिड़की के पार सटीक होना चाहिए? क्योंकि अभिविन्यास परिवर्तन एक उचित स्वीप को बहुत असंभव बनाते हैं। यह थोड़े बदलते पोर्टल्स की तरह थोड़े है - संभव दर्द की दुनिया। दूसरा प्रश्न: विभिन्न अभिविन्यास, जैसा कि मनमाना, या कम से कम 90 डिग्री के कोण पर, बस एक अक्ष स्वैप?
काज

अब, यह एक समस्या की तरह लगता है जो उन्हें पोर्टल में संबोधित करना था। अगर मुझे ठीक से याद है कि वे इन समस्याओं का उल्लेख करते हैं और उन्होंने कुछ खेल-टिप्पणियों में उन्हें कैसे हल किया। आप शायद इन ऑनलाइन कहीं पा सकते हैं।
नैलर

@ काज मुझे लगता है कि मनमाना और समकोण संक्रमणों के लिए गणना पथ को विभाजित करना सबसे अच्छा होगा। इस तरह, समकोण वाले उच्च सटीकता और गति प्राप्त कर सकते हैं, जबकि अन्य कोण संभव होगा।
तमसाची

@ नेलर अगर मुझे सही से याद है, तो उन्होंने पोर्टल को खोलते समय एक नया भौतिकी वातावरण बनाया और फिर इस अतिरिक्त सिमुलेशन में पास होने वाली प्रत्येक भौतिकी-वस्तु का क्लोन तैयार किया। उन्होंने कहा कि उन्होंने किसी तरह वस्तुओं को विवश किया है, लेकिन यह सबसे अधिक संभावना है कि वे बस बलों को बदल रहे हैं और प्रत्येक भौतिकी-चरण को खोल रहे हैं। <br> मुझे पूरा यकीन है कि वे खिलाड़ी के आंदोलन के कारण गंतव्य पर एक तीसरा क्लोन बनाते हैं। स्रोत में नकली।
तामची

जवाबों:


2

पूर्व में 'पोर्टलाइज्ड' के रूप में जानी जाने वाली स्यूडोफोर्म नामक यह शांत परियोजना है, जो एक ग्रूवी फैशन में पोर्टल्स का उपयोग करके भौतिकी सिमुलेशन को संभालती है:

Pseudoform

इसकी जांच - पड़ताल करें!

विशेष रूप से वीडियो - यह बहुत ही शानदार है।

यह खुला स्रोत है, इसलिए आपको यह देखने को मिलता है कि वे इसे कैसे करते हैं।

मुझे यकीन है कि तुम क्या चाहते हो। :)


2
मैं सिर्फ कोड के माध्यम से पढ़ता हूं: वे जिस तरह से करते हैं वह लगभग वाल्व के समाधान की तरह है, लेकिन अतिरिक्त भौतिकी वातावरण के बिना। पोर्टलाइज़्ड इंजन में पोर्टल पोर्टल सतह को छूने के बाद किसी ऑब्जेक्ट का डुप्लिकेट बनाते हैं, फिर एक निश्चित समय के लिए पोर्टल से बाहर जाने के बाद उसे हटा दें। यह उत्तर अभी भी कुछ हद तक मददगार है: डुप्लिकेट्स को विवश करने के लिए इस्तेमाल किया गया संयुक्त दिखाता है कि पोर्टल में ऑब्जेक्ट कैसे रूपांतरित होता है।
तमसाची

0

ठीक है - मुझे नहीं पता कि यह काम करेगा।
उपरोक्त जानकारी के आधार पर मैं 'विंडो' पर ट्रिगर लगाऊंगा ताकि किसी वस्तु के दुनिया से बाहर जाने पर पता लगा सकूं। टक्कर के समय वर्तमान वेग वेक्टर को पकड़ो। गणना के आधार पर बायीं ओर टाइमस्टेप की गणना करें कि यह ट्रिगर कहां से टकराया और कहां से यह फ्रेम खत्म हुआ (दुनिया के बाहर, आपकी दुनिया को इसके लिए अनुमति देने के लिए आभासी सीमा की आवश्यकता होगी)। इस बिंदु पर आप गति और बायीं ओर की गति को जानते हैं, इसलिए आप इसे उस दुनिया की सीमा पर निरस्त कर सकते हैं, जिसमें यह प्रवेश करने वाला है, और वेग को पुन: उत्पन्न करता है। हालांकि इसके लिए एक फ्रेम में दो भौतिकी अपडेट की आवश्यकता होगी, और एक वस्तु की सीमा एक से b तक जाएगी जबकि दूसरी b से उसी स्थिति में जाती है - कोई टकराव नहीं होगा।
किंडा स्केच,


यह संभव सबसे तेज़ तरीका प्रतीत होता है, लेकिन एक समस्या यह है कि यदि दो वस्तुएं एक ही तरफ से खिड़की पार करती हैं: यदि पहली वस्तु सीमा के मध्य में अटक जाती है, तो दूसरा तब तक टकराएगा नहीं जब तक कि वह सीमा तक नहीं पहुंच जाती, भी, और गंतव्य पर पहले एक के अंदर दिखाई देते हैं।
तामची

जब आप टाइप करते हैं, तब थोड़ा एडिट किया जाता है, और यह वास्तव में वह मुद्दा है जो मैंने जोड़ा था: o \
काज

मुझे पढ़ना सीखना है। मेरा जोड़ एक और सीमा मामला था। विचार करेंगे।
काज

नहीं, सीमा दुनिया के बाहर है। तो ऑब्जेक्ट एक को दुनिया 2 में शूट किया जाएगा (दुनिया 2 की सीमा से - खिड़की की स्थिति पर नहीं) यह अपने आप में वेग है, जैसा कि ऑब्जेक्ट बी होगा। वे दुनिया में 2 सीमा पर ठीक से टकराएंगे .... मुझे लगता है: ओ? हालाँकि मेरा अपना सीमा मामला अभी भी है।
काज

ऐसा लगता है जैसे मैंने वर्चुअल बॉर्डर के बारे में गलत बताया है। वैसे भी, एक और समस्या है अगर कोई वस्तु अटक जाती है। गंतव्य विंडो के पीछे की ओर का हिस्सा अभी भी मूल स्थिति में प्रदान किया जाएगा, लेकिन जो वस्तुएं सीमा को नहीं छूती हैं वे इसके साथ नहीं टकराएंगी। इन समस्याओं को हल करने का एक तरीका सिमुलेशन को एकजुट करना होगा, लेकिन मुझे यकीन नहीं है कि यह कुशलता से कैसे किया जा सकता है।
तामची

0

मैंने भौतिकी सिमुलेशन पर कुछ इन्फोस को पढ़ा और एक संभावित समाधान पाया। यह प्रत्येक भौतिकी-चरण को तीन चरणों में विभाजित करके काम करता है:

1. पूर्व-चरण:

प्रत्येक भौतिकी-चरण, एक विंडो चार रूपांतरण बनाता है, कनेक्शन के प्रत्येक पक्ष के लिए दो:

  • एक इनपुट परिवर्तन जो किसी वस्तु की स्थिति, वेग (और संभवतः आकार और वजन) को गंतव्य समन्वय प्रणाली में बदल देता है और
  • एक आउटपुट ट्रांसफॉर्मेशन जो बलों को ऑब्जेक्ट के मूल सिस्टम में वापस बदल देता है।

(स्टेटिक विंडो को केवल एक बार ऐसा करने की आवश्यकता है।)

इसके अतिरिक्त, प्रत्येक समन्वय-प्रणाली में वस्तुओं को तीन समूहों में विभाजित किया जाता है:

भौतिकी समूहन http://content.wuala.com/contents/Tamschi/Stack%20Exchange/WindowGrouping.png

  1. खिड़की के सामने की वस्तु (हरा)।
    इस समूह की ओर एक ऑब्जेक्ट भी गिना जाता है यदि यह खिड़की के विमान को काट रहा है या खिड़की के पीछे से इसे पार करने की संभावना है (दिखाया नहीं गया है)।

  2. ऑब्जेक्ट्स विंडो को इंटरसेप्ट कर रहे हैं या इस भौतिकी-चरण (नारंगी) में इसे इंटरसेक्ट करने की संभावना है।

  3. खिड़की के पीछे की वस्तु (नीला)। यदि कोई वस्तु खिड़की के पीछे की तरफ उड़ती है, तो उसे अभी भी समूह तीन के सदस्य के रूप में चिह्नित किया जाता है।

यदि विंडो सिमुलेशन की सीमा पर है, तो समूहन को सरल बनाया जा सकता है।

2. मुख्य कदम:

कुछ अपवादों के साथ भौतिकी की गणना हमेशा की तरह की जाती है:

  • दूसरे समूह की वस्तुएं तीसरे और इसके विपरीत वाले लोगों से कभी नहीं टकराती हैं।

  • विंडो के इनपुट परिवर्तन का उपयोग दूसरे समूह से वस्तुओं पर किया जाता है और परिणामों का मूल्यांकन गंतव्य प्रणाली से सामने वाले के सामने और वस्तुओं को जोड़ने के खिलाफ किया जाता है। परिणामी बल को आउटपुट परिवर्तन का उपयोग करके बदल दिया जाता है और मूल ऑब्जेक्ट पर लागू किया जाता है।

(यदि किसी ऑब्जेक्ट को गणना के दौरान मारा जाता है, तो उसे पुन: एकत्रित किया जाना चाहिए!)

3. पोस्ट-चरण:

यदि दूसरे समूह की एक वस्तु ने खिड़की को पार कर लिया है, तो इसे इनपुट परिवर्तन का उपयोग करके गंतव्य सिस्टम में ले जाया जाता है।

अतिरिक्त विचार:

यदि भौतिकी की गणना के बाद परिवर्तन संरक्षित किए जाते हैं, तो उनका उपयोग प्रतिपादन को गति देने और आसान AI गणनाओं के लिए किया जा सकता है। रेंडरिंग प्रक्रिया से क्लिप-प्लेन को हटाने के लिए ग्रुपिंग का उपयोग किया जा सकता है।

इस समाधान का नकारात्मक पक्ष यह है कि खिड़कियों को सीधे भौतिकी-इंजन में जोड़ा जाना है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.