3D पेरलिन शोर के साथ उत्पन्न होने पर फ्लोटिंग इलाके को कैसे हटाया जाए?


10

मैं वर्तमान में 3 डी पेरलिन शोर का उपयोग मार्चिंग क्यूब्स के साथ संयोजन में यादृच्छिक इलाके उत्पन्न करने के लिए कर रहा हूं।

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

मुझे कुछ याद आ रहा है, लेकिन 3 डी पेर्लिन शोर के साथ मार्चिंग क्यूब्स का उपयोग करके, मैं नियमित रूप से इलाके के अस्थायी टुकड़े प्राप्त करता हूं।

किसी भी विचार पर कि मैं इसे कैसे ठीक कर सकता हूं या यदि मैं वर्णन कर रहा हूं तो परिणाम प्राप्त करने के लिए अन्य शोर कार्यों का उपयोग कर सकता हूं? मुझे पहाड़ियाँ / घाटियाँ / पहाड़ / झीलें / आदि चाहिए। नक्शे के बाकी हिस्सों से अलग किए गए अस्थायी बिट्स की कोई आवश्यकता नहीं है। मेरा मानना ​​है कि यह Minecraft के लिए एक समान मुद्दा है जब यह इलाके है कि बस पीढ़ी पर कभी-कभी आकाश में चारों ओर तैरता है।

किसी भी सहायता के लिए धन्यवाद, पौराणिक कथाओं

जवाबों:


9

संभवतः अस्थायी इलाके से पूरी तरह से छुटकारा पाने का एकमात्र तरीका कनेक्टिविटी के लिए परीक्षण करना है। आपके नक्शे के आकार के आधार पर, यह एक विकल्प हो सकता है। आप बेस पॉइंट चुनकर ऐसा कर सकते हैं, जैसे आपकी दुनिया के बहुत नीचे। फिर सुनिश्चित करें कि आपके सभी स्वर हैं:

  1. आधार से जुड़ा।
  2. एक स्वर से जुड़ा हुआ है जो आधार से जुड़ा हुआ है।

संभवतया एक ज्ञात जुड़े बिंदु पर शुरू करना (अपनी दुनिया के नीचे की तरह) फिर जुड़े हुए स्वरों की चौड़ाई का पहला ट्रावेल करना बहुत अच्छा काम करेगा। सुनिश्चित करें कि आप जाते समय स्वरों को ध्वजांकित कर रहे हैं। आप इसे प्रति-चंक कर सकते हैं।

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

  • ग्रेडिएंट पूर्वाग्रह : आप एक ग्रेडिएंट के साथ ठोस स्वरों के प्लेसमेंट को पूर्वाग्रह कर सकते हैं। "ग्राउंड लेवल" से ऊपर होने के बाद ग्रेडिएंट फ़ंक्शन कुछ तेज़ी से गिर जाएगा। यह लेख एक ग्रेडिएंट का उपयोग करने के बारे में बात करता है और इसमें कुछ अन्य स्वच्छ सुझाव हैं।

  • ऊंचाई का नक्शा शोर : आप इसके बजाय ऊँचाई के नक्शे के रूप में शोर उत्पन्न कर सकते हैं। यह ओवरहैंग और गुफाओं को हटा देगा, लेकिन आप एक अतिरिक्त घटिया शोर परत के साथ उन लोगों को अनुकरण कर सकते हैं।

  • कम शोर वाला शोर : अपने इलाके के शोर में कम ऑक्टेव्स का उपयोग करें और ओवरहैंग्स और गुफाओं को प्राप्त करने के लिए घटिया शोर उत्पन्न करें।


यदि यह वहाँ से एक overhang है, तो इलाके केवल निकटवर्ती क्षेत्र के माध्यम से जुड़ा हो सकता है।
लॉरेन Pechtel

@ लॉरेन: हालांकि यह पूरी तरह से ठीक है। जब तक इंजन आपको फुल इंडेक्स द्वारा चंक्स को संबोधित करने देता है, यह बिना किसी समस्या के काम करेगा।
फिल

@ लॉरेनपेकटेल मैं कहता हूं कि आप इसे चंक के अनुसार कर सकते हैं, लेकिन जब आप एक चंक के किनारे पर होते हैं, तो आपको आसन्न विखंडन की जांच करनी होगी। यह नया इलाक़ा बनाते समय एक मुद्दा बन सकता है और आसन्न हिस्सा उत्पन्न नहीं कर सकता है। जब आप इस स्थिति में आते हैं, जहां आपके पास संभावित अस्थायी इलाके होते हैं, तो आप या तो आसन्न चंक उत्पन्न कर सकते हैं, या शोर एल्गोरिथ्म का उपयोग तब तक स्वरों को पार्स करने के लिए कर सकते हैं जब तक कि आप "बेडरॉक" या वर्तमान चंक के लिए एक ज्ञात कनेक्शन नहीं पाते।
MichaelHouse

0

इसका उत्तर देने में बहुत देर हो सकती है, लेकिन मैं अब इस उल्टी इलाके की पीढ़ी की बात कर रहा था, जिसमें पेरलिन शोर था और मुझे उन तैरते हुए टुकड़ों के बिना इलाका बनाने का रास्ता मिल गया। मुझे लगता है कि यह आपकी मदद कर सकता है। इसलिए, इलाक़ा बनाने के लिए मैं पहली बार एक ऊँचाई उत्पन्न करता हूँ, जब मैं उस ऊँचाई से पिक्सेल पढ़ता हूँ। अब दिलचस्प हिस्सा आता है, मैंने उस ऊँचाई पर प्रत्येक पिक्सेल का "ब्राइटनेस" (वास्तव में ग्रेस्केल) मान पढ़ा है और जो मुझे मानचित्र के उस विशेष भाग के लिए ऊँचाई देता है, फिर इलाक़ा बनाने के लिए मुझे लगता है कि यह ऊँचाई है मेरा इलाका ऊपर से देखा जाता है, इसलिए यदि उस ऊंचाई के नक्शे पर पिक्सेल का ग्रेस्केल मान (मेरे इलाके "मैक्सहाइट" में मैप किया जा रहा है), तो मान लें कि 30, इसका मतलब यह है कि अपने इलाके के उस विशिष्ट बिंदु में मैं केवल 30 अक्षों को y अक्ष में उत्पन्न करूंगा और इससे मुझे कोई अस्थायी भाग नहीं मिलेगा। यदि आप गुफाएँ आदि चाहते हैं, तो आप उन गुफाओं को बनाने के लिए मूल (सतह के नीचे) पर एक और शोर लगा सकते हैं। उम्मीद है इससे आपका काम बनेगा।


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