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

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

  1. غير مفعَّل
  2. وضع "كثافة الإضاءة"
  3. وضع النطاق العالي الديناميكية البيئي

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

قبل المتابعة، تأكد من فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore.

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

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

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

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

تفعيل وضع "النطاق العالي الديناميكية البيئي"

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

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

تفعيل "وضع كثافة الإضاءة المحيطة"

يتم تفعيل ميزة "تقدير الإضاءة الأساسية" تلقائيًا عند اختيار وضع كثافة الإضاءة في المكوِّن 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.