কীভাবে আমি কীট-স্টাইলের অঞ্চল তৈরি করতে পারি?


48

আমি একটি কীট-স্টাইলযুক্ত গেমের সাথে কাজ করছি এবং পদ্ধতিগতভাবে কিছু অঞ্চল তৈরি করতে চাই। আমি এর আগে পার্লিন শব্দটি ব্যবহার করে প্রচুর ভূখণ্ডের প্রজন্ম তৈরি করেছি এবং এই গেমটির জন্য আমি এটি ব্যবহার শুরু করেছি started এটির সাথে একমাত্র সমস্যাটি হ'ল এটি খুব সহজ এবং বিরক্তিকর, আমাকে কিছু টিলা দেয় তবে আমি যে জটিলতা চাই তা নয়। আমি গুহা এবং ঝুলন্ত পর্বতগুলির মতো বৈশিষ্ট্য পেতে চাই এবং ভাসমান দ্বীপপুঞ্জ এবং এ জাতীয় কিছু মনে করি না। এরকম কিছু, তবে ক্রেজিয়ারও ঠিক আছে:

এখানে চিত্র বর্ণনা লিখুন

আমি প্রথমে ক্লাসিক পার্লিন শব্দটি ব্যবহার করে ভূখণ্ড তৈরির কথা চিন্তা করেছি, তারপরে গুহা তৈরির জন্য কেবল অংশগুলি সরিয়ে ফেলছি এবং কী নয়, তবে those অংশগুলি অপসারণে গাইড করতে আমার সমস্যা হচ্ছে। এরকম ভূখণ্ড তৈরির কোনও বিকল্প আছে কি?


লালটি কি গুহাগুলি উপস্থাপন করে বা এটি কেবল ভূখণ্ডের একাংশ?
রিচার্ড মার্স্কেল - ড্র্যাকির

এটি ভূখণ্ডের অংশ। আমি কেবল গুগল সেই চিত্রটিই, আমি যা করতে চাই তার নিকটতম ছিল। "গুহা" অংশটি ডানদিকে সেই ছোট গর্ত হতে পারে, যদি এটি বাম দিকে বাম দিকে আরও চালিয়ে দেওয়া হয়।
Xeon06

@ ড্রাকির, ছবিটি সম্পাদনা করেছেন।
Xeon06

