বেশিরভাগ পার্লিন শব্দের অ্যালগরিদমগুলি আপনাকে কোনও নির্দিষ্ট জায়গায় শব্দটির মানটি এর মতো কিছু দিয়ে পুনরুদ্ধার করতে দেয় noise(x,y,z)
। এটি খণ্ড ভিত্তিতে কোনও অংশে শব্দ উত্পন্ন করা মোটামুটি তুচ্ছ করে তোলে। আপনাকে যা করতে হবে তা হ'ল অবস্থানের পরিবর্তে বিশ্বব্যাপী অবস্থানটি পাস করতে হবে।
for(int i = 0; i < CHUNKMAX_X; i++)
for(int j = 0; j < CHUNKMAX_Y; j++)
for(int k = 0; k < CHUNKMAX_Z; k++)
if(isSolid(perlinNoise.get(chunkPosition.x + i,
chunkPosition.y + j,
chunkPosition.z + k))
thisChunk[i,j,k] = new Voxel(solid);
else
thisChunk[i,j,k] = new Voxel(air);
সুতরাং আপনি দেখতে পাচ্ছেন, আমরা খণ্ডের জন্য ভূখণ্ড তৈরি করছি, শঙ্কার সীমানা দিয়ে পুনরাবৃত্তি করে এবং সেই বৈশ্বিক অবস্থানটি শক্ত কিনা তা পরীক্ষা করে। সম্ভবত আপনি সাধারণত ভূখণ্ড তৈরি করতে একই পদ্ধতি ব্যবহার করছেন।
perlinNoise.get
একটি বৈশ্বিক অবস্থান নেয় এবং তার ঘনত্ব ফেরত দেয়। isSolid
ভক্সেল শক্তির পক্ষে যোগ্যতার জন্য "যথেষ্ট ঘন" কিনা তা দেখার জন্য যেখানে কেবল একটি সহজ পরীক্ষা হবে।
perlinNoise.get
একটি সাধারণ শব্দের অ্যালগরিদমের চেয়েও জটিল হতে পারে। আপনার বিশ্বের ভক্সেলের গভীরতার উপর ভিত্তি করে আপনার চেক থাকতে পারে। উদাহরণস্বরূপ, ভক্সেল যদি আপনি "পরম বেস গ্রাউন্ড লেভেল" স্থির করে থাকেন তার নীচে থাকে তবে এটি পার্লিন ওয়ার্মস অ্যালগরিদমকে ঘনত্ব ফিরিয়ে দিতে ব্যবহার করতে পারে, যদি এটি পরম বেসের উপরে থাকে তবে এটি আপনাকে দিতে একটি সাধারণ ঘনত্বের ফাংশন ব্যবহার করতে পারে আরও বৈচিত্র্যময় অঞ্চল। তবে আমি দুজনের মধ্যে কিছুটা মিশ্রণের পরামর্শ দিচ্ছি।
বিভিন্ন পার্লিন শোর ফাংশনগুলির সম্মিলন হ'ল আপনার সাথে খেলতে হবে এবং দেখুন কী কাজ করে। আপনার পরিবেশ সেটআপ করা সবচেয়ে ভাল যাতে আপনার গেমটি পুনরায় লোড না করে আপনি কিছু মান পরিবর্তন করতে এবং টেরিটের হট-অদলবদল করতে পারেন। শুভ পরীক্ষা নিরীক্ষা।