Lighting Estimation API, ज़्यादा जानकारी वाला डेटा उपलब्ध कराता है. इसकी मदद से, वर्चुअल ऑब्जेक्ट को रेंडर करते समय, रोशनी की अलग-अलग चीज़ों की नकल की जा सकती है. ARCore में, लाइट का अनुमान लगाने के तीन मोड काम करते हैं:
ज़रूरी शर्तें
आगे बढ़ने से पहले, पक्का करें कि आपने एआर के बुनियादी कॉन्सेप्ट और ARCore सेशन को कॉन्फ़िगर करने का तरीका समझ लिया हो.
लाइटिंग का अनुमान लगाने की सुविधा चालू करना
अपने ऐप्लिकेशन में रोशनी का अनुमान लगाने की सुविधा चालू करने के लिए, यह तरीका अपनाएं.
- AR Foundation प्रोजेक्ट या ARCore एक्सटेंशन प्रोजेक्ट सेट अप करें.
- Hierarchy टैब में, XR Session Origin > AR Camera पर जाएं.
- AR Camera Manager कॉम्पोनेंट में जाकर, Light Estimation चुनें.
- Light Estimation ड्रॉप-डाउन मेन्यू में, वह मोड चुनें जिसका इस्तेमाल करना है.
आस-पास के माहौल के हिसाब से एचडीआर मोड चालू करना
एनवायरमेंटल एचडीआर मोड, रोशनी का अनुमान लगाने वाली इन सेटिंग को चालू करता है:
- मुख्य लाइट डायरेक्शन
- मुख्य लाइट की रोशनी
- ऐंबियंट स्फ़ीरिकल हार्मोनिक्स
यह मोड इन शर्तों को पूरा करने पर अपने-आप चालू हो जाता है:
- एआर कैमरा मैनेजर की मदद से, लाइट का अनुमान लगाने वाले मोड में, ऐंबियंट स्फ़ीरिकल हार्मोनिक्स, मुख्य लाइट की दिशा, और/या मुख्य लाइट की तीव्रता को चुना जाता है
- एनवायरमेंट प्रोब,
AREnvironmentProbeManager
में चालू होते हैं - काम करने वाला कैमरा कॉन्फ़िगरेशन चुना गया हो
ऐंबियंट इंटेंसिटी मोड चालू करना
ARCameraManager
कॉम्पोनेंट में ऐंबियंट इंटेंसिटी मोड चुनने पर, लाइट का अनुमान लगाने की बुनियादी सुविधा अपने-आप चालू हो जाती है.
रोशनी का अनुमान लगाने वाली ये सेटिंग, ऐंबियंट इंटेंसिटी मोड में चालू होती हैं:
- Ambient Color
- स्क्रीन की रोशनी
अपने सीन में रोशनी की जानकारी का इस्तेमाल करना
लाइटिंग की सही सेटिंग मिलने के बाद, अपने सीन में वर्चुअल ऑब्जेक्ट को इस तरह से रोशन किया जा सकता है जैसे वे असल दुनिया का हिस्सा हों.
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
कॉम्पोनेंट जोड़ें.