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