عناصر افتراضية إضاءة واقعية في المشهد

توفّر واجهة برمجة التطبيقات Lighting Estimation API بيانات تفصيلية تتيح لك محاكاة إشارات الإضاءة المختلفة عند عرض الأجسام الافتراضية. يتيح ARCore ثلاثة أوضاع لتقدير الإضاءة:

  1. غير مفعّل
  2. وضع الإضاءة السينمائية
  3. وضع النطاق العالي الديناميكية (HDR) للبيئة

المتطلبات الأساسية

احرص على فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.

تفعيل ميزة "تقدير الإضاءة"

اتّبِع الخطوات التالية لتفعيل ميزة تقدير الإضاءة في تطبيقك.

  1. إعداد مشروع مؤسسة AR أو مشروع إضافات ARCore.
  2. في علامة التبويب "Hierarchy"، انتقِل إلى XR Session Origin > AR Camera.

  1. ضمن المكوّن AR Camera Manager، اختَر Light Estimation.
  2. في القائمة المنسدلة Light Estimation، اختَر الأوضاع التي تريد استخدامها.

تفعيل وضع "النطاق العالي الديناميكية في الإضاءة المنخفضة"

يفعِّل وضع النطاق العالي الديناميكية (HDR) البيئي إعدادات تقدير الإضاءة التالية:

يتم تفعيل هذا الوضع تلقائيًا عند استيفاء المعايير التالية:

تفعيل وضع "شدة الإضاءة السينمائية"

يتم تفعيل ميزة "تقدير الإضاءة الأساسية" تلقائيًا عند اختيار وضع كثافة الإضاءة السينمائية في مكوّن ARCameraManager.

يفعِّل وضع "شدة الإضاءة المحيطة" إعدادات تقدير الإضاءة التالية:

  • لون محيط
  • كثافة الإضاءة المحيطة

استخدام معلومات الإضاءة في المشهد

بعد ضبط إعدادات الإضاءة الصحيحة، يمكنك إضاءة الأجسام الافتراضية في المشهد كما لو كانت جزءًا من العالم الواقعي.

يمكن أن يرفع المكوِّن ARCameraManager حدث frameReceived الذي يقدّر ظروف إضاءة الإطارات عند تفعيل ميزة تقدير الإضاءة. يتم تخزين المعلومات من أحداث frameReceived في بنى ARCameraFrameEventArgs على هيئة ARLightEstimationData.

اتّبِع الخطوات التالية لتغيير مَعلمات الإضاءة أثناء التشغيل.

  1. أنشئ إضاءة اتجاهية حالية أو عدِّلها في المشهد.
  2. إرفاق نص برمجي جديد بمصباح الاتجاه

    // 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.
    }
    
  3. عدِّل هذا النص البرمجي الجديد لرصد التغييرات في الإضاءة. للحصول على أمثلة حول كيفية إجراء ذلك، اطّلِع على نصوص BasicLightEstimation.cs وHDRLightEstimation.cs في Unity.

استخدام أدوات استكشاف البيئة في المشهد

اتّبِع الخطوات التالية لتفعيل أدوات فحص البيئة في المشهد.

  1. فعِّل الموضع التلقائي للمشهد في المشهد ARSessionOrigin.
  2. أضِف مكوّن AREnvironmentProbeManager إلى ARSessionOrigin.