שיקולי ביצועים

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

עליכם לוודא שהאפליקציה:

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

שיטות מומלצות לשיפור הביצועים

כדי ליצור חוויות AR מרתקות יותר, כדאי להשתמש בשיטות המומלצות הבאות בתהליך התכנון.

שימוש במודעות עוגן לשיפור הביצועים של המעקב

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

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

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

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

  • מעבד (CPU)/מעבד גרפי (GPU) של המכשיר, מהירות שעון
  • זיכרון ורוחב פס זמינים
  • איכות חיישן המצלמה/IMU
  • הבדלים אחרים בחומרה
  • מנהלי התקנים של מערכת הפעלה ומכשירים

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

השבתת תכונות עתירות מעבד (CPU) כשהן לא בשימוש

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

נכון לעכשיו, השימוש במעבד (CPU) של ARCore גדל כאשר Instant Placement ו/או Augmented Images מופעל עבור הסשן הנוכחי. מעקב לשיפור היעילות של ניצול המעבד:

  • ברגע שהמעקב המלא יופסק, יש להשבית את Instant Placement נוצרה. אפשר להשבית את התכונה בהגדרות הסשן.

  • יש להשבית את Augmented Images כאשר התכונה לא נדרשת לחוויית ה-AR שלכם. כדי להשבית תמונות מרובות, צריך להגדיר null או ריקון מסד הנתונים של התמונות המורחבות בהגדרת הסשן.

מעקב אחר תרמיות של מכשירים

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

צריך להקפיד להשתמש בגרסת ייצור של האפליקציה (ולא בפיתוח או qa בגרסת האפליקציה שעשויה להיות עם ביצועים שונים בזמן הריצה למאפיינים.

זיהוי מצב של מחסור ב-CPU ב-ARCore

כשסשן ב-ARCore פעיל, האפליקציה שלך חייבת לשתף GPU ומעבד (CPU) מוגבלים בנייד עם ARCore. אפליקציות שמשתמשות ב-CPU יכולות להתחרות על משאבי ה-CPU שנדרשים למעקב אחר תנועה.

כדי לאמת ש-ARCore לוקליזציה ומיפוי בו-זמנית (SLAM) יכול לפעול כרגיל, צריך לוודא שתדירות ה-VIO נמוכה. הודעה לא מופיעה ביומנים של מכשיר Android:

adb logcat | grep 'VIO frequency low'

הימנעות ממצב של מחסור ב-CPU ב-ARCore

כשסשן ב-ARCore פעיל, האפליקציה שלך חייבת לשתף GPU ומעבד (CPU) מוגבלים בנייד מכשיר משאבים עם ARCore. אפליקציות שקשורות למעבד (CPU) יכולות להתחרות במשאבי המעבד (CPU) שנדרש למעקב אחר תנועה.

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

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

הגבלת מספר הבקשות לסטרימינג מהמצלמה

כשמשתמשים במצלמה משותפת של Java, אפליקציות יכולות לבקש שידורי תמונה נוספים במעבד (CPU) או ב-GPU.