2008-08-27 14 views
13

आपकी राय में 2 डी पर्यावरण में टकराव का पता लगाने के लिए उपयोग करने के लिए एल्गोरिदम या तकनीकों का वर्णन करने वाले सर्वोत्तम संसाधन (पुस्तकें या वेब पेज) क्या हैं?तकनीकों के संसाधन 2 डी में टकराव का पता लगाने के लिए उपयोग करते हैं?

मैं अधिक परिष्कृत और कुशल गेम बनाने के लिए अलग-अलग तकनीकों को सीखने के लिए उत्सुक हूं।

उत्तर

2

व्यक्तिगत रूप से, मुझे Paul Bourke का काम पसंद है।

इसके अलावा, पॉल नेटटल इस विषय पर लिखते थे। उनके पास एक पूर्ण 3 डी टक्कर पहचान पुस्तकालय है, लेकिन आप ऐसे पुस्तकालयों के पीछे विचारों में अधिक रुचि ले सकते हैं (जो कि 2 डी पर लागू होते हैं)। इसके लिए, General Collision Detection for Games Using Ellipsoids देखें।

+0

पॉल बोर्के का काम ऑफलाइन लगता है। वेबैक मशीन पर उपलब्ध नवीनतम संस्करण दिनांकित है [22 जुलाई 2012] (https://web.archive.org/web/20120722023704/http://local.wasp.uwa.edu.au/~pbourke/geometry/) । –

0

यदि आपकी ऑब्जेक्ट्स 2 डी स्पेस में पॉइंट के रूप में दर्शाए जाते हैं तो आप यह निर्धारित करने के लिए लाइन चौराहे का उपयोग कर सकते हैं कि दो ऑब्जेक्ट्स टकराए हैं या नहीं। आप यह जांचने के लिए समान तर्क का उपयोग कर सकते हैं कि कोई ऑब्जेक्ट किसी अन्य ऑब्जेक्ट के अंदर है या नहीं और इस प्रकार वे टकरा चुके हैं, उनकी कोई भी लाइन वर्तमान में अंतर नहीं कर रही है)। math to do this काफी सरल है, और मूल ज्यामिति पर किसी भी पाठ्यपुस्तक द्वारा कवर किया जाना चाहिए। यह पता लगाना कि किसी ऑब्जेक्ट के माध्यम से ऑब्जेक्ट पूरी तरह से पारित हो गया है, हालांकि थोड़ा और मुश्किल हो सकता है।

2

मेटनेट सॉफ्टवेयर ने some relevant tutorials प्रकाशित किया है। मेटनेट N (फ्लैश-आधारित, विंडोज़, मैक, लिनक्स के लिए) और N+ (एक्स 360, डीएस और पीएसपी के लिए) विकसित करता है।

1

Christer Ericson (आईएसबीएन: 1-55860-732-3) द्वारा 'रीयल-टाइम टकराव का पता लगाने' पुस्तक हाल ही में (2005) है और व्यापक रूप से प्रशंसित पुस्तक है जो आपको कुछ अच्छे उत्तर देनी चाहिए।

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

चर्चा के लिए आगे इस तरह लाइनों, त्रिकोण, क्षेत्रों, बहुभुज, विमानों के रूप में पुरातन के विभिन्न संयोजनों, के बीच टकराव का पता लगाने के लिए कई एल्गोरिदम, बाउंडिंग मात्रा आदि

महत्व के

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

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

13

टक्कर पहचान अक्सर दो चरण प्रक्रिया होती है।कुछ प्रकार के "व्यापक चरण" एल्गोरिदम को निर्धारित करने के लिए कि क्या दो ऑब्जेक्ट्स को ओवरलैप करने का मौका भी है (एन^2 तुलनाओं से बचने की कोशिश करने के लिए) के बाद "संकीर्ण चरण" टकराव का पता लगाने एल्गोरिदम, जो आपके आवेदन की ज्यामिति आवश्यकताओं पर आधारित है ।

Sweep and Prune एक अच्छी तरह से स्थापित कुशल व्यापक चरण एल्गोरिथ्म अपेक्षाकृत शारीरिक आंदोलन (चीजें हैं जो पागल तेजी से ले जाने या एकदम अलग आकार है के दौर से गुजर वस्तुओं के लिए (वेरिएंट कि या अपने आवेदन के अनुरूप नहीं हो सकता है के एक मुट्ठी भर के साथ) है और बाउंडिंग क्षेत्रों बना सकता है यह अनुपयुक्त)। Bullet लाइब्रेरी में संदर्भ के लिए 3 डी कार्यान्वयन है।

संकीर्ण चरण टक्कर अक्सर "CircleIntersectCircle" के रूप में सरल हो सकती है। फिर बुलेट पुस्तकालयों में अच्छे संदर्भ कार्यान्वयन होते हैं। 3 डी भूमि में जब मनमानी वस्तुओं के लिए अधिक सटीक पहचान की आवश्यकता होती है, GJK फसल की वर्तमान क्रीम में से एक है - मेरे ज्ञान में कुछ भी इसे 2 डी तक अनुकूलित करने से रोक नहीं सकता है (लेकिन यह आपके सभी किनारों को मजबूर करने से केवल धीमी गति से समाप्त हो सकता है;)

अंत में, टकराव का पता लगाने के बाद, आपको अक्सर टकराव प्रतिक्रिया की आवश्यकता होती है। Box 2d एक भौतिक प्रतिक्रिया समाधान के लिए एक अच्छा प्रारंभिक बिंदु है।

संबंधित मुद्दे