RED CROWNINTERACTIVEלייעוץ חינם
עב
תפריט

RED CROWN JOURNAL

אופטימיזציית ביצועים לאפליקציית Quest 3: אבחון קודם

טבלת אבחון לפני שינוי הנכסים

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

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

תקציב פריים הוא חישוב, לא ציון איכות

תקציב הזמן הנומינלי לפריים הוא 1,000 חלקי קצב הרענון שנבחר: ב-72Hz כ-13.9 מילישניות, ב-90Hz כ-11.1 וב-120Hz כ-8.3. זו דוגמה חשבונית, לא המלצה לקצב מסוים ולא הבטחה שכל הקצבים זמינים בכל תצורה. השאירו מרווח לעומס ולמערכת; ממוצע שעומד בתקציב עלול להסתיר קפיצות בודדות שמורגשות למשתמש.

Meta Quest Developer Hub כולל Performance Analyzer למדידה על המכשיר. שמרו גרסת אפליקציה, גרסת מערכת, הגדרות רינדור, מסלול בדיקה ומשך סשן לצד המדידה. לדוגמה: הפעילו את אותו רצף אחיזה וטעינה לפני ואחרי שינוי אחד. אל תשוו תוצאה מסצנה ריקה לבנייה מלאה ואל תציגו נתון מה-Editor כהוכחה לביצועי Quest.

מקור טכני: Meta - מדידת ביצועים ב-Quest Developer Hub.

למה Quest 3 דורש חשיבה אחרת

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

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

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

אופטימיזציית ביצועים לאפליקציית Quest 3 מתחילה במדידה

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

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

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

קבעו תרחיש שימוש לפני שמכוונים מדדים

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

גאומטריה ותאורה: איכות נראית אינה מספר הפוליגונים

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

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

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

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

קריאות ציור, חומרים ושקיפויות

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

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

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

זיכרון, טעינה והמערכת שמאחורי החוויה

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

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

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

אינטראקציה ומעקב ידיים הם חלק מתקציב הביצועים

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

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

איכות היא תהליך שחרור, לא תיקון חד-פעמי

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

מקורות טכניים

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