توفّر واجهة برمجة التطبيقات Lighting Estimation API بيانات تفصيلية تتيح لك محاكاة إشارات الإضاءة المختلفة عند عرض الأجسام الافتراضية. يتيح ARCore ثلاثة أوضاع لتقدير الإضاءة:
المتطلبات الأساسية
احرص على فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.
تفعيل ميزة "تقدير الإضاءة"
اتّبِع الخطوات التالية لتفعيل ميزة تقدير الإضاءة في تطبيقك.
- إعداد مشروع مؤسسة AR أو مشروع إضافات ARCore.
- في علامة التبويب "Hierarchy"، انتقِل إلى XR Session Origin > AR Camera.
- ضمن المكوّن AR Camera Manager، اختَر Light Estimation.
- في القائمة المنسدلة Light Estimation، اختَر الأوضاع التي تريد استخدامها.
تفعيل وضع "النطاق العالي الديناميكية في الإضاءة المنخفضة"
يفعِّل وضع النطاق العالي الديناميكية (HDR) البيئي إعدادات تقدير الإضاءة التالية:
- اتجاه الضوء الرئيسي
- كثافة الإضاءة الرئيسية
- التوافقيات الكروية المحيطة
يتم تفعيل هذا الوضع تلقائيًا عند استيفاء المعايير التالية:
- يتم اختيار التوافقيات الكروية المحيطة و/أو اتجاه الإضاءة الرئيسية و/أو شدة الإضاءة الرئيسية في وضع "تقدير الإضاءة" الذي يوفّره مدير كاميرا الواقع المعزّز.
- تم تفعيل مسبارات البيئة في
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. }
عدِّل هذا النص البرمجي الجديد لرصد التغييرات في الإضاءة. للحصول على أمثلة حول كيفية إجراء ذلك، اطّلِع على نصوص
BasicLightEstimation.cs
وHDRLightEstimation.cs
في Unity.
استخدام أدوات استكشاف البيئة في المشهد
اتّبِع الخطوات التالية لتفعيل أدوات فحص البيئة في المشهد.
- فعِّل الموضع التلقائي للمشهد في المشهد
ARSessionOrigin
. - أضِف مكوّن
AREnvironmentProbeManager
إلىARSessionOrigin
.