ভক্সেল কিউব ল্যান্ডস্কেপের জন্য একটি জাল অনুকূলকরণ


12

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

এই জালগুলি অনুকূলিত করা যেতে পারে তবে আমি এটি করার জন্য একটি শালীন অ্যালগরিদম খুঁজতে লড়াই করছি।

অ্যালগরিদমটি অ্যাকাউন্টে নিতে হবে যে আপনি বিভিন্ন ভূখণ্ডের ধরণের ব্লকগুলি "মার্জ" করতে চান না। আমার ধারণা, খুব সহজ শুরু হতে পারে কেবলমাত্র একটি অক্ষের সাথে সমস্ত ব্লক প্রক্রিয়া করা এবং অন্য দুটি অক্ষের জন্য অতিরিক্ত ঝাড়ু করা।

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

এ সম্পর্কে কোন চিন্তা / পরামর্শ / টিপস?


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

বহুভুজ জাল কেন? ভক্সেলকে ঠিক তেমন দক্ষতার সাথে রেন্ডার করা যেতে পারে । একটি ভক্সেল কিউবটির জন্য আপনার জন্য 3 টি ফ্লোট (এক্স, ওয়াই, জেড) প্রয়োজন, 1 বাক্সের জন্য আপনার প্রায় 8 * 3 ফ্লোট (8 টি শীর্ষে) প্রয়োজন এবং আপনার যদি অন্তর্নিহিত প্রান্ত এবং বহুভুজ রয়েছে। হতে পারে ক্য এই ভক্সেল সমস্যার হাতিয়ার নয়।
ব্যবহারকারী 712092

উত্তর:


5

আমার প্রশ্নটি হ'ল:

জীবের চলাচল করার জন্য কেন আপনার নিজেরাই জাল লাগবে?

আপনি কি আইডি এর 3 ডি ম্যাট্রিক্সে পাথিং গণনা করতে পারবেন না?

আমার মনে হয় মাইনক্রাফ্ট 4 বিট জন ব্লক সহ 3 ডি ম্যাট্রিক্স ব্যবহার করে। এটি কেবল প্লেয়ারের চারপাশে জীবকে নির্দিষ্ট ব্যাসার্ধের অনুকরণ করে।

আপনি নিজের খণ্ডগুলি একটি অক্টো গাছের কাঠামোতে সংরক্ষণ করতে পারেন, যেখানে প্রতিটি অংশ সংকুচিত হয়।

আপনি যদি সংক্ষেপিত ডেটা র‍্যামে রাখেন তবে প্রয়োজনের সময় আপনি ডেটাটি খুব তাড়াতাড়ি সংক্ষেপিত করতে পারেন।

বিকল্প পাঠ


আমি ইউনিটির সাথে সংঘর্ষ সনাক্তকরণের জন্য জাল রাখার উপর নির্ভরশীল ছিলাম, তবে কেবল কাস্টম ডেটা কাঠামোর বিরুদ্ধে সংঘর্ষ / পথ পরীক্ষা করার থেকে আমাকে থামানোর কিছুই নেই। যাইহোক, ভূখণ্ডটি প্রদর্শনের জন্য আমার এখনও একটি দৃশ্যমান জাল তৈরি করতে হবে এবং এটিই আমার অনুকূলিত করা দরকার to
জেমস লিভিংস্টন

অন্য একটি বিষয় ... আপনি স্ক্রিনশট দ্বারা দেখতে পাচ্ছেন ... এই অঞ্চলটি পুরো সমতল নয়। মেসগুলি সাধারণত কিউবগুলির রুক্ষ পৃষ্ঠতল হয় তবে আমি মনে করি জাল মুখগুলি / শীর্ষকোষগুলি অনুকূল করার জন্য এখানে কিছু জায়গা রয়েছে। দেখে মনে হচ্ছে অষ্টা ডেটার জন্য সেরা হবে যা "জেগি" ডেটার পরিবর্তে প্রচুর পরিমাণে ডেটা ব্লক করে। নাকি এটি সঠিক নয়?
জেমস লিভিংস্টন

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

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

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

1

এই ভূখণ্ডটি সংরক্ষণের জন্য অষ্ট্রি ব্যবহার সম্পর্কে কীভাবে?

উদাহরণস্বরূপ বায়ু = কোন নোড নয়, অন্যান্য সমস্ত ভূখণ্ডের প্রান্তের প্রকারের সাথে নোড থাকবে।

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


0

আপনি কি খেলোয়াড় দেখতে পাচ্ছেন এমন জ্যামিতির অংশগুলির জন্য কিউবগুলি তৈরি করছেন? এটা আমার প্রথম পদক্ষেপ হবে। আপনার ভূখণ্ডের আকারের উপর নির্ভর করে আপনার কাছে পৃথিবীর পুরোতা বোঝা / আঁকানো / দৃশ্যমান / যা কিছু থাকতে হবে না।


আমি কেবল ঘনক্ষেত্রের পক্ষের জন্য জাল তৈরি করছি যার পাশে খালি বাতাস রয়েছে। প্লেয়ারটি দেখতে পাচ্ছে না এমন মেশিন আঁকছে না ... আমি এমন কোনও খণ্ডগুলি বাদ দেওয়ার বিষয়ে ভেবেছিলাম যার কোনও দৃশ্যমান ব্লক নেই, যেমন ভূগর্ভস্থ গুহাগুলি বা ছিদ্র যা কোনও কোণে স্থলভাগে নিয়ে যায়। যদিও আমি ঠিক সেই মুহুর্তে সংঘর্ষ / পথ চলার জন্য আমার জঞ্জালের উপর নির্ভর করতে সক্ষম হব না।
জেমস লিভিংস্টন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.