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

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.