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