מדריכים ספציפיים לפלטפורמות
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
כמפתחי אפליקציות AR, אתם רוצים לשלב בצורה חלקה את הווירטואלי עם הממשי עבור המשתמשים שלכם. כשמשתמש מציב אובייקט וירטואלי בסצנה שלו, הוא רוצה שהוא ייראה כאילו הוא שייך לעולם האמיתי. אם אתם מפתחים אפליקציה שבה משתמשים יכולים לקנות רהיטים, אתם רוצים שהם יהיו בטוחים שהכורסה שהם עומדים לקנות תתאים למרחב שלהם.
Depth API עוזר למצלמה של המכשיר להבין את הגודל והצורה של האובייקטים האמיתיים בסצנה. הוא יוצר תמונות עומק או מפות עומק, וכך מוסיף שכבת ריאליזם לאפליקציות. אפשר להשתמש במידע שמסופק על ידי תמונה עומק כדי לספק חוויות משתמש מרתקות ומציאותיות.
תרחישים לדוגמה לפיתוח באמצעות Depth API
Depth API יכול לשפר את ההיקף של אובייקטים, את מידת ההתמקדות בחוויה ואת האינטראקציות החדשניות, וכך לשפר את הריאליזם של חוויות ה-AR. ריכזנו כאן כמה דרכים שבהן תוכלו להשתמש בו בפרויקטים שלכם. כדי לראות דוגמאות לשימוש בנתוני עומק, כדאי לעיין בסצנות לדוגמה במעבדת העומק של ARCore, שבהן מוצגות דרכים שונות לגשת לנתוני עומק. אפליקציית Unity הזו היא בקוד פתוח ב-GitHub.
הפעלת חסימת פריטים
חסימת ראייה (occlusion) או עיבוד מדויק של אובייקט וירטואלי מאחורי אובייקטים בעולם האמיתי הם חיוניים לחוויית AR סוחפת. נניח שמישהו רוצה להציב את Andy הווירטואלי בסצנה שמכילה תא מטען ליד דלת. אם תבצעו עיבוד ללא חסימה, הדמות של אנדי תחפוף באופן לא מציאותי לקצה של הגזע. אם משתמשים בעומק של סצנה ומבינים כמה רחוק אנדי הווירטואלי ביחס לסביבה, כמו גזע העץ, אפשר ליצור עיבוד מדויק של אנדי עם חסימה (occlusion), כך שהוא ייראה הרבה יותר ריאליסטי בסביבה.
שינוי של סצנה
אתם יכולים להציג למשתמשים עולם חדש ומהפנט על ידי עיבוד של פתיתי שלג וירטואליים שיורדים על הידיות והכריות של הספות שלהם, או להציג את הסלון שלהם בתוך ערפל. אפשר להשתמש ב-Depth כדי ליצור סצנה שבה אורות וירטואליים יוצרים אינטראקציה עם אובייקטים אמיתיים, מסתירים מאחוריהם ומאירים אותם מחדש.
מרחק ועומק שדה
רוצים להראות שמשהו רחוק? אפשר להשתמש במדידה של המרחק ולהוסיף אפקטים של עומק שדה, כמו טשטוש הרקע או החזית של הסצנה, באמצעות Depth API.
הפעלת אינטראקציות של משתמשים עם אובייקטים ב-AR
מאפשרים למשתמשים "לגעת" בעולם דרך האפליקציה שלכם, על ידי הפעלת אינטראקציה בין תוכן וירטואלי לעולם האמיתי באמצעות התנגשויות ופיזיקה. אפשר להציג אובייקטים וירטואליים שעוברים מעל מכשולים בעולם האמיתי, או כדורי צביעה וירטואליים שמכים בעץ בעולם האמיתי ומותזים ממנו. שילוב של התנגשות מבוססת-עומק עם פיזיקה של משחקים יכול להפוך חוויה לריאליסטית.
שיפור בדיקות ההיט
אפשר להשתמש בעומק כדי לשפר את תוצאות בדיקת ההיט. בדיקות התנגשות של מישורים פועלות רק על משטחים מישוריים עם טקסטורה, בעוד שבדיקות התנגשות של עומק מפורטות יותר ופועלות גם באזורים לא מישוריים ובאזורים עם טקסטורה דלילה. הסיבה לכך היא שבבדיקות ההיט של עומק נעשה שימוש בנתוני עומק מהסצנה כדי לקבוע את העומק והכיוון הנכונים של נקודה.
בדוגמה הבאה, הדמויות הירוקות של אנדי מייצגות בדיקות היתכנות של מישורים רגילים, והדמויות האדומות של אנדי מייצגות בדיקות היתכנות של עומק.
אין לי מכשיר תואם
יש תמיכה ב-Depth API רק במכשירים עם עוצמת עיבוד שמאפשרת תמיכה בעומק, וצריך להפעיל אותו באופן ידני ב-ARCore, כפי שמתואר בקטע הפעלת עומק.
חלק מהמכשירים עשויים לכלול גם חיישן עומק בחומרה, כמו חיישן זמן תעופה (ToF). בדף מכשירים נתמכים של ARCore מופיעה רשימה עדכנית של מכשירים שתומכים ב-Depth API ורשימה של מכשירים שיש בהם חיישן עומק חומרה נתמך, כמו חיישן ToF.
תמונות עומק
Depth API משתמש באלגוריתם של עומק מתנועה כדי ליצור תמונות עומק, שמספקות תצוגה תלת-ממדית של העולם. כל פיקסל בתמונה עומק משויך למדידת המרחק של הסצנה מהמצלמה. האלגוריתם הזה מקבל כמה תמונות של המכשיר מזוויות שונות ומשויך אותן כדי להעריך את המרחק לכל פיקסל כשהמשתמש מזיז את הטלפון. המערכת משתמשת בלמידת מכונה באופן סלקטיבי כדי לשפר את עיבוד העומק, גם עם תנועה מינימלית של המשתמש. הוא גם מנצל את כל החומרה הנוספת שעשויה להיות במכשיר של המשתמש. אם במכשיר יש חיישן עומק ייעודי, כמו חיישן ToF, האלגוריתם ממזג באופן אוטומטי נתונים מכל המקורות הזמינים. כך אפשר לשפר את תמונת העומק הקיימת ולהפעיל את התכונה 'עומק' גם כשהמצלמה לא זזה. הוא גם מאפשר יצירת עומק טוב יותר על משטחים עם מעט תכונות או ללא תכונות כלל, כמו קירות לבנים, או בסצנות דינמיות עם אנשים או חפצים בתנועה.
בתמונות הבאות מוצגת תמונה ממצלמה של מסדרון עם אופניים על הקיר, וגם הדמיה של תמונת העומק שנוצרת מתמונות המצלמה. אזורים בצבע אדום קרובים יותר למצלמה, ואזורים בצבע כחול רחוקים יותר.
עומק לפי תנועה
נתוני העומק זמינים כשהמשתמש מזיז את המכשיר. האלגוריתם יכול לקבל אומדני עומק מדויקים ומקפים ממרחק של 0 עד 65 מטרים. התוצאות המדויקות ביותר מתקבלות כשהמכשיר נמצא במרחק של חצי מטר עד כ-5 מטרים מהסצנה בעולם האמיתי. חוויות שמעודדות את המשתמש להזיז את המכשיר יותר יניבו תוצאות טובות יותר.
צילום תמונות עומק
באמצעות Depth API, אפשר לאחזר תמונות עומק שתואמות לכל פריים במצלמה. לתמונה עומק שנרכשה יש את אותה חותמת זמן ואת אותם מאפיינים פנימיים של שדה הראייה כמו למצלמה. נתוני עומק תקינים זמינים רק אחרי שהמשתמש מתחיל להזיז את המכשיר, כי עומק מתקבל מתנועה. משטחים עם מעט תכונות או ללא תכונות כלל, כמו קירות לבנים, ישויכו לעומק לא מדויק.
מה השלב הבא?
- כדאי לעיין בשיעור ה-Lab בנושא עומק ב-ARCore, שבו מוצגות דרכים שונות לגשת לנתוני עומק.