একসময়, রঙ এবং গভীরতার বাফারগুলি সাফ করতে আসলে সময় নিয়েছিল। একটি পরিষ্কার করার অর্থ গ্রাফিক্স কার্ডের ফ্রেমবফারের প্রতিটি পিক্সেল হাঁটা এবং এটিতে একটি মান লিখতে হবে।
এ কারণে, গেম ডেভেলপাররা দেখেছেন যে প্রতিটি পিক্সেলটি আবার উপস্থাপন করা হবে তা সহজেই ধরে নেওয়া আরও দক্ষ হবে। তারা এটি করার জন্য অনেক কৌশল তৈরি করেছিল।
রঙ বাফারটি উপেক্ষা করা সহজ। গভীরতা বাফার কম সহজ, কারণ এটি পুরানো ডেটা দিয়ে দূষিত হবে। সুতরাং তারা কি সহজ ছিল।
ফ্রেম 0, তারা একটি সঙ্গে রেন্ডার হবে glDepthRange
(0, 0.5) এর (বা D3D সমতুল্য), এবং তারা একটি ব্যবহার করেন glDepthFunc
এর GL_LESS
(বা GL_LEQUAL
)। এর অর্থ হ'ল গভীরতা বাফারে আপনি যে দূরতম গভীরতার মান পাবেন তা 0.5 হয়। সুতরাং ফ্রেম 0 এর শেষে গভীরতার বাফারের বৃহত্তম মান হ'ল 0.5 (ধরে নিলেন আপনি প্রতিটি পিক্সেলটিতে লিখেছেন)।
ফ্রেম 1 এ, তারা গভীরতার পরিসীমা (1, 0.5) এ পরিবর্তন করবে। লক্ষ করুন যে এক্ষেত্রে নিকটতম গভীরতার মান দূরত্বের চেয়ে বেশি। তবে তারা গভীরতা মজাদার GL_GREATER
(বা GL_GEQUAL
) এও পরিবর্তন করতে পারে , যা গভীরতা পরীক্ষার অর্থকে বিপরীত করে। যেহেতু গভীরতা বাফারের বৃহত্তম মান 0.5 হয়, আপনার লেখার প্রত্যেকটির মান এর চেয়ে বড় হবে। যেহেতু গভীরতা পরীক্ষাটি বিপরীত হয়েছিল, এর কার্যকরভাবে এর অর্থ হ'ল ফ্রেম 0 তে যা কিছু লেখা হয়েছিল তা এখন ফ্রেম 1 তে লেখা যেতে পারে তার চেয়ে অনেক বেশি দূরে রয়েছে ফ্রেম 1 এর শেষে, গভীরতা বাফারের ক্ষুদ্রতম মান এখন 0.5।
এবং তারপরে তারা পুনরাবৃত্তি করে।
২০০৩ সালের পর থেকে তৈরি যে কোনও হার্ডওয়্যারে এটি আর অনুকূলিতকরণ নয়। আসলে এটি একটি নেতিবাচক অপ্টিমাইজেশন । গভীরতার বাফার সাফ করা আসলে হার্ডওয়্যারকে দ্রুততর করে তোলে । সত্যিই না.
মূলত, যা হয় তা হ'ল ক্লিয়ারিং বাফারগুলি আসলে কিছুই লেখেন না। তারা জিপিইউ'র ক্যাশে কিছু বিট সংরক্ষণ করে যা তারা রঙ / গভীরতায় পরিস্কার করা হয়েছে তা সিস্টেমকে জানায়। সিস্টেম যখন ফ্রেমবফারের ক্যাশে লাইনে লেখার চেষ্টা করে, সেখানে কী আছে তা পড়তে বিরক্ত করে না, কারণ এটি ইতিমধ্যে জানে যে এটি পরিষ্কার রঙ / গভীরতার মানের ফাঁকা ক্ষেত্র। যদি আপনি যা আছে তার সাথে মিশ্রন করার চেষ্টা করেন বা আবার গভীরতা পরীক্ষা করেন, তবে পড়ার দরকার নেই: এটি জানে / পরীক্ষার সাথে কোনটি মিশ্রিত করতে হবে।
সুতরাং প্রতিটি প্রথম পড়ুন / পরিবর্তন করুন / লিখুন যে আপনি প্রতিটি ক্যাশে লাইনে একটি ক্লিয়ার করার পরে মূলত একটি লেখা is এটি বিনামূল্যে ।
এছাড়াও, জেগড ডিপথ বাফার থাকা হার্ডওয়্যারের হাইপার-জেড / হায়ারার্কিয়াল-জেড / যেকোন জেড-কুলিং অপ্টিমাইজেশনের বিরুদ্ধে কাজ করতে পারে। হ্যাঁ, আপনি বিশদ যুক্ত করার সাথে সাথে আপনার দৃশ্যগুলি শেষ পর্যন্ত তাদের বিরুদ্ধে কাজ করবে। তবে যদি আপনার ডিপথ বাফারটি পূর্ববর্তী রেন্ডারিংগুলি থেকে ঝাঁকুনিতে থাকে তবে those ব্যাকগ্রাউন্ডের অবজেক্টগুলি ব্যাকগ্রাউন্ডে থাকলেও এটি জেড-কুলিং কৌশলগুলির দক্ষতাকে প্রভাবিত করতে পারে। এবং এটি পারফরম্যান্সে সহায়তা করবে না।
সুতরাং আধুনিক গেমগুলিতে আপনার এই গভীরতা বিপরীত কৌশলটি কখনই করা উচিত নয় ।
দ্রষ্টব্য: জারি টাইল-ভিত্তিক রেন্ডারিং আর্কিটেকচারে (বেশিরভাগ মোবাইল প্ল্যাটফর্মগুলিতে পাওয়া যায়) একটি ভাল পয়েন্ট দেয়। গভীরতা সাফ না করা সেখানেও জিনিসগুলিকে অপ্রীতিকর করতে পারে।