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