प्रॉडक्ट से जुड़ी खबरें
Unity की मदद से, Android XR के लिए परफ़ॉर्मेंस को ऑप्टिमाइज़ करना
छह मिनट में पढ़ें
Samsung Galaxy XR लॉन्च हो गया है. यह Android XR पर काम करता है! यह ब्लॉग पोस्ट, Android XR Spotlight Week का हिस्सा है. इसमें हम आपको कई संसाधन उपलब्ध कराते हैं. जैसे, ब्लॉग पोस्ट, वीडियो, सैंपल कोड वगैरह. इन सभी को इस तरह से डिज़ाइन किया गया है कि आपको Android XR के लिए ऐप्लिकेशन बनाने, उन्हें तैयार करने, और उनके बारे में जानने में मदद मिल सके.
इस हफ़्ते, Samsung ने Galaxy XR लॉन्च किया. इसे Google और Qualcomm के साथ मिलकर बनाया गया है. यह डेवलपर के लिए एक रोमांचक समय है. हम चाहते हैं कि आपको अपने एक्सआर ऐप्लिकेशन से सबसे अच्छी परफ़ॉर्मेंस मिले.
सामान्य डिवाइसों पर गेम और ऐप्लिकेशन की परफ़ॉर्मेंस खराब होने से, उपयोगकर्ताओं को परेशानी हो सकती है. हालाँकि, XR की दुनिया में परफ़ॉर्मेंस सिर्फ़ एक विकल्प नहीं है, बल्कि यह आपके ऐप्लिकेशन की सफलता के लिए ज़रूरी है. अगर XR में फ़्रेम रेट का टारगेट पूरा नहीं होता है, तो इससे मोशन सिकनेस जैसी ज़्यादा गंभीर समस्याएं हो सकती हैं.
इस गाइड में, हम आपको परफ़ॉर्मेंस ऑप्टिमाइज़ेशन के उन ज़रूरी पहलुओं के बारे में बताएंगे जिन्हें Android XR डेवलपमेंट के लिए समझना ज़रूरी है. आपको पता चलेगा कि कौनसी सुविधाएं सबसे ज़्यादा परफ़ॉर्मेंस देती हैं, उनका इस्तेमाल कब करना चाहिए, और वे आपके फ़्रेम रेट के लक्ष्यों को पूरा करने में कैसे मदद करती हैं.
हमारा लक्ष्य यह है:
- कम से कम: 72 फ़्रेम प्रति सेकंड (यह हमारे गेम की क्वालिटी के दिशा-निर्देशों का हिस्सा है)
- ज़रूरी नहीं: 90 फ़्रेम प्रति सेकंड, जिसमें हर फ़्रेम के लिए 11 मि॰से॰ का बजट होता है
ज़्यादा फ़्रेम रेट बनाए रखना क्यों ज़रूरी है, इस बारे में ज़्यादा जानने के लिए परफ़ॉर्मेंस के बारे में दिशा-निर्देश देखें.
एक्सआर की परफ़ॉर्मेंस से जुड़ी सुविधाएं
हम सबसे पहले, XR के लिए खास तौर पर डिज़ाइन की गई परफ़ॉर्मेंस की दो सुविधाओं के बारे में बात करेंगे: फ़ोविएटेड रेंडरिंग और वल्कन सबसैंपलिंग.
फ़ोविएटेड रेंडरिंग
फ़ोविएटेड रेंडरिंग, ऑप्टिमाइज़ेशन की एक तकनीक है. इसमें दो मोड होते हैं. पहला स्टैटिक मोड है. इसमें स्क्रीन के बीच वाले हिस्से को ज़्यादा रिज़ॉल्यूशन पर रेंडर किया जाता है. इसके बाद, जैसे-जैसे आप बाहर की ओर देखते हैं वैसे-वैसे रिज़ॉल्यूशन कम होता जाता है.
दूसरा मोड, आई-ट्रैकिंग मोड है. यह मोड, खास तौर पर उस हिस्से को पूरी जानकारी के साथ रेंडर करता है जहां आपकी नज़र है. साथ ही, आपकी पेरिफ़ेरल विज़न में दिखने वाले हिस्से की क्वालिटी को कम कर देता है. यह सुविधा, इंसानों की आंखों के काम करने के तरीके की नकल करती है. इसमें हम सिर्फ़ उस खास हिस्से को साफ़ तौर पर देख पाते हैं जिस पर हमारा फ़ोकस होता है.
फ़ोविएटेड रेंडरिंग की मदद से, जीपीयू के वर्कलोड को काफ़ी हद तक कम किया जा सकता है. साथ ही, इससे उपयोगकर्ता को दिखने वाली इमेज की क्वालिटी पर भी कोई असर नहीं पड़ता. फ़ोविएटेड रेंडरिंग की सबसे अच्छी बात यह है कि उपयोगकर्ताओं को अपनी पेरिफ़ेरल विज़न में क्वालिटी में आई कमी का पता नहीं चलेगा. हालांकि, आपके जीपीयू को परफ़ॉर्मेंस में हुए सुधार का पता ज़रूर चलेगा.
मान लें कि आपको किसी म्यूज़ियम के लिए, 3D में जटिल कलाकृतियां बनानी हैं. फ़ोविएटेड रेंडरिंग के बिना, ‘फ़ील्ड ऑफ़ व्यू’ में मौजूद हर चीज़ को रेंडर करने के लिए, आपको 90 फ़्रेम प्रति सेकंड (एफ़पीएस) बनाए रखने में मुश्किल होगी. फ़ोविएटेड रेंडरिंग की मदद से, उन हाई-पॉलीगॉन वाली चीज़ों को रेंडर किया जा सकता है जिन्हें उपयोगकर्ता देख रहा है. हालांकि, बैकग्राउंड एनवायरमेंट को कम क्वालिटी में रेंडर किया जाता है. आपके उपयोगकर्ताओं को इस बदलाव के बारे में पता नहीं चलेगा. हालांकि, आपके पास अपने सीन में ज़्यादा जानकारी जोड़ने का विकल्प होगा.
Vulkan Subsampling
Vulkan Subsampling, फ़ोविएटेड रेंडरिंग के लिए सबसे अच्छा विकल्प है. फ़ोविएटेड रेंडरिंग यह तय करती है कि अलग-अलग क्वालिटी लेवल पर क्या रेंडर करना है. वहीं, Vulkan Subsampling, फ़्रैगमेंट डेंसिटी मैप का इस्तेमाल करके यह तय करता है कि अलग-अलग क्वालिटी लेवल को कैसे बेहतर तरीके से रेंडर किया जाए.
Vulkan Subsampling को फ़ोविएटेड रेंडरिंग के साथ इस्तेमाल करने पर, आपको 0.5 मिलीसेकंड की अतिरिक्त परफ़ॉर्मेंस मिलती है. इससे आपकी पेरिफ़ेरल विज़न में दिखने वाली इमेज के किनारे भी साफ़ दिखते हैं. इससे पूरी इमेज ज़्यादा साफ़ दिखती है.
उदाहरण के लिए, फ़्लाइट सिम्युलेटर गेम में उपयोगकर्ता इंस्ट्रूमेंट और कंट्रोल पर फ़ोकस करते हैं. ऐसे में, फ़ोविएटेड रेंडरिंग को Vulkan Subsampling के साथ इस्तेमाल करने का मतलब है कि कंट्रोल को ज़्यादा बारीकी से रेंडर किया जाता है. हालांकि, कॉकपिट के बाहरी स्ट्रक्चर में कम संसाधनों का इस्तेमाल किया जाता है. यह 0.5 मि॰से॰ का अंतर बहुत ज़्यादा नहीं लगता, लेकिन इससे इंटरैक्टिव एलिमेंट को शामिल करने या ऐक्शन वाले सीन के दौरान फ़्रेम ड्रॉप होने की समस्या को ठीक करने में मदद मिलती है.
मुश्किल सीन के लिए जीपीयू की सुविधाएं
फ़ोविएटेड रेंडरिंग और वल्कन सबसैंपलिंग के अलावा, जीपीयू की कुछ ऐसी सुविधाएं भी हैं जो स्मार्ट इंस्टेंसिंग और कलिंग की मदद से, ज़रूरत से ज़्यादा लोड को कम करती हैं. ये खास तौर पर, जटिल सीन के लिए असरदार होते हैं. जैसे, बार-बार दिखने वाली ज्यामिति या ज़्यादा रुकावट वाले सीन.
GPU Resident Drawer
जीपीयू रेज़िडेंट ड्रॉअर, ड्रॉ कॉल को कम करने और सीपीयू प्रोसेसिंग टाइम को खाली करने के लिए, जीपीयू इंस्टेंसिंग का अपने-आप इस्तेमाल करता है. इसलिए, सीपीयू के हर ऑब्जेक्ट के बारे में जीपीयू को अलग-अलग बताने के बजाय, जीपीयू एक जैसे ऑब्जेक्ट को एक साथ बैच करता है.
यह सुविधा, बड़े सीन के लिए सबसे ज़्यादा असरदार होती है. जैसे, जंगल में पेड़, ऑफ़िस की इमारत में फ़र्नीचर या पूरे माहौल में बिखरे हुए प्रॉप.
एक ही बेस मेश का इस्तेमाल करके, 200 पेड़ों वाला जंगल बनाएं. जीपीयू रेज़िडेंट ड्रॉअर के बिना, आपके पास 200 ड्रॉ कॉल होते हैं, जो जीपीयू का इस्तेमाल करते हैं. इसलिए, सीपीयू का इस्तेमाल कम हो जाता है. इस सुविधा को चालू करने पर, GPU उन पेड़ों को स्मार्ट तरीके से इंस्टेंस करेगा. इससे ड्रॉ कॉल की संख्या घटकर सिर्फ़ 5 से 10 हो जाएगी. इससे आपको जीपीयू की काफ़ी बचत होती है. इसका इस्तेमाल गेमप्ले लॉजिक या फ़िज़िक्स कैलकुलेशन में किया जा सकता है.
GPU Occlusion Culling
GPU Occlusion Culling, छिपे हुए ऑब्जेक्ट की पहचान करने और उन्हें रेंडर न करने के लिए, CPU के बजाय GPU का इस्तेमाल करता है. यह सुविधा, अन्य ऑब्जेक्ट के पीछे छिपी हुई चीज़ों का अपने-आप पता लगा लेती है. इससे, आपका जीपीयू उन चीज़ों पर खर्च नहीं होता जिन्हें उपयोगकर्ता नहीं देख सकता.
यह सुविधा, खास तौर पर अंदरूनी जगहों पर बेहतर तरीके से काम करती है. जैसे, कई कमरों वाली जगहें, घनी आबादी वाली जगहें या वास्तुकला से जुड़ी ऐसी जगहें जहां दीवारें, फ़र्श, और ऑब्जेक्ट, व्यू को स्वाभाविक रूप से ब्लॉक करते हैं.
उदाहरण के लिए, मान लें कि आपको एक ऐसा स्मार्ट होम बनाना है जिसमें कई कमरों को कंट्रोल किया जा सके. जब उपयोगकर्ता लिविंग रूम में है, तो किचन की पूरी जानकारी देने वाले सीन को रेंडर करने में जीपीयू साइकल क्यों बर्बाद किए जाएं, जबकि वह दीवार के पीछे पूरी तरह से छिपा हुआ है? GPU Occlusion Culling की सुविधा, छिपी हुई चीज़ों को अपने-आप रेंडर नहीं करती. इससे आपको दिखने वाली चीज़ों के लिए ज़्यादा परफ़ॉर्मेंस बजट मिलता है.
अपनी परफ़ॉर्मेंस को मॉनिटर करना
सिर्फ़ इन सुविधाओं का इस्तेमाल करना काफ़ी नहीं है. आपको अपने ऑप्टिमाइज़ेशन को भी मेज़र करना होगा, ताकि उनके असर का पता लगाया जा सके. साथ ही, यह पुष्टि की जा सके कि आपके बदलाव वाकई काम कर रहे हैं.
Performance Metrics API
Performance Metrics API की मदद से, आपके ऐप्लिकेशन की मेमोरी के इस्तेमाल, सीपीयू की परफ़ॉर्मेंस, और जीपीयू की परफ़ॉर्मेंस को रीयल टाइम में मॉनिटर किया जा सकता है. इससे आपको कंपोज़िटर और रनटाइम लेयर का पूरा डेटा मिलता है. इससे आपको यह पता चलता है कि आपके ऐप्लिकेशन में क्या हो रहा है.
बदलाव करने से पहले, एक बेसलाइन तय करें. इसके बाद, ऑप्टिमाइज़ेशन लागू करें, उसके असर को मेज़र करें, और फिर से प्रोसेस दोहराएं. डेटा पर आधारित इस अप्रोच का मतलब है कि आपको पता है कि आपकी परफ़ॉर्मेंस वाकई में बेहतर हो रही है, न कि आप सिर्फ़ अनुमान लगा रहे हैं.
फ़ोविएटेड रेंडरिंग की सुविधा चालू करने से पहले, आपके जीपीयू का फ़्रेम टाइम 13 मि॰से॰ हो सकता है. यह आपके 11 मि॰से॰ के बजट से ज़्यादा है. फ़ोविएटेड रेंडरिंग चालू करें, फिर से मेज़र करें, और उम्मीद है कि आपको यह 9 मि॰से॰ तक कम होता दिखेगा. इससे आपको 4 मिलीसेकंड का समय मिलता है. इसका इस्तेमाल, सीन में ज़्यादा जानकारी जोड़ने, विज़ुअल क्वालिटी को बेहतर बनाने या ज़्यादा कॉन्टेंट के लिए बेहतर परफ़ॉर्मेंस देने के लिए किया जा सकता है.
इन मेट्रिक के बिना, ऑप्टिमाइज़ेशन का कोई मतलब नहीं है. परफ़ॉर्मेंस मेट्रिक एपीआई से आपको यह पता चलता है कि आपके इस्तेमाल के उदाहरण के लिए, कौनसी चीज़ें वाकई में मददगार हैं.
फ़्रेम डीबगर
फ़्रेम डिबगर, Unity का एक इन-बिल्ट टूल है. इससे यह समझने में मदद मिलती है कि आपका सीन, फ़्रेम दर फ़्रेम कैसे रेंडर हो रहा है. यह आपको ड्रॉ कॉल का क्रम दिखाता है. साथ ही, आपको एक-एक करके उनकी जांच करने की सुविधा देता है, ताकि यह पुष्टि की जा सके कि आपके ऑप्टिमाइज़ेशन सही तरीके से काम कर रहे हैं.
क्या आपको पुष्टि करनी है कि SRP Batcher काम कर रहा है? फ़्रेम डिबगर में, 'RenderLoopNewBatcher' एंट्री देखें. क्या जीपीयू रेसिडेंट ड्रॉअर, बैचिंग की सुविधा का सही तरीके से इस्तेमाल कर रहा है? 'हाइब्रिड बैच ग्रुप' वाली एंट्री ढूंढें. इन विज़ुअल पुष्टि से आपको यह समझने में मदद मिलती है कि आपकी ऑप्टिमाइज़ेशन सेटिंग लागू हो रही हैं या नहीं.
अपने सीन के पहले 50 ड्रॉ कॉल पर जाएं. अगर आपको एक जैसे ऑब्जेक्ट अलग-अलग तरीके से रेंडर होते हुए दिखते हैं, तो इसका मतलब है कि इंस्टेंसिंग या बैचिंग की सुविधा ठीक से काम नहीं कर रही है. फ़्रेम डिबगर, इन समस्याओं को तुरंत दिखाता है, ताकि आप उन्हें ठीक कर सकें.
अन्य ऑप्टिमाइज़ेशन
हमने ऊपर जिन ऑप्टिमाइज़ेशन के बारे में बताया है उनके अलावा, परफ़ॉर्मेंस से जुड़ी हमारी पूरी गाइड में कुछ अन्य ऑप्टिमाइज़ेशन के बारे में भी बताया गया है. यहां खास जानकारी दी गई है:
- यूआरपी सेटिंग: मोबाइल XR के लिए, एचडीआर और पोस्ट प्रोसेसिंग की सुविधा बंद करें. ये सुविधाएं, मोबाइल हार्डवेयर पर परफ़ॉर्मेंस की कीमत की तुलना में कम विज़ुअल इफ़ेक्ट देती हैं. इसलिए, आपको परफ़ॉर्मेंस में काफ़ी सुधार देखने को मिलेगा. हालांकि, विज़ुअल में मामूली अंतर दिखेगा.
- एसआरपी बैचर: यह एक ही शेडर वैरिएंट का इस्तेमाल करने वाले कई मटीरियल वाले सीन के लिए, सीपीयू के ओवरहेड को कम करता है. ड्रॉ कॉल के बीच रेंडर-स्टेट में होने वाले बदलावों को कम करके, रेंडरिंग में लगने वाले सीपीयू के समय को काफ़ी हद तक कम किया जा सकता है.
- डिसप्ले रीफ़्रेश रेट: सीन की जटिलता के आधार पर, 72 एफ़पीएस और 90 एफ़पीएस के बीच डाइनैमिक तौर पर अडजस्ट होता है. जटिल सीक्वेंस के दौरान फ़्रेम रेट को कम करें, ताकि स्थिरता बनी रहे. इसके बाद, आसान पलों के दौरान इसे बढ़ाएं, ताकि इंटरैक्शन बहुत आसानी से हो सके.
- डेप्थ/ओपेक टेक्सचर: अगर आपको शेडर इफ़ेक्ट के लिए इनकी ज़रूरत नहीं है, तो इन्हें बंद कर दें. इनसे जीपीयू कॉपी करने की गैर-ज़रूरी कार्रवाइयां होती हैं. इससे परफ़ॉर्मेंस खराब होती है और ज़्यादातर ऐप्लिकेशन को कोई फ़ायदा नहीं मिलता.
- यूआरपी रेंडर स्केल: इस सेटिंग की मदद से, परफ़ॉर्मेंस को बेहतर बनाने के लिए कम रिज़ॉल्यूशन पर रेंडर किया जा सकता है. इसके अलावा, विज़ुअल क्वालिटी को बेहतर बनाने के लिए, रेंडरिंग को अपस्केल किया जा सकता है.
इन और अन्य ऑप्टिमाइज़ेशन के बारे में सिलसिलेवार निर्देश पाने के लिए, Android XR के लिए Unity परफ़ॉर्मेंस गाइड देखें.
नतीजा
आपके XR ऐप्लिकेशन की परफ़ॉर्मेंस, सिर्फ़ एक तकनीकी चेकबॉक्स नहीं है. इससे उपयोगकर्ताओं को अच्छा और दिलचस्प अनुभव मिलता है. इसके उलट, उन्हें खराब अनुभव मिल सकता है. हमने जिन ऑप्टिमाइज़ेशन के बारे में बताया है वे नए XR डिवाइसों पर, फ़्रेमरेट के अहम टारगेट को पूरा करने के लिए आपके टूलकिट हैं.
यहां आपके लिए रोडमैप दिया गया है:
- फ़ोविएटेड रेंडरिंग और Vulkan Subsampling का इस्तेमाल शुरू करें. XR के लिए खास तौर पर डिज़ाइन की गई इन सुविधाओं से, जीपीयू की परफ़ॉर्मेंस में तुरंत और काफ़ी सुधार होता है.
- अगर आपके पास ऐसी जटिल सीन हैं जिनमें बार-बार एक ही तरह की ज्यामिति या इंटीरियर स्पेस का इस्तेमाल किया गया है, तो जीपीयू रेज़िडेंट ड्रॉअर और ऑक्लूज़न कलिंग जोड़ें.
- परफ़ॉर्मेंस मेट्रिक एपीआई की मदद से, हर चीज़ को मॉनिटर करें. इससे यह पक्का किया जा सकेगा कि आपके बदलाव वाकई में मदद कर रहे हैं
- ज़्यादा परफ़ॉर्मेंस हेडरूम के लिए, URP के अन्य ऑप्टिमाइज़ेशन एक्सप्लोर करें
लगातार मेज़रमेंट करना और उसे दोहराना ज़रूरी है. हर ऑप्टिमाइज़ेशन से, हर प्रोजेक्ट को एक जैसा फ़ायदा नहीं मिलेगा. इसलिए, Performance Metrics API का इस्तेमाल करके यह जानें कि आपके इस्तेमाल के खास उदाहरण के लिए, कौनसी मेट्रिक सबसे ज़्यादा मददगार है.
इसके बाद क्या होगा: अपनी स्किल को बेहतर बनाना
और जानने के लिए तैयार हैं? ये संसाधन देखें:
- Android XR के लिए Unity की परफ़ॉर्मेंस गाइड - इसमें यहां बताई गई सभी सुविधाओं को लागू करने के बारे में सिलसिलेवार तरीके से पूरी जानकारी दी गई है.
- Unity और Android XR का इस्तेमाल शुरू करना - अपना डेवलपमेंट एनवायरमेंट सेट अप करें और बनाना शुरू करें.
- Android XR डेवलपर दस्तावेज़ - Android XR की सभी सुविधाओं के लिए पूरी जानकारी देने वाली गाइड
पढ़ना जारी रखें
-
प्रॉडक्ट से जुड़ी खबरें
हमें यह बताते हुए खुशी हो रही है कि Android XR के लिए, Unreal Engine और Godot के साथ काम करने की सुविधा उपलब्ध हो गई है. हम आपकी प्रॉडक्टिविटी बढ़ाने और नई XR सुविधाएं चालू करने के लिए, नए टूल भी लॉन्च कर रहे हैं: Android XR Engine Hub और Android XR Interaction Framework.
Luke Hopkins, Ryan Bartley • 4 मिनट में पढ़ें
-
प्रॉडक्ट से जुड़ी खबरें
हमने Google I/O 2026 में, Android को ऑपरेटिंग सिस्टम से इंटेलिजेंस सिस्टम में बदलने के बारे में बताया था. हमने यह भी दिखाया कि सिस्टम के साथ नेटिव तौर पर, बेहतर अनुभव कैसे बनाए जा सकते हैं. साथ ही, Google के एआई की सुविधाओं को अपने ऐप्लिकेशन में कैसे शामिल किया जा सकता है.
Jingyu Shi • दो मिनट में पढ़ें
-
प्रॉडक्ट से जुड़ी खबरें
Android 17 के रिलीज़ होने के साथ ही, हम अडैप्टिव फ़र्स्ट डेवलपमेंट स्टैंडर्ड पर माइग्रेट कर रहे हैं. आपके उपयोगकर्ता अब सिर्फ़ एक तरह के डिवाइस का इस्तेमाल नहीं करते. वे दिन भर में फ़ोन, फ़ोल्ड किए जा सकने वाले डिवाइस, टैबलेट, लैपटॉप, कार में लगे डिसप्ले, और इमर्सिव XR एनवायरमेंट के बीच स्विच करते रहते हैं.
Fahd Imtiaz • 4 मिनट में पढ़ें
अप-टू-डेट रहें
Android डेवलपमेंट से जुड़ी नई अहम जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.