3 ডি পার্লিন শব্দ শব্দটি ভূখণ্ড তৈরি করতে কীভাবে ব্যবহৃত হয়?


20

উচ্চতার মান উত্পন্ন করতে আমি 2 ডি পার্লিন শোন ফাংশনটি ব্যবহার করে আমার মাথাটি গুটিয়ে রাখতে পারি তবে কেন 3 ডি পার্লিন শোর ফাংশন ব্যবহার করা হবে তা আমি বুঝতে পারি না। নচের ব্লগে, http://notch.tumblr.com/post/3746989361/terrain-generation-part-1- এ তিনি মিনক্রাফ্টে ভূখণ্ডের প্রজন্মের জন্য 3 ডি পার্লিন শোর ফাংশন ব্যবহার করার কথা উল্লেখ করেছেন। এটি কীভাবে হবে এবং কেন এটি কার্যকর হবে তা কি কেউ জানেন? আপনি যদি x, y এবং z মানগুলি অতিক্রম করে থাকেন তবে এর দ্বারা বোঝা যায় না যে আপনার ইতিমধ্যে উচ্চতা রয়েছে?

উত্তর:


19

2 ডি পার্লিন শব্দের উচ্চতা মানচিত্রের জন্য ভাল, তবে এই ক্ষেত্রে মনে হয় তিনি উচ্চতার মানচিত্র ব্যবহার করছেন না। পরিবর্তে তার একটি থ্রিডি গ্রিড রয়েছে যেখানে কোনও ঘর খালি থাকতে পারে। এটি গুহাগুলি এবং এ জাতীয় গঠনের অনুমতি দেয়, যেখানে স্থল উচ্চতা প্রদত্ত 2 ডি অবস্থানের জন্য একক মান নয়।


14

"স্থল উচ্চতা" নমুনা দেওয়ার পরিবর্তে, আমি শব্দের মানটিকে "ঘনত্ব" হিসাবে বিবেচনা করেছি, যেখানে 0 এর চেয়ে কম কিছু বায়ু হবে এবং 0 এর চেয়ে বড় বা সমান কিছু স্থল হবে।

সহজ কথায় বলতে গেলে, যেখানে ব্লক হতে পারে সেই জায়গাগুলির জন্য একটি শব্দের ক্রিয়াকলাপটি মূল্যায়ন করা হয় এবং যদি এটি 0 হয় তবে একটি ব্লক স্থাপন করা হয়। জলের স্তর থেকে তার মানকে উচ্চতা যুক্ত করে খাঁজকারীর শব্দের ক্রিয়াটি সঙ্কুচিত হয়, এ কারণেই নিম্ন অঞ্চলগুলি বেশিরভাগই শক্ত (উচ্চতা বৃহত্তর নেতিবাচক, সুতরাং উচ্চতা + নয়েজও নেতিবাচক) এবং উচ্চতর অঞ্চলগুলি বেশিরভাগই খালি থাকে (উচ্চতা বৃহত্তর ধনাত্মক, তাই উচ্চতা + শব্দটিও ইতিবাচক)।

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

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


8

ভূখণ্ডে গুহার নেটওয়ার্ক এবং ওভারহ্যাংগুলি প্রয়োজন হলে 3 ডি শব্দটি বাধ্যতামূলক হয়ে যায়।

ঘনত্বের তথ্য থেকে একটি আইসোফেরাস নিষ্কাশন করতে, 2 সর্বাধিক জনপ্রিয় কৌশল হ'ল মার্চিং কিউবস (এমসি), এবং আরও নতুন ডুয়াল কন্টোরিং (ডিসি)। নির্বাচিত পদ্ধতির উপর নির্ভর করে প্রয়োজনীয় ডেটা স্ট্রাকচারটি আলাদা।

পূর্বে উল্লিখিত হিসাবে, গিসের জিপিইউ জেমস 3 নিবন্ধটি জিপিইউতে এমসি ভূখণ্ডগুলি বোঝার এবং বাস্তবায়নের জন্য খুব শিক্ষণীয় সূচনার পয়েন্ট (নোট করুন যে তাঁর এমসির পদ্ধতি সম্পূর্ণ জিপিইউতে চলে এবং এতে কমপক্ষে এসএম 4 - জিএস-সক্ষম একটি প্রয়োজন) requires

যেহেতু এমসি ভক্সেলগুলিতে ঘনত্বের ডেটা কেবল ভক্সেলের প্রান্তে থাকতে পারে, ক্লাসিক এমসি তীক্ষ্ণ প্রান্ত বৈশিষ্ট্যগুলি সংরক্ষণ না করে ভলিউমটি কনট্যুর করতে পারে। ঘনত্বের তথ্য একটি 3D পয়েন্ট (কিউইএফ মিনিমাইজার) হিসাবে ভক্সেলের অভ্যন্তরে যে কোনও জায়গায় রাখার পাশাপাশি প্রতিটি কোণে চিহ্ন রেখে দেওয়ার কারণে ডিসি এই ত্রুটিটি ভুগছে না।

অন্যদিকে, এমসি স্ব-ছেদযুক্ত মুখগুলিতে ভুগছেন না কারণ সমস্ত উত্পন্ন ত্রিভুজগুলি তাদের অনুরূপ ভক্সেলে আবদ্ধ রয়েছে, অন্যদিকে উত্পন্ন মুখগুলির মধ্যে ছেদগুলি রোধ করতে ডিসিকে অতিরিক্ত গুণাগুণ প্রয়োজন। ডিসি লেখকগণ তাদের অ্যালগোরিদমের একটি উন্নত সংস্করণে এই সমস্যাটিকে সম্বোধন করেছেন।

