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

توفّر 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) البيئي

يفعِّل وضع النطاق العالي الديناميكية (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.