स्प्राइट बैचिंग एकल ड्रा कॉल के साथ कई स्प्राइट्स को जीपीयू में जमा करने की विधि है।
अन्य उत्तरों में से कोई भी ऐसा करने के वास्तविक बिंदु को इंगित नहीं करता है: राज्य परिवर्तन और GPU कमांड सबमिशन को कम करना। यदि आपके पास 100 स्प्राइट्स हैं, तो मैं अपनी बनावट के साथ प्रत्येक, हार्डवेयर केवल एक बार में एक स्प्राइट को प्रोसेस कर सकता हूं। दर्जनों या यहां तक कि हजारों shader कोर मुश्किल से उपयोग किया जा रहा है, और GPU बनावट स्विच के लिए अपनी रेंडर अवस्था को कॉन्फ़िगर करने में बहुत अधिक समय खर्च करता है।
यदि आप अपनी सभी स्प्राइट छवियों को एटलस में रखते हैं, तो आप आकर्षित करने के लिए आवश्यक राज्य परिवर्तनों को कम कर सकते हैं। ड्राइवर किसी एकल बैच में स्प्राइट ड्रॉ अनुरोधों को स्वचालित रूप से संयोजित करने में सक्षम हो सकता है ताकि हार्डवेयर का पूरी तरह से उपयोग किया जा सके, लेकिन इसकी गारंटी या संभावना नहीं है।
यदि आप स्प्राइट एटलस का उपयोग करते हैं और फिर अपने सभी स्प्राइट क्वाड्स में एक एकल वीबीओ बनाते हैं, तो उस डेटा के साथ एक सिंगल ड्रा अनुरोध करें, आपको गारंटी दी जाती है कि हार्डवेयर पूरी तरह से उपयोग किया गया है और आपके सभी स्प्राइट समानांतर में रेंडर किए गए हैं।
स्प्राइट बैचिंग तब बहुत काम कर रही है: एक सिंगल वीबीओ में सिंगल स्प्रैड्स का उपयोग करके अपने बहुत से स्प्राइट्स को डालना जो कि एक सिंगल ड्रॉ कॉल के साथ जीपीयू में सबमिट किए जाते हैं, जीपीयू का अधिकतम उपयोग करते हैं।
बैचिंग करने के अन्य तरीके हैं (जैसे हार्डवेयर इंस्ट्रूमेंटिंग, ज्योमेट्री शेड्स का उपयोग करना, आदि), और ऐसा करने के लिए अन्य लाभ, लेकिन इसका सार यह है कि बैचिंग का अर्थ है प्रति ड्रा कॉल में कई ऑब्जेक्ट्स को ड्रॉ करना।