http://www.cs.wustl.edu/~taoju/research/interfree_paper_final.pdf

http://www.cs.berkeley.edu/~jrs/meshpapers/SchaeferWarren2.pdf

এই সহযোগী স্ব-ছেদগুলি এড়ানোর জন্য উত্তল / অবতল বিশ্লেষণের উপর ভিত্তি করে একটি সম্ভবত পরিষ্কার পরিচ্ছন্ন পদ্ধতির প্রস্তাব দেয়। প্রান্তের দিকনির্দেশকে সংরক্ষণ করতে তিনি আরও ভাল কোয়াড বিভাজন নিয়ম ব্যবহার করেন:

http://www2.mae.cuhk.edu.hk/~cwang/pubs/TRIntersectionFreeDC.pdf

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

বেশিরভাগ জাল নিষ্কাশন কৌশলগুলির একটি সুন্দর এবং সম্পূর্ণ সমীক্ষা এখানে: http://www.cs.berkeley.edu/~jrs/mesh/

একটি অক্ট্রি / ভক্সেল পদ্ধতির অভ্যন্তরীণভাবে "সিএসজি-বান্ধব", যা একটি ঝরঝরে সম্পূর্ণ "ধ্বংসাত্মক" গেম স্তরের কৌশল পরিকল্পনা করা সহজ করে তোলে, তবে যদি একটি গেমটিতে এই সমস্তটি প্রয়োগ করা প্রয়োজন হয়, তবে অষ্ট্রি গভীরতাও হতাশ হওয়ার প্রয়োজন হবে -dependent।

যদি পুরো স্টাফ মেমরির সাথে ফিট করে বা সঠিকভাবে স্ট্রিম করা হয় তবে ডেটা এও রেন্ডারিং এবং ফিজিক্স / সংঘর্ষের কম্পিউটিংয়ের জন্যও ব্যবহার করা যেতে পারে।


"ভূখণ্ডে গুহার নেটওয়ার্ক এবং ওভারহ্যাংগুলির প্রয়োজন হলে 3 ডি শব্দটি বাধ্যতামূলক হয়ে যায়।" বাধ্যতামূলক? যেমনটি রয়েছে, গুহাগুলি এবং ওভারহ্যাঙ্গগুলি উত্পন্ন করার একমাত্র উপায়? নাঃ। আমি 2 ডি পার্লিন শব্দ থেকে একটি উচ্চতা ম্যাপ উত্পন্ন করছি এবং তারপরে আরও প্রাকৃতিক চেহারার জন্য গুহাগুলি এবং ওভারহ্যাঙ্গগুলি আলাদা পদক্ষেপ হিসাবে খোদাই করছি। যুবা গেম ডেভেলপারদের বলার জন্য এটি বিভ্রান্তিমূলক যে, প্রক্রিয়াগতভাবে উত্পাদিত বিশ্বে গুহা এবং ওভারহ্যাংগুলি উত্পন্ন করার একমাত্র উপায় এটি।
ডোমারিয়াস

5

আমার অনুমান, সেই বিশেষ উদাহরণে, তিনি কোন ধরণের উপাদান: বেডরক, পাথর, ময়লা বা বায়ু নির্ধারণ করতে z মান ব্যবহার করেছিলেন।


-3

মাইনক্রাফ্ট মার্চিং কিউবস অ্যালগরিদম 3 ডি টেরেন তৈরি করতে ব্যবহার করে। আমার এর জন্য রেফারেন্স নেই, দুঃখিত আমি দুঃখিত। পার্লিন নয়েজ ফাংশনটি উল্লেখ করার সময় নচ ঠিক কী কথা বলছিলেন তা আমি নিশ্চিত নই - সম্ভবত মার্চিং কিউবস অ্যালগরিদমের জন্য একটি বীজ। এখানে আরও তথ্য:

আপনি কিউবগুলি মার্চ করতে আগ্রহী হলে একটি দুর্দান্ত জিপিইউ রত্ন নিবন্ধ:


2
মার্চিং কিউবস স্কেলারের ক্ষেত্র থেকে জাল তৈরির জন্য একটি অ্যালগরিদম। তার অর্থ এটির আগে ডেটা থাকা দরকার, তারপরে এটি ডেটা ফিট করার জন্য একটি জাল তৈরি করে। এটি ডেটা বা ভূখণ্ড তৈরির জন্য নয়।
মাইকেলহাউস

-6
for (int x = 0; x < Width) 
{
  for (int y = 0; y < Depth) 
  {
    for (int z = 0; z < Height) 
    {
      if(z < Noise2D(x, y) * Height) 
      {
        Array[x][y][z] = Noise3D(x, y, z)
      } else {
        Array[x][y][z] = 0
      }
    } 
  } 
} 

2
-1; এমনকি আপনি যে স্পষ্টির সাথে এটি যুক্ত করেছেন এটি একটি খুব খারাপ উত্তর, এটি কোড স্নিপেটের উদ্দেশ্য বা ফলাফলের ডেটাগুলির উপর এর সিনেমিক প্রভাবটি পরিষ্কারভাবে ব্যাখ্যা করে না এবং ব্যবহারকারীর আসলে বেশিরভাগ প্রশ্নের সমাধান করে না।

আমি কোড সম্পাদনা করেছি, এখন কীভাবে?
ম্যাক্সিমাম ডিসি

এটি ব্যাখ্যা করে যে ভূখণ্ড তৈরি করতে 3 ডি শব্দটি কীভাবে ব্যবহৃত হয়, এটি আমার মতে সঠিক
ম্যাক্সিমাম ডিসি

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