אובייקטים וירטואליים מציאותיים בסצנה

ה-Lighting Estimation API מספק נתונים מפורטים שמאפשרים לחקות סימנים שונים של תאורה כשמעבדים אובייקטים וירטואליים. ב-ARCore יש תמיכה בשלושה מצבים של הערכת אור:

  1. מושבת
  2. מצב תאורת אווירה
  3. מצב HDR סביבתי

דרישות מוקדמות

חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואיך להגדיר סשן ARCore לפני שממשיכים.

הפעלה של הערכת התאורה

כדי להפעיל את הערכת התאורה באפליקציה, יש לפעול לפי השלבים הבאים.

  1. מגדירים פרויקט AR Foundation או פרויקט תוספי ARCore.
  2. בכרטיסייה Hierarchy, עוברים אל XR Session Origin > AR Camera.

  1. מתחת לרכיב AR Camera Manager, בוחרים באפשרות Light Estimation.
  2. בתפריט הנפתח Light Estimation, בוחרים את המצבים שבהם רוצים להשתמש.

הפעלת מצב HDR בסביבה

מצב HDR סביבתי מאפשר את ההגדרות הבאות של הערכת התאורה:

המצב הזה מופעל באופן אוטומטי אם התנאים הבאים מתקיימים:

הפעלת מצב תאורת אווירה

הערכת האור הבסיסית מופעלת באופן אוטומטי כשבוחרים באפשרות מצב תאורת אווירה ברכיב ARCameraManager.

במצב 'תאורת אווירה' אפשר לקבוע את ההגדרות הבאות להערכת התאורה:

  • Ambient Color
  • עוצמת הסביבה

איך משתמשים במידע על תאורה בסביבה

אחרי שקובעים את הגדרות התאורה הנכונות, אפשר להאיר את החפצים הווירטואליים בסצנה כאילו הם חלק מהעולם האמיתי.

הרכיב 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.