प्लैटफ़ॉर्म के हिसाब से गाइड
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
एआर ऐप्लिकेशन डेवलपर के तौर पर, आपको अपने उपयोगकर्ताओं के लिए वर्चुअल और असल दुनिया को एक साथ जोड़ना है. जब कोई उपयोगकर्ता अपने सीन में कोई वर्चुअल ऑब्जेक्ट रखता है, तो वह चाहता है कि वह ऑब्जेक्ट असली दुनिया का हिस्सा लगे. अगर आपको लोगों के लिए फ़र्नीचर खरीदने का ऐप्लिकेशन बनाना है, तो आपको यह पक्का करना होगा कि वे जिस आर्मचेयर को खरीदने वाले हैं वह उनके घर में फ़िट हो जाएगी.
डेप्थ एपीआई की मदद से, डिवाइस का कैमरा किसी सीन में मौजूद असली ऑब्जेक्ट के साइज़ और शेप को समझ पाता है. यह डेप्थ इमेज या डेप्थ मैप बनाता है. इससे आपके ऐप्लिकेशन में एक लेयर जुड़ जाती है, जो उन्हें ज़्यादा असली बनाती है. डेप्थ इमेज से मिली जानकारी का इस्तेमाल करके, उपयोगकर्ताओं को इमर्सिव और असली जैसा अनुभव दिया जा सकता है.
Depth API का इस्तेमाल करके ऐप्लिकेशन डेवलप करने के उदाहरण
Depth API की मदद से, ऑब्जेक्ट ऑक्लूज़न, बेहतर इमर्शन, और नए इंटरैक्शन किए जा सकते हैं. इससे एआर के अनुभव को ज़्यादा रियलिस्टिक बनाया जा सकता है. यहां कुछ ऐसे तरीके दिए गए हैं जिनसे इसे अपने प्रोजेक्ट में इस्तेमाल किया जा सकता है. डेप्थ एपीआई के काम करने के उदाहरण देखने के लिए, ARCore Depth Lab में मौजूद सैंपल सीन एक्सप्लोर करें. इससे पता चलता है कि डेप्थ डेटा को ऐक्सेस करने के अलग-अलग तरीके कौनसे हैं. यह Unity ऐप्लिकेशन, Github पर ओपन-सोर्स है.
ऑक्लूज़न की सुविधा चालू करना
ऑक्लूज़न या वर्चुअल ऑब्जेक्ट को असल दुनिया के ऑब्जेक्ट के पीछे सही तरीके से रेंडर करना, एआर के इमर्सिव अनुभव के लिए बहुत ज़रूरी है. मान लें कि कोई उपयोगकर्ता, वर्चुअल ऐंडी को किसी ऐसे सीन में रखना चाहता है जिसमें दरवाज़े के बगल में एक ट्रंक रखा हो. ऑक्लूज़न के बिना रेंडर किए जाने पर, ऐंडी, ट्रंक के किनारे के साथ अवास्तविक रूप से ओवरलैप करेगा. अगर आपको सीन की डेप्थ के बारे में पता है और यह समझ है कि वर्चुअल ऐंडी, लकड़ी के तने जैसी आस-पास की चीज़ों से कितनी दूर है, तो ऐंडी को सटीक तरीके से रेंडर किया जा सकता है. इससे वह आस-पास की चीज़ों के साथ ज़्यादा रियलिस्टिक दिखेगा.

