কার্যনির্বাহী প্ল্যানেটস, হাইটম্যাপস এবং টেক্সচারগুলি


19

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

আমি বেশিরভাগ ফ্র্যাক্টাল হাইটম্যাপ তৈরির কৌশলগুলির সাথে পরিচিত এবং ইতিমধ্যে মিডপয়েন্ট ডিসপ্লেসমেন্টের নিজস্ব সংস্করণটি প্রয়োগ করেছি (আমি জানি এই ক্ষেত্রে এটি কার্যকর নয়)।

আমার প্রশ্ন হ'ল উচ্চতর মানচিত্রটি প্রক্রিয়াগতভাবে উত্পন্ন করার সর্বোত্তম উপায়। আমি libnoise যা আমাকে tilable heightmaps / টেক্সচার করতে পারবেন দিকে তাকিয়ে আছে, কিন্তু যতদূর দেখতে পাচ্ছি আমি নেট জেনারেট করতে হবে এই

টাইলিং সুস্পষ্ট ছেড়ে।

কেউ কি আমাকে নিতে সবচেয়ে ভাল পথে পরামর্শ দিতে পারে?

যে কোন সম্ভরণ বেশ সমাদৃত হবে।

উত্তর:


18

প্রথমত, আমি নিশ্চিত নই যে আপনি কেন উচ্চতার মানচিত্রটি প্রয়োগ করতে চান (যেমন জ্যামিতি স্থানচ্যুতি) যদি লোকেরা অবতরণ করতে না পারে, তবে এটি সাধারণ মানচিত্র বা কোনও কিছুর পক্ষে আরও কার্যকর বলে মনে হচ্ছে।

যা বলেছে, আপনি যা চান তা হ'ল একটি স্বেচ্ছাসেবী (x, y, z)থেকে একটি (u, v)স্থানাঙ্কে রূপান্তর করা , যা তুচ্ছ। কোনও কিউব্যাপের প্রয়োজন নেই।

বিকল্প পাঠ

বিকল্প পাঠ

  1. প্রতিটি (u, v)টেক্সেলের একটি উচ্চতা (উচ্চতা ম্যাপ RGB = height) এবং একটি অবস্থান রয়েছে (x, y, z) = pos
  2. অবস্থানটি সন্ধান করুন এবং সাধারণকরণ করুন NORMAL(x, y, z) = N,।
  3. নতুন ভার্টেক্স = pos+N*height

এটি উচ্চতর পরীক্ষার সাথে আরও ভাল কাজ করবে। libnoiseআপনার উচ্চতা ম্যাপের জন্য সঠিক গোলাকার ম্যাপিংও ব্যবহার করুন, যা দেখতে এর মতো কিছু (তবে কালো এবং সাদা) দেখাবে:

বিকল্প পাঠ


2

আমি নিজেই এটি চেষ্টা করে দেখিনি, তবে গোলাকার ল্যান্ডস্কেপগুলি উত্সর্গ করার জন্য এটি খুব আকর্ষণীয় পদ্ধতির মতো দেখাচ্ছে। http://freespace.virgin.net/hugo.elias/models/m_landsp.htm


আমি এই পদ্ধতির জন্য খুবই আনন্দদায়ক পাওয়া github.com/williame/GlestNG
উইল

1

মিডপয়েন্টে স্থানচ্যুতি উচ্চতার ম্যাপিং শুরু করার জন্য একটি ভাল জায়গা। ওপি, আপনি কেন মনে করেন না?

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

আমি যদি ওপি থাকি তবে আমি প্রথমে বৃহত আকারের গ্রহের জ্যামিতিটি ভুলে যাতাম। আমি একটি কিউব্যাপ তৈরি করব যেখানে প্রতিটি মুখ 2 ** এন + 1 পিক্সেল (2,3,5,9,17,33 ...) এবং প্রতিটি টেক্সেল একটি উচ্চতা এনকোড [0..N) যেখানে 0 এর উচ্চতা হয় প্রত্যাশিত সর্বনিম্ন পরিখা এবং এন গ্রহটির প্রত্যাশিত সর্বোচ্চ পর্বতের উচ্চতা।

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

আমি যখন প্রান্তগুলির মিডপয়েন্টগুলির জন্য পুনরাবৃত্তভাবে ফ্র্যাক্টাল উচ্চতা উত্পন্ন করি, তখন আমি মুখের প্রান্তের শীর্ষগুলি অন্য অংশে ভাগ করে নেওয়ার বিষয়টি নিশ্চিত করব।

একবার হয়ে গেলে আমার কাছে একটি ঘনকামচিত্র রয়েছে যেখানে সমস্ত প্রান্তের টেক্সেলগুলি দ্বিগুণ হয়ে গেছে এবং সমস্ত কোণার টেক্সেলগুলি তিনগুণ হয়ে গেছে। এটিকে কোনও সাধারণ মানচিত্রে রূপান্তরিত করার দরকার নেই - আমি রানটাইমে হাইটম্যাপ থেকে সরাসরি নরমালগুলি রেন্ডার করতে মর্টেন মিক্কেলসেনের কাগজে আলগোরিদিমটি ব্যবহার করব ।

রানটাইমের সময় আমি সম্ভবত একটি কোয়াড রেন্ডার করব যা গ্রহের প্রক্ষেপণটিকে পর্দায় coversেকে দেয় এবং আমি গ্রহটি কোথায় আঘাত করলাম কিনা তা জানতে পিক্সেল শেডারে একটি রশ্মির গোলক ছেদ পরীক্ষা করান। নিশ্চিতভাবে বীট একটি উচ্চ-পরীক্ষামূলক গোলক মডেলকে ছড়িয়ে দিয়েছিল এবং খুব সুন্দর মসৃণ প্রান্ত পায়।


1

পিক্সেলের পরম দ্রাঘিমাংশ দ্বারা স্কেল করা সর্বাধিক স্থানচ্যুতি সহ মিডপয়েন্টে স্থানচ্যুত শব্দ প্যারামিটার হিসাবে উচ্চতা, opeালু এবং সূর্যের আলো বা দ্রাঘিমাংশ সহ রঙিন টেবিলগুলি গ্রহটিকে স্বয়ংক্রিয়ভাবে ছায়াযুক্ত করতে ব্যবহার করা যেতে পারে।

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