"স্প্রাইট ব্যাচিং" এর প্রযুক্তিগত সংজ্ঞাটি কী?


17

প্ল্যাটফর্ম এবং ভাষা বিজ্ঞানের দিক থেকে স্প্রাইট ব্যাচিংয়ের সংজ্ঞা কীভাবে দেওয়া হয়? মনে হচ্ছে অঙ্কন করার সময় কাজের পরিমাণ হ্রাস করার জন্য বিভিন্ন কৌশল রয়েছে এবং তারা প্রায়শই "ব্যাচিং" দিয়ে পড়ে থাকে। এটি আমার কাছে ঘটেছিল যে সত্যিকারের উত্তর নাও থাকতে পারে তবে সম্ভবত এখানে কেউ আমার কাছে এমন কিছু পেয়ে গেছে।

উত্তর:


14

প্রযুক্তিগতভাবে, "ব্যাচিং" একাধিক ক্রিয়া এবং তাদের ডেটাগুলিকে একটি ডেটা স্ট্রাকচারে রাখছে যাতে এটি সমস্ত পৃথকভাবে না হয়ে একবারে সম্পাদন করা যায়।

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

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


1
বিলম্বিত সমস্যাটি উল্লেখ করার জন্য +1; নেটওয়ার্ক ট্র্যাফিক এবং ডিস্ক আই / ও-তেও এটি একই নীতি হিসাবে প্রযোজ্য - সাধারণ ক্ষেত্রে খুব কম বড় ব্যাচ প্রচুর ছোট ব্যাচকে ট্রাম্প করে।
ম্যাক্সিমাস মিনিমাস

9

একক ড্র কল সহ জিপিইউতে একাধিক স্প্রিট জমা দেওয়ার পদ্ধতি হ'ল স্প্রাইট ব্যাচিং।

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

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

আপনি যদি একটি স্প্রিট অ্যাটলাস ব্যবহার করেন এবং তারপরে আপনার সমস্ত স্প্রাইট কোয়াডস সহ একটি একক ভিবিও তৈরি করেন, এটি সেই ডেটার সাথে একক অঙ্কনের অনুরোধ করে, আপনি গ্যারান্টিযুক্ত যে হার্ডওয়্যারটি সম্পূর্ণরূপে ব্যবহৃত হয়েছে এবং আপনার সমস্ত স্প্রাইট সমান্তরালে রেন্ডার করা হয়েছে।

স্প্রাইট ব্যাচিং তখন খুব তা করছে: আপনার একাধিক স্প্রাইটকে একটি একক আটলাস ব্যবহার করে জিপিইউতে জমা দেওয়া একক অ্যাটলাস ব্যবহার করে জিপিইউ ব্যবহারকে সর্বাধিক করে তোলা।

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


-১: রাষ্ট্র পরিবর্তনগুলি কমানো ব্যাচিংয়ের "পয়েন্ট" নয়। ওপেনজিএল যেভাবে কাঠামোগত হয়েছে সেখান থেকে এটি কেবল একটি প্রয়োজনীয়তা। (এটি টেক্সচার অ্যাটলেসের বিন্দু, তবে সেগুলির জন্য জিজ্ঞাসা করা হয়নি।) প্রশ্নটি নির্দিষ্টভাবে একটি "প্ল্যাটফর্ম এবং ভাষা বিজ্ঞানের দিক থেকে" সংজ্ঞা চেয়েছে।
এপিআই-বিস্ট

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

4
মিস্টার বিস্ট: ওপেনজিএল বা কোনও প্ল্যাটফর্ম বা ভাষার সাথে এর কোনও যোগসূত্র নেই। কোনও প্ল্যাটফর্ম এবং যে কোনও ভাষা ব্যবহার করে সমস্ত গ্রাফিক্স এপিআইতে খুব হার্ডওয়ারটি নিজেই কীভাবে আসলে কাজ করে।
শান মিডলডিচ

6

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

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

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