किसी सीन को बदलना
अपने उपयोगकर्ता को एक नई, दिलचस्प दुनिया में ले जाएं. इसके लिए, वर्चुअल स्नोफ़्लेक रेंडर करें, ताकि वे सोफ़े की बाहों और तकियों पर जम जाएं. इसके अलावा, अपने लिविंग रूम को धुंधले कोहरे में बदलें. डेप्थ का इस्तेमाल करके, ऐसा सीन बनाया जा सकता है जिसमें वर्चुअल लाइटें, असली ऑब्जेक्ट के साथ इंटरैक्ट करती हैं, उनके पीछे छिप जाती हैं, और उन्हें फिर से रोशन करती हैं.
दूरी और डेप्थ ऑफ़ फ़ील्ड
क्या आपको यह दिखाना है कि कोई चीज़ बहुत दूर है? डेप्थ एपीआई की मदद से, दूरी को मेज़र किया जा सकता है. साथ ही, डेप्थ-ऑफ़-फ़ील्ड इफ़ेक्ट जोड़े जा सकते हैं. जैसे, किसी सीन के बैकग्राउंड या फ़ोरग्राउंड को धुंधला करना.
एआर ऑब्जेक्ट के साथ उपयोगकर्ता के इंटरैक्शन चालू करना
अपने ऐप्लिकेशन के ज़रिए, उपयोगकर्ताओं को दुनिया को “छूने” का मौका दें. इसके लिए, वर्चुअल कॉन्टेंट को असल दुनिया के साथ इंटरैक्ट करने की सुविधा चालू करें. ऐसा टक्कर और फ़िज़िक्स के ज़रिए किया जा सकता है. वर्चुअल ऑब्जेक्ट को असल दुनिया की रुकावटों के ऊपर से गुज़रते हुए दिखाएं या वर्चुअल पेंटबॉल को असल दुनिया के पेड़ पर टकराते हुए और बिखरते हुए दिखाएं. डेप्थ-आधारित टकराव को गेम के फ़िज़िक्स के साथ मिलाकर, गेम को और भी ज़्यादा दिलचस्प बनाया जा सकता है.
हिट-टेस्ट को बेहतर बनाना
डेप्थ का इस्तेमाल, हिट-टेस्ट के नतीजों को बेहतर बनाने के लिए किया जा सकता है. प्लेन हिट-टेस्ट सिर्फ़ टेक्सचर वाले प्लैनर सर्फ़ेस पर काम करते हैं. वहीं, डेप्थ हिट-टेस्ट ज़्यादा बेहतर होते हैं और ये नॉन-प्लैनर और कम टेक्सचर वाले इलाकों में भी काम करते हैं. ऐसा इसलिए होता है, क्योंकि डेप्थ हिट-टेस्ट, सीन से डेप्थ की जानकारी का इस्तेमाल करते हैं. इससे किसी पॉइंट की सही डेप्थ और ओरिएंटेशन का पता चलता है.
यहां दिए गए उदाहरण में, हरे रंग के ऐंडी स्टैंडर्ड प्लेन हिट-टेस्ट को दिखाते हैं. वहीं, लाल रंग के ऐंडी डेप्थ हिट-टेस्ट को दिखाते हैं.
मेरे डिवाइस पर यह सुविधा काम नहीं करती
Depth API सिर्फ़ उन डिवाइसों पर काम करता है जिनमें डेप्थ को प्रोसेस करने की क्षमता होती है. साथ ही, इसे ARCore में मैन्युअल तरीके से चालू करना होता है. इसके बारे में डेप्थ की सुविधा चालू करना लेख में बताया गया है.
कुछ डिवाइसों में हार्डवेयर डेप्थ सेंसर भी हो सकता है. जैसे, टाइम-ऑफ़-फ़्लाइट (टीओएफ़) सेंसर. ARCore की सुविधा वाले डिवाइस पेज पर जाएं. यहां आपको उन डिवाइसों की अप-टू-डेट सूची मिलेगी जिन पर Depth API काम करता है. साथ ही, आपको उन डिवाइसों की सूची भी मिलेगी जिनमें हार्डवेयर डेप्थ सेंसर काम करता है. जैसे, ToF सेंसर.
डेप्थ इमेज
Depth API, डेप्थ इमेज बनाने के लिए डेप्थ-फ़्रॉम-मोशन एल्गोरिदम का इस्तेमाल करता है. इससे दुनिया का 3D व्यू मिलता है. डेप्थ इमेज में मौजूद हर पिक्सल, इस बात से जुड़ा होता है कि सीन, कैमरे से कितनी दूर है. यह एल्गोरिदम, अलग-अलग ऐंगल से ली गई डिवाइस की कई इमेज लेता है. इसके बाद, उनकी तुलना करता है. इससे यह अनुमान लगाया जाता है कि जब कोई उपयोगकर्ता अपने फ़ोन को घुमाता है, तो हर पिक्सल की दूरी कितनी होती है. यह मशीन लर्निंग का इस्तेमाल करके, डेप्थ प्रोसेसिंग को बेहतर बनाता है. ऐसा तब भी किया जा सकता है, जब उपयोगकर्ता की ओर से कम से कम मोशन हो. यह उपयोगकर्ता के डिवाइस में मौजूद किसी भी अतिरिक्त हार्डवेयर का भी फ़ायदा उठाता है. अगर डिवाइस में डेप्थ सेंसर (जैसे, ToF) मौजूद है, तो एल्गोरिदम सभी उपलब्ध सोर्स से मिले डेटा को अपने-आप मर्ज कर देता है. इससे मौजूदा डेप्थ इमेज बेहतर होती है. साथ ही, कैमरा न हिलने पर भी डेप्थ इमेज मिलती है. यह उन सतहों पर भी बेहतर डेप्थ उपलब्ध कराता है जिनमें कम या कोई सुविधा नहीं होती है. जैसे, सफ़ेद दीवारें या लोगों या चीज़ों के हिलने-डुलने वाले डाइनैमिक सीन.
नीचे दी गई इमेज में, दीवार पर साइकिल के साथ हॉलवे की कैमरा इमेज और कैमरा इमेज से बनाई गई डेप्थ इमेज का विज़ुअलाइज़ेशन दिखाया गया है. लाल रंग वाले हिस्से, कैमरे के ज़्यादा करीब होते हैं. वहीं, नीले रंग वाले हिस्से, कैमरे से ज़्यादा दूर होते हैं.

