लाइटिंग एस्टीमेशन एपीआई ज़्यादा जानकारी वाला डेटा देता है. इसकी मदद से, वर्चुअल ऑब्जेक्ट को रेंडर करते समय, अलग-अलग लाइटिंग संकेतों की नकल की जा सकती है. ARCore, तीन तरह की लाइट का अनुमान लगाने वाले मोड के साथ काम करता है:
- अक्षम किया गया
- ऐंबियंट इंटेंसिटी मोड
- एनवायरमेंटल एचडीआर मोड
ज़रूरी शर्तें
आगे बढ़ने से पहले, पक्का करें कि आपने बुनियादी एआर (ऑगमेंटेड रिएलिटी) सिद्धांत और ARCore सेशन को कॉन्फ़िगर करने का तरीका समझ लिया है.
रोशनी का अनुमान लगाने की सुविधा चालू करें
अपने ऐप्लिकेशन में रोशनी का अनुमान लगाने की सुविधा चालू करने के लिए, यह तरीका अपनाएं.
- AR Foundation प्रोजेक्ट या ARCore एक्सटेंशन प्रोजेक्ट सेट अप करें.
- Hierarchy टैब में, XR Session Origin > AR Camera पर जाएं.
- AR Camera Manager कॉम्पोनेंट में जाकर, Light Estimation चुनें.
- Light Estimation ड्रॉप-डाउन मेन्यू में, वह मोड चुनें जिसे इस्तेमाल करना है.
एनवायरमेंटल एचडीआर मोड चालू करें
एनवायरमेंटल एचडीआर मोड, रोशनी का अनुमान लगाने वाली इन सेटिंग को चालू करता है:
- मुख्य लाइट डायरेक्शन
- मुख्य लाइट की चमक
- एंबिएंट स्फ़ेरिकल हार्मोनिक्स
इन शर्तों के पूरा होने पर, यह मोड अपने-आप चालू हो जाता है:
- ऐंबियंट स्फ़ेरिकल हार्मोनिक्स, मेन लाइट डायरेक्शन, और/या लाइट इंटेंसिटी को एआर कैमरा मैनेजर से मिलने वाले लाइट एस्टिमेशन मोड में चुना जाता है
- परिवेश जांच
AREnvironmentProbeManager
में चालू होती है - कैमरा कॉन्फ़िगरेशन के साथ काम करने वाला कोई कॉन्फ़िगरेशन चुना गया
स्क्रीन को हमेशा चालू रखने वाले मोड की इंटेंसिटी मोड चालू करें
जब ARCameraManager
कॉम्पोनेंट में ऐंबियंट इंटेंसिटी मोड चुना जाता है, तो रोशनी का बुनियादी अनुमान अपने-आप चालू हो जाता है.
ऐंबियंट इंटेंसिटी मोड में, रोशनी का अनुमान लगाने वाली ये सेटिंग चालू की जाती हैं:
- ऐंबियंट कलर
- ऐंबियंट इंटेंसिटी
अपने सीन में रोशनी की जानकारी इस्तेमाल करें
सही लाइटिंग सेटिंग तय कर लेने के बाद, सीन में वर्चुअल ऑब्जेक्ट को इस तरह से चालू किया जा सकता है जैसे कि वे असल दुनिया का हिस्सा हों.
ARCameraManager
कॉम्पोनेंट, frameReceived
इवेंट को बढ़ा सकता है. इससे, रोशनी का अनुमान लगाने की सुविधा चालू होने पर, फ़्रेम की रोशनी की स्थिति का अनुमान लगाया जा सकता है. frameReceived
इवेंट की जानकारी को ARCameraFrameEventArgs
निर्देशों में ARLightEstimationData
के तौर पर सेव किया जाता है.
रनटाइम के दौरान लाइट के पैरामीटर बदलने के लिए, यह तरीका अपनाएं.
- अपने सीन में पहले से मौजूद डायरेक्शनल लाइट बनाएं या उसमें बदलाव करें.
डायरेक्शनल लाइट में एक नई स्क्रिप्ट अटैच करें.
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
रोशनी में होने वाले बदलावों का पता लगाने के लिए, इस नई स्क्रिप्ट में बदलाव करें. इसे कैसे करना है, इसके उदाहरण देखने के लिए, Unity की
BasicLightEstimation.cs
औरHDRLightEstimation.cs
स्क्रिप्ट देखें.
सीन में पर्यावरण की जांच का इस्तेमाल करें
अपने सीन में परिवेश की जांच चालू करने के लिए, यह तरीका अपनाएं.
- अपने सीन के
ARSessionOrigin
में, ऑटोमैटिक प्लेसमेंट (विज्ञापन के लिए अपने-आप सही जगह ढूंढने वाली सुविधा) चालू करें. ARSessionOrigin
में कोईAREnvironmentProbeManager
कॉम्पोनेंट जोड़ें.