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