আমি কীভাবে ityক্যে চূড়ান্ত ভূখণ্ড তৈরি করতে পারি ? দেখে মনে হচ্ছে আমি প্রস্থ এবং দৈর্ঘ্যকে বড় মানগুলিতে সেট করতে পারি। তবে হাইটম্যাপ রেজোলিউশনটি কেবল 4097 পর্যন্ত যায় এবং বিশদ বিবরণটি কেবল 4048 পর্যন্ত যায়।
কোন ধারনা?
আমি কীভাবে ityক্যে চূড়ান্ত ভূখণ্ড তৈরি করতে পারি ? দেখে মনে হচ্ছে আমি প্রস্থ এবং দৈর্ঘ্যকে বড় মানগুলিতে সেট করতে পারি। তবে হাইটম্যাপ রেজোলিউশনটি কেবল 4097 পর্যন্ত যায় এবং বিশদ বিবরণটি কেবল 4048 পর্যন্ত যায়।
কোন ধারনা?
উত্তর:
অঞ্চলটিকে বর্গক্ষেত্রের অংশগুলিতে বিভক্ত করুন, আপডেট করুন () বর্তমানে যাদের আপনি যত্নশীল তাদের বেশিরভাগ লোড করুন (বেশিরভাগ: বর্তমানে সক্রিয় ক্যামেরার কাছাকাছি থাকা) আপডেট () এ এবং - যদি আপনাকে স্থানের জন্য স্ট্র্যাপ করা হয় (সম্ভবত আপনি হবেন) তবে খুব বেশি প্রয়োজনের জিনিসগুলি আনলোড করুন ।
দূর-দূরান্তের এলওডি-র জন্য প্রাক-গণনা করা লো-পলি মডেলগুলি ব্যবহার করুন, যদি না আপনি কম দুরের দূরত্ব বজায় রাখেন। এছাড়াও, যদি আপনার কোনও কিছুর জন্য দূরের ভূখণ্ডের উচ্চতা মানচিত্রের প্রয়োজন হয় (যেমন এনপিসি আন্দোলন বা অন্য কোনও সিমুলেশন), স্মৃতিতে রাখতে আপনার অঞ্চলটির একটি নিম্ন-রেজোলিউশন বা পরিবর্তনশীল রেজোলিউশন বৈকল্পিক তৈরি করুন; এর জন্য সম্পূর্ণ ভূখণ্ডের ডেটা ব্যবহার করবেন না। গেম লোডে এটি স্বয়ংক্রিয়ভাবে করা যেতে পারে, তবে সাধারণত বিল্ড বা প্যাকেজ চলাকালীন এমন প্রাক-উত্পন্ন ডেটা তৈরি করে এমন একটি সরঞ্জাম তৈরি করা ভাল ধারণা।
শেষ অবধি: ভাসমান পয়েন্ট নির্ভুলতা সমস্যাগুলি এড়াতে আপনার মূল ক্যামেরাটি প্রতিবার (0.0f, 0.0f, 0.0f) থেকে দূরে সরে গেলে আপনাকে পুরো দৃশ্যটি পুনঃস্থাপন করতে হবে।
Un ক্য উত্তরগুলি সম্পর্কে সম্ভবত প্রাসঙ্গিক প্রশ্ন http://answers.unity3d.com/questions/17225/dynamic-terrain-loading.html
আপনার খণ্ডগুলি, অর্থাৎ খণ্ডগুলিকে ভেঙে ফেলতে হবে। বেশ কয়েকটি ছোট ভূখণ্ড। আপনাকে এগুলি আবার 'সিউম' করতে হবে (স্ক্রিপ্টের সাহায্যে) যাতে তাদের মধ্যে 'গর্ত' না থাকে তবে অন্যথায় আপনি কেবল এগুলি করা শুরু করতে পারেন।
আপনি আরও জানতে চাইবেন যে ইউনিটি 3 ডি ~.০ থেকে আপনি খুব বেশি দূরে আইটেমগুলি (টেরেন এবং আইটেমগুলি পড়তে পারবেন না) (+/- 100000 ধাপ আইআইআরসি এর মতো) তাই এটি আপনার বিশ্বের সর্বোচ্চ আকারকে প্রভাবিত করবে।
আমি যাইহোক যাইহোক এটি আমার অনলাইন আরপিজি গেমটিতে ব্যবহার করছি (ব্যতিক্রমটি ছাড়া আমি কেবল ইউনিটি 3 ডি ব্যবহার করি লেভেল ডিজাইনের জন্য, আসল গেমের জন্য নয়)।
আমি কৌতূহলী হওয়ার কারণে, আপনি কি আপনার গেম সম্পর্কে কিছু তথ্য ভাগ করতে চান (যেমন অগ্রগতি, টাইপ, গ্রাফিক্স, স্টাইল ইত্যাদি)?
আমরা বিভিন্ন ইউনিট 5 TerrainData
এর বিশদ [1] সহ অবজেক্টের উচ্চতা-মানচিত্রে সমগ্র পৃথিবীর জন্য এসআরটিএম ডেটা প্রক্রিয়াকরণ করে ইউনিটি 5 তে বিশাল ভূখণ্ড বাস্তবায়ন করেছি । এখানে কয়েকটি বিষয় বিবেচনা করতে হবে:
উচ্চতার মানচিত্রের খুব প্রান্তগুলিকে কমপক্ষে একটি নমুনা দ্বারা ওভারল্যাপ করা প্রয়োজন এবং সেই অনুযায়ী আপনার অঞ্চলগুলি আপনার অবস্থানের স্থানে রাখা দরকার। Terrain.SetNeighbors
জালটি সংযুক্ত করবে না, কেবল ityক্য কর্তৃক করা বিভিন্ন স্তরের বিশদের জন্য অ্যাকাউন্ট account
আপনার অগত্যা, প্রতি TerrainData
বস্তুতে 2 ^ n + 1 উচ্চতার নমুনাগুলি প্রয়োজন , অন্যথায় ityক্য আনসেট অংশগুলিতে 0 এর উচ্চতা নির্ধারণ করবে।
আপনার যদি 2 গিগাবাইটেরও কম থাকে TerrainData
, তবে আপনি রিসোর্স ফোল্ডারে Resource.Load
তাদের সম্পদ হিসাবে এবং রানটাইমগুলিতে এড়াতে পারবেন। আপনার যদি 2 জিবি-র বেশি থাকে তবে approachক্য বিল্ড সহ 2 জিবি সংস্থান বেশি থাকতে পারে না বলে এই পদ্ধতির আর কাজ হবে না। এক্ষেত্রে আপনাকে অ্যাসেটবান্ডেলগুলি তৈরি করতে হবে এবং অযোজ্যভাবে এটিকে WWW
বস্তুটির সাথে লোড করতে হবে । এতে Shader.Parse
প্রায় 500ms ওভারহেডের সাথে প্রত্যেকের জন্য কল করার অযাচিত পার্শ্ব-প্রতিক্রিয়া রয়েছে । আমি ফোরামে এটি প্রতিবেদন করেছি [2] এবং এখনও একটি উত্তরের জন্য অপেক্ষা করছি। আমি শেষ পর্যন্ত একটি বাগ রিপোর্ট জমা দেব।
ব্যবহার সম্পর্কে চিন্তা করবেন না AssetDatabase.LoadAssetAtPath
, এটি কেবল সম্পাদকটিতে উপলব্ধ এবং ইউনিটি বিল্ডগুলিতে নয়।
[1] https://www.youtube.com/watch?v=2UsyVuWoFbQ
[2] http://forum.unity3d.com/threads/shader-parse-delays-loading-of-assetbundle-containing-no-shader .358235 /
তৃতীয় পক্ষের সমাধান রয়েছে।
এই কোডটি 99,999 মিটার প্রস্থের অঞ্চল তৈরি করতে পারে, পর্বতমালা যে কোনও শব্দ সূত্র, তবে আপনি চাইলে 100 টি শোর ফর্মুলাকে একটি মানচিত্রে মিশ্রণ করতে পারেন। উদাহরণস্বরূপ, এই ভূখণ্ডে, একটি মানচিত্রে উপলব্ধ মোট ত্রিভুজগুলির সংখ্যা m 66 মিলিয়ন, নিম্ন রেজোলিউশন এবং 200 মিলিয়ন মাঝারি রেজোলিউশনের মধ্যে রয়েছে। এখানে একটি 66 মিলিয়ন ত্রিভুজ মানচিত্র, যেখানে ক্যামেরার চারদিকে 0.7 মিলিয়ন ত্রিভুজ আপডেট করা হয়েছে। unityক্যপ্লেয়ার জায়ান্ট টেরিন, ডাব্লুএএসডি এবং স্পেস
আমি আপনার অঞ্চলগুলি অংশগুলিতে লোড করার পরামর্শ দেব। আরও ছোট ভূখণ্ড ব্যবহার করে এবং সম্ভবত আপনার স্ক্রিপ্টটি পরীক্ষা করে দেখতে পারে যে আপনি ট্রান্সফর্ম.পজিশন - terrain.transform.position ব্যবহার করে আপনার অঞ্চলটির নির্দিষ্ট সান্নিধ্যে আছেন কিনা। আপনার গেমটিকে সামগ্রিকভাবে কীভাবে অনুকূল করা যায় সে সম্পর্কে আমি আসলে একটি ব্লগ পোস্ট লিখেছিলাম এবং আমি খণ্ড লোডিং সম্পর্কে কথা বলেছিলাম। আশাকরি এটা সাহায্য করবে.