এই নিবন্ধটি 4.3 এর আগে আসার আগেও কিছু দরকারী ব্যাখ্যা দেয়:
আপনি যদি "পিক্সেল আর্ট" চেহারাটির জন্য যাচ্ছেন তবে ক্যামেরার অর্থকোগ্রাফিক আকারটি অত্যন্ত গুরুত্বপূর্ণ; এটি ityক্যে 2 ডি পেরেকের সবচেয়ে জটিল অংশ।
অর্থোগ্রাফিক আকারটি প্রকাশ করে যে কতগুলি বিশ্ব ইউনিট ক্যামেরার অভিক্ষেপের শীর্ষ অর্ধেকটিতে রয়েছে। উদাহরণস্বরূপ, আপনি যদি 5 টির একটি orthographic আকার সেট করেন, তবে ভিউপোর্টের উল্লম্ব অংশগুলিতে বিশ্ব স্থানের 10 ইউনিট থাকবে। (অনুভূমিক প্রসারগুলি প্রদর্শন দিক অনুপাতের উপর নির্ভরশীল))
মনে রাখবেন যে আপনার স্প্রাইট কোয়াডটি একদিকে 1 ইউনিট। এর অর্থ অর্থোগ্রাফিক আকার আপনাকে বলবে যে আপনি কতগুলি স্প্রিটকে ভিউপোর্টে উল্লম্বভাবে স্ট্যাক করতে পারেন (২ দ্বারা বিভক্ত)।
পিক্সেল-আর্টকে পরিষ্কারভাবে রেন্ডার করতে, আপনাকে নিশ্চিত করতে হবে যে স্প্রাইটের উত্স টেক্সচারের প্রতিটি পিক্সেল ভিউপোর্ট ডিসপ্লেতে 1: 1 মানচিত্র করে। আপনি চান না যে উত্স পিক্সেলগুলি এড়িয়ে যাওয়া বা দ্বিগুণ হওয়া, বা আপনার স্প্রাইটগুলি বিকৃত এবং "নোংরা" দেখাবে। এই 1: 1 অনুপাতটি নিশ্চিত করার কৌশলটি একটি orthographic আকার সেট করা যা আপনার উল্লম্ব স্ক্রিনের রেজোলিউশনের সাথে একটি স্প্রাইটের পিক্সেল উচ্চতার দ্বারা বিভক্ত হয়।
ধরা যাক আপনি 960x640 এ চলছে এবং আপনি 64x64 স্প্রাইট ব্যবহার করছেন। উল্লম্ব স্ক্রিন রেজোলিউশন (640) একটি স্প্রাইটের পিক্সেল উচ্চতার দ্বারা ভাগ করে (64) ফলন করে 10, 64x64 স্প্রাইটের সংখ্যা যা উল্লম্বভাবে 640 পিক্সেলগুলিতে স্ট্যাক করা যেতে পারে। মনে রাখবেন অর্থোগ্রাফিক আকারটি একটি অর্ধ-উচ্চতা, সুতরাং এই ক্ষেত্রে আপনার টার্গেট অরোগ্রাফিক আকার 5 (10 এর অর্ধেক) হতে চলেছে। এটিকে ঐটির মত দেখতে হবে:
আপনি যদি অর্থোগ্রাফিক আকারটি অর্ধেক বা দ্বিগুণ করে ফেলেছেন তবে আপনি এখনও ব্যবহারযোগ্য ফলাফল পেতে পারেন কারণ স্প্রাইটের উল্লম্ব আকারটি এখনও ভিউপোর্টের উল্লম্ব আকারে সমানভাবে বিভক্ত হবে। তবে আপনি যদি অর্থোগ্রাফিক আকারটি ভুলভাবে সেট করেন, আপনি কিছু পিক্সেল এড়িয়ে যাওয়া বা দ্বিগুণ দেখতে পাবেন এবং এটি দেখতে খুব খারাপ লাগবে:
পরিবর্তনশীল রেজোলিউশন
ক্লিন পিক্সেল আর্ট রেন্ডার করার জন্য আপনাকে একক, স্থির রেজোলিউশনে সীমাবদ্ধ রাখার দরকার নেই। পরিবর্তনীয় রেজোলিউশনগুলি হ্যান্ডেল করার সহজতম উপায় হ'ল আপনার ক্যামেরায় একটি কাস্টম স্ক্রিপ্ট সংযুক্ত করা যা বর্তমান উল্লম্ব রেজোলিউশন এবং একটি জ্ঞাত (স্থির) স্প্রাইট আকার অনুযায়ী orthographic আকার নির্ধারণ করে :
// set the camera to the correct orthographic size
// (so scene pixels are 1:1)
s_baseOrthographicSize = Screen.height / 64.0f / 2.0f;
Camera.main.orthographicSize = s_baseOrthographicSize;
যদিও এটি একটি সরল ফিক্স, এতে একটি অসুবিধা রয়েছে: স্ক্রিনের রেজোলিউশন হ্রাস পাওয়ার সাথে সাথে আপনি বিশ্বের কম-বেশি দেখবেন এবং স্প্রিটগুলি স্ক্রিনটি আরও বেশি করে গ্রহণ করবে। এটি উত্স এবং স্ক্রিন পিক্সেলের মধ্যে 1: 1 অনুপাত রাখার পরিণতি: একটি 64x64 স্প্রিট 1920x1200 এর তুলনায় 640x480 এ আরও স্পষ্ট স্থান নেয়। এটি সমস্যা কিনা বা না তা আপনার নির্দিষ্ট গেমের প্রয়োজনের উপর নির্ভর করে।
আপনি যদি চান যে আপনার স্প্রাইটগুলি পর্দার রেজোলিউশন নির্বিশেষে একই আপাত আকারের আকারে থেকে যায়, তবে কেবল অর্থোগ্রাফিক আকারটিকে একটি নির্দিষ্ট মান হিসাবে সেট করুন এবং স্ক্রিন রেজোলিউশন নির্বিশেষে এটি সেখানে রেখে যান। অপূর্ণতাটি হ'ল আপনার স্প্রাইটগুলির আর 1: 1 উত্স থেকে স্ক্রিন পিক্সেল অনুপাত থাকবে না। আপনি কেবলমাত্র রেজোলিউশনগুলি মঞ্জুর করে এর খারাপ প্রভাবগুলি প্রশমিত করতে পারেন যা আপনার টার্গেট রেজোলিউশনের ঠিক অর্ধেক বা ঠিক দ্বিগুণ।
(কিছু জোর যুক্ত)
এটি স্পষ্টতই আরও ভাল কাজ করে যদি উচ্চতার রেজোলিউশন স্প্রাইট আকার দ্বারা বিভাজ্য হয় তবে এটি না হলেও এটি এখনও একটি শালীন ফলাফলের একটি ভাল আনুমানিকতা দেয়।
টিএল; ডিআর :cameraSelf.orthographicSize = screenH / (float)spriteSize / 2f;