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