কিভাবে অসীম মহাবিশ্ব রেন্ডার করবেন?


15

আমি আগ্রহী যে 3 ডি মহাবিশ্ব রেন্ডার করতে গেম ডেভেলপমেন্ট ইন্ডাস্ট্রির সেরা অনুশীলনগুলি কী?

আরো নির্দিষ্ট করা:

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

সর্বাধিক নিখুঁত পদ্ধতি হ'ল মহাবিশ্বকে কিউবগুলিতে বিভক্ত করা এবং যা দৃশ্যমান তা কেবল রেন্ডার করা। আমি নিশ্চিত না যে এই দৃশ্যে কীভাবে আমার "জুম আউট" বাস্তবায়ন করা উচিত। প্রতিটি সম্ভাব্য জুম স্তরের জন্য কি কিউবগুলি প্রাক্পম্পিউট করা উচিত? অথবা আরও ভাল পন্থা আছে?

আমি প্রযুক্তি অজ্ঞেয়াদি সমাধান খুঁজছি।


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

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

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

1
@ অ্যালান ওল্ফ কাস্টম কারুকাজ করা এখনও সম্ভব - পুরানো ফ্রন্টিয়ার গেমগুলির প্রধান উদাহরণ, যেখানে প্রায় 1000 টি তারকা বা সোলের নিকটতম (সল এবং এর প্রকৃত গ্রহ এবং চাঁদ সহ) এর আসল তারকা অবস্থান ছিল। আপনি কেবল নিশ্চিত হন যে এগুলি এমন স্থানে রয়েছে যা পদ্ধতিগতভাবে উত্পন্ন হয় না এবং এগুলিকে অন্য একটি "স্তর" হিসাবে যুক্ত করুন।
লুয়ান

@ ইলমারি কারোনেন হ্যাঁ, আপনি ঠিক বলেছেন। আমার সর্বাধিক দেখার দূরত্ব রয়েছে এবং আমি ভেবেছিলাম মিং-
টাংয়ের

উত্তর:


8

এটি আমার অনুমানের ভিত্তিতে এবং সেলেস্টিয়ার উত্স কোডের মাধ্যমে স্কিমিংয়ের উপর ভিত্তি করে।

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

রেন্ডারারটি অষ্টকে অতিক্রম করে পরিবেশ উপস্থাপন করবে এবং দূরবর্তী বস্তুকে গভীরভাবে অতিক্রম করবে না।

সেলসিয়াও একটি অক্ট্যান্টের পরম পরিমাপের উপর নজর রাখে, যেখানে অক্ট্যান্টের নিখুঁত পরিমাণটি অষ্টকের ভিতরে থাকা তারার নিখুঁত পরিমাণের উপর ভিত্তি করে। যদি অক্টান্ট একত্রে কাছাকাছি থাকে তবে সেলেস্টিয়া স্বতন্ত্রভাবে তারাগুলিকে রেন্ডার করে এবং অষ্টাটি দূরে থাকলে সেলেস্টিয়া অক্টান্টকে অষ্টকের তীব্রতার এক তারা হিসাবে রেন্ডার করে।

এছাড়াও, বস্তুর সাথে সংযুক্ত অর্থবোধক শ্রেণিবিন্যাস থাকতে পারে। উদাহরণস্বরূপ, যদি আপনি কোনও তারার নিকটে (ডাটাবেসে ঘোষিত ব্যাসার্ধ) থেকে থাকেন তবে এর গ্রহগুলি রেন্ডার করা হবে। যদি কোনও গ্রহ পর্যাপ্ত পরিমাণে থাকে (স্ক্রিনে পিক্সেলের একটি কাট অফ), তবে এর 3D মডেলটি আঁকা।

আমি যে অন্যান্য স্পেস গেমগুলির নাম বলতে পারি সেগুলি হ'ল অরবিটার এবং কেরবল স্পেস প্রোগ্রাম, যা ক্লোজড সোর্স। আমি ফ্রন্টিয়ার গ্যালাক্সিতেও নজর রেখেছিলাম, যা পদ্ধতিগতভাবে তারকা মানচিত্র তৈরি করেছে। এখানে একটি ওয়েবসাইট বিশ্লেষণ করছে যে গেমটি কীভাবে তার বিশৃঙ্খলা থেকে কাজ করে: http://www.jongware.com/galaxy1.html


12

এই ধাঁধাটিতে অনেকগুলি টুকরো রয়েছে, যার মধ্যে প্রতিটি অনুসন্ধানের গভীর এবং আকর্ষণীয় খরগোশের গর্ত সরবরাহ করবে। এর মধ্যে কয়েকটি হ'ল:

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

এবং আপনার নিজস্ব সিক্রেট সস হ'ল এটির এবং অন্যান্য, আপনি যে কৌশলগুলি ব্যবহার করেন এবং কখন আপনার নির্দিষ্ট প্রয়োগের প্রয়োজনের উপর ভিত্তি করে combination


2

হায়ারার্কিকাল এবং / অথবা বিচ্ছিন্ন যে কোনও কিছু এখানে আপনার সহায়তা করা উচিত।

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

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

অন্যান্য সাধারণ শ্রেণিবিন্যাসিক পদ্ধতির মধ্যে বিএসপি গাছ অন্তর্ভুক্ত রয়েছে (এগুলি পুনরাবৃত্তভাবে স্থান অর্ধেক স্পেসে বিভক্ত করে) পাশাপাশি কেডি গাছগুলিও একই জাতীয় কাজ করে।

আমি ব্যক্তিগতভাবে মনে করি একটি অষ্টা আপনার জন্য একটি শুভ সূচনা হতে পারে, কেবলমাত্র প্রয়োজন মতো গভীরভাবে মহকুমা নিশ্চিত করা যাতে আপনি খালি জায়গায় স্মৃতি নষ্ট না করেন। এছাড়াও, আপনি আপনার গতিশীল অবজেক্টগুলি বনাম আপনার স্ট্যাটিক অবজেক্টের জন্য আলাদা সমাধান চাইছেন।

কিছু সমাধান (যেমন বিএসপি) খুব দক্ষ হতে পারে তবে এটি নির্মাণে দীর্ঘ সময় লাগে তবে সাধারণত চলন্ত / পরিবর্তিত বস্তুর পক্ষে ভাল পছন্দ হয় না।

আশা করি এটি সাহায্য করে, আপনার যদি বিশদ সম্পর্কে কোনও প্রশ্ন থাকে তবে আমাকে জানান!

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