সম্পর্কিত: গেমদেব.স্ট্যাকেক্সেঞ্জারভিউ / প্রশ্নগুলি / 2167২১ / ((তবে এটি কোনও সদৃশ নয় যা প্রজন্মের অ্যালগরিদমের বিপরীতে বাস্তবায়নের উপর ফোকাস বলে মনে হচ্ছে)।
জোশ

পছন্দ করেছেন আমি ধ্বংসের সাথে ভাল। এটি আমার সাথে প্রজন্মের সমস্যা।
Xeon06

উত্তর:


51

আমি আপনাকে 2 ডি পার্লিন-শব্দ দিয়ে শুরু করার পরামর্শ দেব। এটার মতো কিছু:

পারলিন-গোলমাল

তারপরে চিত্রটিতে একটি প্রান্তিক প্রয়োগ করুন, যাতে আপনি এখানে প্রদর্শিত হিসাবে কয়েকটি বিচ্ছিন্ন দ্বীপ পেতে পারেন:

থ্রেশোল্ডের সাথে পার্লিন গোলমাল

আমি 0.04 এর একটি প্রান্তিকতা বেছে নিয়েছি, প্রান্তিকের উপরে সমস্ত কিছু নীল রঙের হবে। বাকি বাকি কালো। তারপরে, কোনটি "দ্বীপপুঞ্জ" রাখতে হবে এবং কোনটি ফেলে দিতে হবে তা নির্ধারণ করার সময় এসেছে।

চিত্রের বাম থেকে ডানদিকে বিভিন্ন উচ্চতায় চালানো এবং একটি সম্ভাব্য সম্ভাবনা দেখিয়ে ছেদ করা "দ্বীপপুঞ্জ" নির্বাচন করা একটি সম্ভাব্য পন্থা। উদাহরণস্বরূপ চিত্রটিতে, সর্বনিম্ন রেখার সম্ভাব্যতা রয়েছে 100%, সুতরাং এটি যে দ্বীপটি অতিক্রম করবে তা নির্বাচিত হবে (পূর্ণ সাদা)। দ্বিতীয় লাইনের সম্ভাব্যতা 50% এবং শীর্ষতম লাইনে 10% সম্ভাবনা রয়েছে।

একবার আপনি আপনার দ্বীপপুঞ্জ যে ভালো চিহ্নিত করেছেন, আপনি একটি প্রয়োগের দ্বারা মধ্যে মধ্যে ফাঁক বন্ধ করে দিতে পারেন অঙ্গসংস্থান অপারেশন ( উম্মুক্ত করে দেইনি )

বিচ্ছিন্ন দ্বীপ

এবং একটি সম্ভাব্য আড়াআড়ি আছে।

শব্দটির "গ্রানুলারিটি" নির্ধারণ করতে চলেছে যে আপনার বিশ্বের বিবরণগুলি কতটা ছোট হতে চলেছে। সুতরাং এই মানগুলি নিয়ে পরীক্ষা করা সম্ভবত সেরা।

এছাড়াও কোথায় এবং কী কারণে আপনার "নির্বাচিত-রেখাগুলি" অবস্থানের সম্ভাবনা রয়েছে, ফলাফলটি সম্পূর্ণ ভিন্ন হতে চলেছে। যদি আপনার দ্বীপের "নির্বাচন" করার সম্ভাবনা বেশি থাকে সেই চিত্রের শীর্ষের নিকটে একটি লাইন থাকে, তবে আপনি কিছু ধরণের গুহা-ল্যান্ডস্কেপ ইত্যাদি তৈরি করতে পারেন etc.


দুর্দান্ত বিস্তারিত ও চিত্রিত উত্তরের জন্য অনেক ধন্যবাদ! আমি ঠিক তাই করতে যাচ্ছি।
Xeon06

এই স্তরের বিশদ এবং এর সাথে এই জাতীয় পার্লিন শোরগোলের প্রজন্ম সম্পর্কে আপনার কোনও টিপস রয়েছে? আমি পুরো সন্ধ্যা চেষ্টা করেছিলাম এবং কোথাও পাচ্ছি না।
Xeon06

@ Xeon06 আমি কেবল ফ্ল্যাশ দ্বারা সরবরাহিত পার্লিন শব্দ শব্দ ব্যবহার করছিলাম । পরামিতি ছিল 24জন্য baseXএবং baseY, 1 অষ্টক এবং আমি আউটপুট গ্রেস্কেল শব্দ এবং প্রতিবন্ধী "ফ্র্যাক্টাল" থেকে বেছে নেওয়া হয়েছে। আপনি কোন ভাষায় এটি প্রয়োগ করছেন?
বামমজ্যাক

আমি এটি জাভাস্ক্রিপ্ট বাস্তবায়ন করছি। আমি একটি ভাল বাস্তবায়নের জন্য ওয়েবে স্ক্রাউজ করছি যা এক সপ্তাহের জন্য একই রকম ফলাফল দেয় তবে কিছুই খুঁজে পাচ্ছে না।
Xeon06

আমি আরেকটি প্রশ্ন পারলিন কোলাহল অংশ সংক্রান্ত করেছি gamedev.stackexchange.com/questions/20880/fast-noise-generation
Xeon06

6

আমি একটি পার্লিন শব্দ দিয়ে শুরু করব, সাবধানে ফিল্টার করা। আপনি ভাসমান দ্বীপগুলির সাথে প্রশ্নের সাথে সংযুক্ত ছবিটির মতো কিছু দিয়ে শেষ করবেন। জাস্ট ভাসমান দ্বীপগুলি সরিয়ে ফেলুন তারপরে এখানে আলোচিতদের মতো একটি গণনা অ্যালগরিদম ব্যবহার করে


ওহ আমি এখন এটি পেয়েছি মনে হয়। আমার 2 ডি পার্লিন শব্দটি ব্যবহার করা দরকার, 1 ডি নয়। আপনি কি ফিল্টারিং উপর বিস্তারিত বলতে পারেন?
Xeon06

2
আমি এখনই ছবি পোস্ট করতে পারছি না, তবে আমি কেবল একটি সাধারণ প্রান্তিক ফিল্টার about-লা সম্পর্কে কথা বলছি যদি (০.০> পিক্সেলভ্যালু> ০.০) কিপ আইট ();। 'সাবধানে' বিটটি 0.3 এবং 0.5 টি ঠিক পেয়ে চলেছে। আপনার উপরে একটি রৈখিক (বা না) গ্রেডিয়েন্টও থাকতে পারে, শীর্ষে শীর্ষে আলফা দিয়ে শুরু করে ধীরে ধীরে নীচে 0 পৌঁছে যাবেন, সুতরাং আপনার কাছে একটি আকাশের জন্য জায়গা রয়েছে এবং জমিটি বেশিরভাগ ক্ষেত্রে পূর্ণ is আশা করি এইটি কাজ করবে.
রাভাচল

@ রাভাচল আপনি যদি কোনও ছবিতে কোনও লিঙ্ক পোস্ট করেন তবে আরও সরব কোনও ব্যক্তি আপনার পোস্টে এটি যুক্ত করতে পারেন।
রিচার্ড মার্স্কেল - ড্র্যাকির

"যদি (০.০> পিক্সেলভ্যালু> ০.০)", আমি অনুমান করি এটি কেবল একটি টাইপো, তবে আপনার পোস্টে স্ববিরোধী জিনিসগুলি রাখা বিভ্রান্তিকর হতে পারে ... আপনি কি এটি সম্পাদনা করতে পারেন?
jcora

আমি কোনও মন্তব্য সম্পাদনা করতে পারে বলে মনে হচ্ছে না। স্পষ্টতই, "যদি (0.3 <পিক্সেলভ্যালু <0.5)" পড়ুন।
রাভাচল

4

আমি আসলে এটি বামজ্যাক চমৎকার উত্তর থেকে শুরু করে বাস্তবায়ন করেছি।

আমি যে পদক্ষেপগুলি দিয়ে শেষ করেছি তা এখানে:

  1. পার্লিন শব্দ নিয়ে একটি চিত্র তৈরি করুন Gene
  2. আপনি যেখানে কিছুটা ভূখণ্ড চান সেখানে বন্যারফিল
  3. খুব ছোট ছোট ফাঁকাগুলি মুছে ফেলতে ডেলাশন + ক্ষয়
  4. ভূখণ্ডের অভ্যন্তরে অবশিষ্ট পটভূমি অঞ্চলগুলি সরান
  5. মসৃণায়ন

এবং এটি ফলাফলের একটি উদাহরণ: উত্পন্ন ভূখণ্ডের উদাহরণ

আমি এখানে পুরো প্রক্রিয়া সম্পর্কে একটি বিশদ নিবন্ধ লিখেছিলাম এবং কোডটি (জাভাস্ক্রিপ্ট) মুক্ত উত্স, আপনি ব্যবহারের জন্য প্রস্তুত কিছু চান কিনা তা পরীক্ষা করে দেখুন ;)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.