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

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

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

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

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

הפעלת אומדן התאורה

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

  1. מגדירים פרויקט AR Foundation או פרויקט ARCore Extensions.
  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. יוצרים או משנים את תאורת ה-Directional Light הקיימת בסצנה.
  2. מחברים סקריפט חדש ל-Directional Light.

    // 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.