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