עומק מוסיף ריאליזם

מדריכים ספציפיים לפלטפורמה

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

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

תרחישים לדוגמה לפיתוח באמצעות Depth API

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

הפעלת חסימת פריימים

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

טרנספורמציה של סצנה

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

מרחק ועומק שדה

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

הפעלת אינטראקציות של משתמשים עם אובייקטים ב-AR

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

שיפור בדיקות ההיט

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

בדוגמה הבאה, דמויות אנדי הירוקות מייצגות בדיקות היטים רגילות של מישורים, ודמויות אנדי האדומות מייצגות בדיקות היטים של עומק.

אין לי מכשיר תואם

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

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

תמונות עומק

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

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

עומק לפי תנועה

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

צילום תמונות עומק

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

מה השלב הבא?