2011-10-18 37 views
5

मैं एक गेम में टकराव का पता लगाने के लिए क्वाड्रिस का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे यकीन नहीं है कि अलग-अलग quads के बीच चल रहे ऑब्जेक्ट्स को कैसे संभालना है?क्वाड्रिस का उपयोग करते समय आप quads के बीच चलती वस्तुओं को कैसे संभालेंगे?

एकमात्र तरीका मैं इसके बारे में सोच सकता हूं, प्रत्येक फ्रेम को पूरे पेड़ को साफ़ करके, और उसके बाद सब कुछ वापस जोड़कर, लेकिन ऐसा लगता है कि सीपीयू गहन और बहुत कुशल नहीं हो सकता है। क्या आप प्रत्येक फ्रेम को प्रत्येक फ्रेम को यह देखने के लिए जांचते हैं कि क्या यह वर्तमान क्वाड की सीमा से बाहर हो गया है, और यदि ऐसा है तो इसे हटा दें और इसे पढ़ें? ऐसा लगता है कि यह बहुत अक्षम हो सकता है क्योंकि आप प्रत्येक फ्रेम पर हर चलती वस्तु पर टक्कर जांच कर रहे होंगे।

इसके अलावा, क्वाड्रिस के संबंध में, लेकिन उनमें चारों ओर घूमने वाली वस्तुओं से असंबंधित, आप एक ही ट्रैक्टर में एकाधिक ऑब्जेक्ट्स को कैसे प्रबंधित करते हैं? जिन साइटों पर मैंने उनके बारे में पढ़ा है, वे कहते हैं कि आपके पास केवल एक, शायद दो, एक ट्रैक्टर में वस्तुएं होनी चाहिए, और यदि आप इससे अधिक प्राप्त करते हैं तो उन्हें पेड़ में दबाएं। क्या होगा यदि आपके पास this जैसी स्थिति थी? आपके पास तीन सर्किल हैं और वे सभी नीचे के स्तर के किनारों पर हैं, इसलिए वे आगे नहीं जा सकते हैं, लेकिन एक ही स्तर पर तीनों हैं, जो लोग कहते हैं कि आपके पास नहीं होना चाहिए।

+0

आप क्वाड पेड़ का उपयोग किस प्रकार करते हैं? यदि आप टकराव का पता लगाने में उनका उपयोग करना चाहते हैं, तो इसके लिए स्वीप-एंड-प्रो्यून एल्गोरिदम बेहतर होगा। –

उत्तर

1

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

आपके दूसरे प्रश्न पर: मुझे नहीं पता कि अन्य लोग क्वाड्रिस कैसे लागू करते हैं, लेकिन मैं ऑब्जेक्ट्स को एक से अधिक क्वाड्री पर कब्जा करने की इजाजत देता हूं, ठीक उसी कारण से आपने अपने आरेख में दिया है (जब कोई ऑब्जेक्ट सीमा को जोड़ता है) । इसलिए किसी ऑब्जेक्ट में "वर्तमान क्वाड" की बजाय "quads की वर्तमान सूची" होती है।

0

हटाने/पुनः जोड़ने को पेड़ से आइटम को हटाने के बजाय क्वाड पेड़ को ऊपर ले जाकर अनुकूलित किया जा सकता है और फिर फिर से जोड़ना, यानी "पैरेंट" ट्रैक्टर पर जाएं, और उसके बाद "पैरेंट" जोड़ें यह - अगर यह "पैरेंट" में फिट नहीं है, तो

आपकी दूसरी चिंता के लिए, आपको कुछ लचीलापन की आवश्यकता होगी - यदि सभी 3 किनारे पर हैं, तो आप कर सकते हैं उन्हें कम नहीं करें - लेकिन यह एक किनारे के मामले (पन क्षमा करें) होना चाहिए।

+0

प्रश्न 2 के लिए आप छोटे quads बना सकते हैं, I.e। अधिक आयाम जोड़ें। – Bytemain

+0

छोटे क्वाड एक ही किनारों को बड़े लोगों के रूप में साझा करेंगे - इसलिए यदि आप अधिक जोड़ना चाहते थे, क्योंकि मंडल पहले से ही किनारे पर हैं, तो वे किनारे पर बने रहेंगे – user2813274

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

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