שימוש בהערכת תאורה באמצעות מודלים של סצינה

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

רמזים ותאורה לתאורה

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

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

אנו יכולים לתאר את הסימנים הוויזואליים הבאים:

  • תאורת אווירה. תאורת רקע היא האור המפוזר הכולל שמגיע מסביבה, ומאיר הכול.

  • צלליות. צלליות הן בדרך כלל כיווניות ומספרות לצופים מאיפה מגיעים מקורות התאורה.

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

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

  • השתקפות. שיעור העזיבה משתנה בין פלטפורמות שונות, בהתאם לשטח שבו יש מאפיינים ספקולטיביים (כלומר השתקפויים מאוד) או גוונים (לא רפלקטיביים). לדוגמה, כדור מתכתי יהיה ספקולטיבי מאוד וישקף את הסביבה שלו, וכדור אחר שצבוע בגוון מט מעומעם יהיה מפוזר. לרוב האובייקטים בעולם יש שילוב של המאפיינים האלה – חשבו על כדור באולינג מבולגן או כרטיס אשראי משומש.

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

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

ב-Config.LightEstimationMode API יש מצבים שמעריכים תאורה בסביבה עם רמות שונות של גרעיניות ומציאותיות.

  • מצב HDR סביבתי (ENVIRONMENTAL_HDR). המצב הזה כולל ממשק API שמאפשר לבצע הערכות תאורה מציאותיות עבור תאורה כיוונית, צלליות, הדגשות ספקולטיביות והשתקפויות.

  • מצב עוצמת האוויר (AMBIENT_INTENSITY). המצב הזה קובע את עוצמת הפיקסלים הממוצעת ואת צבע התאורה לתמונה נתונה. ההגדרה הזו היא גסה, והיא מיועדת למקרים שבהם התאורה המדויקת לא קריטית, כמו אובייקטים עם תאורה לאפייה.

  • DISABLED. אפשר להשבית את Config.LightEstimationMode אם התאורה תואמת לסביבה נתונה, לא רלוונטית לסצנה או לאובייקט.

נעשה שימוש במצב ENVIRONMENTAL_HDR

במצב ENVIRONMENTAL_HDR נעשה שימוש בלמידה חישובית כדי לנתח את תמונת המצלמה ולסנתז תאורה סביבתית כדי לעבד אובייקט וירטואלי.

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

  • תאורה מכוונת מנתחת את מקור האור הנראה של תמונה נתונה. סוג זה של תאורה מוסיף גוונים ספקולטיביים במיקום סביר, ומטיל צלליות בכיוון שתואם לאובייקטים אמיתיים גלויים אחרים.

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

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

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

הגדרת מצב ENVIRONMENTAL_HDR לסצנה ב-Squareform

כדי להשתמש ב-ENVIRONMENTAL_HDR עם סצנה של סצינה, אפשר להרחיב את המחלקה ARFragment ולשנות את ההגדרות באופן הבא:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.ENVIRONMENTAL_HDR);
  return config;
}

כדי לראות דוגמה איך זה עובד, אפשר לעיין בדוגמה למערכת השמש. (דוגמה זו מיושמת ENVIRONMENTAL_HDR ללא שימוש ב-ARFragment.)

נעשה שימוש במצב AMBIENT_INTENSITY

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

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

  • סקאלים לתיקון צבע מזהים את האיזון הלבן של כל פריים בנפרד ומאפשרים לכם לתקן צבע של אובייקט וירטואלי כך שישתלב בצורה חלקה יותר בצביעה הכוללת של סצנה.

הגדרת מצב AMBIENT_INTENSITY לסצנה ב-Squareform

כדי להשתמש ב-AMBIENT_INTENSITY עם סצנה של סצינה, אפשר להרחיב את המחלקה ARfragment ולשנות את ההגדרות באופן הבא:

@Override
protected Config getSessionConfiguration(Session session) {
  Config config = new Config(session);
  config.setLightEstimationMode(Config.LightEstimationMode.AMBIENT_INTENSITY);
  return config;
}