मोशन से डेप्थ का पता लगाना
जब उपयोगकर्ता अपने डिवाइस को घुमाता है, तब डेप्थ डेटा उपलब्ध होता है. यह एल्गोरिदम, 0 से 65 मीटर की दूरी पर मौजूद ऑब्जेक्ट की गहराई का सटीक अनुमान लगा सकता है. सबसे सटीक नतीजे तब मिलते हैं, जब डिवाइस को असल दुनिया के सीन से आधा मीटर से लेकर पांच मीटर की दूरी पर रखा जाता है. ऐसे अनुभव जिनमें उपयोगकर्ता को अपने डिवाइस को ज़्यादा हिलाने के लिए कहा जाता है उनसे बेहतर नतीजे मिलेंगे.
डेप्थ इमेज पाना
Depth API की मदद से, डेप्थ इमेज को वापस पाया जा सकता है. ये इमेज, कैमरे के हर फ़्रेम से मेल खाती हैं. डेप्थ इमेज का टाइमस्टैंप और फ़ील्ड ऑफ़ व्यू इंट्रिंसिक, कैमरे के टाइमस्टैंप और फ़ील्ड ऑफ़ व्यू इंट्रिंसिक के बराबर होता है. डेप्थ डेटा सिर्फ़ तब उपलब्ध होता है, जब उपयोगकर्ता अपने डिवाइस को घुमाना शुरू कर देता है. ऐसा इसलिए, क्योंकि डेप्थ की जानकारी मोशन से मिलती है. जिन सतहों पर कम या कोई सुविधा नहीं होती है, जैसे कि सफ़ेद दीवारें, उन्हें सटीक डेप्थ के साथ नहीं दिखाया जाएगा.
अब क्या होगा
- ARCore Depth Lab देखें. इसमें डेप्थ डेटा को ऐक्सेस करने के अलग-अलग तरीके दिखाए गए हैं.