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