संकीर्ण-चरण टक्कर का पता लगाने वाले एल्गोरिदम


10

टक्कर का पता लगाने के तीन चरण हैं।

  1. ब्रॉडपेज़ : यह सभी objecs के बीच लूप करता है जो इंटरैक्ट कर सकते हैं, गलत पॉज़िटिव्स की अनुमति है, अगर यह लूप को गति देगा।

  2. संकीर्णताएं : यह निर्धारित करती हैं कि क्या वे टकराते हैं, और कभी-कभी, कैसे, कोई गलत सकारात्मक नहीं

  3. संकल्प : टकराव का समाधान करता है।

मैं जो सवाल पूछ रहा हूं, वह नैरोफेज के बारे में है। कई एल्गोरिदम हैं, जटिलता और सटीकता में भिन्न हैं।

  1. हिटबॉक्स चौराहा : यह एक ए- पोस्टवर्दी एल्गोरिथ्म है, जिसमें सबसे कम जटिलता है, लेकिन यह बहुत सटीक नहीं है,

  2. रंग चौराहा : प्रत्येक पिक्सेल के लिए हिटबॉक्स चौराहा, ए-पोस्टवर्दी, पिक्सेल-पूर्ण, समय के संबंध में सटीक नहीं, उच्चतरता

  3. पृथक्करण अक्ष प्रमेय : इसका उपयोग अधिक बार किया जाता है, त्रिकोणों के लिए सटीक, हालांकि, एक पोस्टीरियर, क्योंकि यह किनारे को नहीं ढूंढ सकता है, जब खाते में अंतिम फ्रेम ले रहा है, तो यह अधिक स्थिर है

  4. रैखिक रीकास्टिंग : एक-प्राथमिक एल्गोरिथ्म, अर्ध-यथार्थवादी दिखने वाले भौतिकी के लिए उपयोगी, प्रतिच्छेदन बिंदु को ढूँढता है, यहां तक ​​कि सैट से भी अधिक सटीक, लेकिन अधिक जटिलता के साथ

  5. स्पलाइन इंटरपोलेशन : ए-प्रायरी, रैखिक किरणों की तुलना में अधिक सटीक, यहां तक ​​कि अधिक प्रतिरूपता भी।

शायद कई और भी हैं जिनके बारे में मैं भूल गया हूं। सवाल यह है कि सैट का उपयोग करना कब बेहतर है, कब किरणें, कब बिखरना, और क्या कुछ बेहतर है।

जवाबों:


6

दो जो आपको याद आ रहे हैं जो तुरंत मेरे लिए खड़े हैं, वे हैं GJK और MPR।

GJK दो उत्तल बहुभुज का निकटतम बिंदु खोजने के लिए एक एल्गोरिथ्म है। थोड़े से अतिरिक्त काम के साथ आप इसका उपयोग ऑब्जेक्ट्स को इंटरसेक्ट करने के लिए घटना बिंदुओं को खोजने के लिए कर सकते हैं, और इसलिए एक टकराव की कई गुना गणना करें। यह बहुभुज क्लिपिंग के माध्यम से किया जाता है, जैसे कि सैट का उपयोग करके, लेकिन जीजेके आपको कुछ कदम बचाता है (क्योंकि आपके पास पहले से ही निकटतम बिंदु हैं)।

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

MPR खेलों के लिए अधिक लोकप्रिय है। यह बहुत ही कुशल, संख्यात्मक रूप से स्थिर और लागू करने में आसान है।

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

देख:


3

मैं कहना चाहता था, इसके अलग एक्सिस टेस्ट , प्रमेय नहीं।

आप गैर-चलती बहुभुज (2D) पर SAT का उपयोग करेंगे, हालांकि आप इसे सापेक्ष रैखिक गति के साथ सामना करने के लिए बढ़ा सकते हैं।

http://elancev.name/oliver/2D%20polygon.htm#tut3

2 डी में जीजेके का उपयोग न करें, मैंने पाया कि वास्तव में धीमी गति से सैट के लिए मजबूर किया गया था।

एक अन्य तकनीक जो आप उपयोग कर सकते हैं, वह है मिंकोव्स्की डिफरेंस, जो एक ऑब्जेक्ट को एक बिंदु तक सिकोड़ता है और दूसरे को पहले के आकार से बढ़ता है। फिर आप उस बिंदु के खिलाफ संयुक्त वस्तु का परीक्षण करते हैं जो बहुत आसान है - यह आपको प्रवेश दूरी और सामान्य देता है। मुझे लगता है कि यह उपकरण नई टक्कर का पता लगाने की समस्याओं के लिए वैचारिक रूप से बहुत उपयोगी है; सैट की तुलना में कल्पना करना आसान है।

पॉलीगोन (और पॉलीहेड्रोन) को घुमाने और घुमाने के लिए आप संपर्क के सटीक समय और बिंदु को खोजने के लिए कंजर्वेटिव एडवांसमेंट का उपयोग कर सकते हैं।

http://www.continuousphysics.com/BulletContinuousCollisionDetection.pdf

आप इस ब्लॉग पोस्ट में इन तकनीकों के बारे में अधिक पढ़ सकते हैं जिन्हें मैंने कुछ समय पहले लिखा था:

http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/

उम्मीद है की वो मदद करदे!

चीयर्स, पॉल।


2
अलग करने वाली अक्ष प्रमेय: एक अक्ष मौजूद है जिसके साथ दो उत्तल वस्तुओं का अनुमान है यदि वस्तुएं तिरस्कृत हैं। एक अलग अक्ष परीक्षण: अभ्यास में उपर्युक्त प्रमेय डाल, मुझे लगता है।
एरिक

0

यह वास्तव में आपके खेल के प्रकार पर निर्भर करता है। ऊपर दिए गए प्रत्येक तरीके का अपना व्यापार है।

हालांकि, SAT सामान्य भौतिकी परिवादियों, एक्स के लिए मेरे अनुभव में बहुत मानक है। Box2D इसे बड़े पैमाने पर उपयोग करता है (एंग्री बर्ड्स, और कई अन्य गेम Box2D का उपयोग करते हैं)।

एसएटी या हिटबॉक्स चौराहे के साथ मिश्रित रंग चौराहे की विविधताएं अच्छे परिणाम के साथ सोनिक, मेगामन जैसे खेलों में उपयोग की जाती हैं।

मैं हालांकि # 4 और # 5 के बारे में ज्यादा नहीं जानता।

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