בתערוכת רכב אחרונה במינסק, צפינו בצוות שמשיק עמדת VR עם משקפת אחת ומחשב נייד אחד. המבקר הראשון ראה מסך טעינה במשך שתי דקות. השני צילם צילום מסך של שולחן העבודה של Windows ועזב. המציג איבד עשרה לידים בשעה אחת.
אנחנו בונים עמדות VR לאירועי רכב ששורדות קהל. הגישה שלנו מבוססת על ארכיטקטורה מוצקה, תקציב ביצועים וסנכרון. מאמר זה מסביר כיצד אנחנו עושים זאת ומה אנחנו צריכים מכם כדי להתחיל.
למה עמדת VR לתערוכת רכב נכשלת ללא תקציב ביצועים
רוב חוויות ה-VR בתערוכות נבנות כדמואים: סצנה אחת, משקפת אחת, ללא בקרת טעינה. בתערוכה, אותה סצנה רצה במשך שמונה שעות. דליפות זיכרון הופכות לגלויות, קצבי הפריימים יורדים, והמשקפת מאתחלת באמצע הדמו.
אנחנו קובעים תקציב ביצועים בהתחלה. עבור פרויקט Unity, אנחנו מגבילים קריאות ציור ל-300 לפריים, שומרים על ספירת משולשים מתחת ל-500 אלף, ומקצים 2 GB של זיכרון GPU. היעד הוא 90 fps יציב על HTC Vive Pro 2. אם הלקוח רוצה Quest 3 עצמאי, אנחנו חותכים את התקציב בחצי.
מה כולל תקציב הביצועים?
אנחנו מפרטים את המגבלות שאנחנו בודקים לפני כל בנייה:
- זמן פריים CPU מתחת ל-8 אלפיות השנייה
- זמן פריים GPU מתחת ל-6 אלפיות השנייה
- קריאות ציור מתחת ל-300
- טקסטורות מתחת ל-2 GB
- זמן טעינת סצנה מתחת ל-2.5 שניות
מה אנחנו משלבים בעמדת VR לתערוכת רכב
עמדה לבדה לא מוכרת מכוניות. צריך מעקב תנועה, בקרות אינטראקטיביות, ניהול מרחוק ואנליטיקה. הנה הסט המרכזי שאנחנו בדרך כלל משלבים.
סנכרון רב-משתמשים
אנחנו מחברים מספר משקפות לסצנה אחת באמצעות Photon או סנכרון UDP מותאם אישית. כשמבקר מסובב גלגל מכונית, כל שאר המשקפות רואות את אותו סיבוב. זמן ההשהיה בסנכרון נשאר מתחת ל-100 אלפיות השנייה ברשת מקומית.
עבור עמדת תערוכת הרכב, אנחנו בדרך כלל תומכים בעד ארבע משקפות בסצנה אחת. כל משקפת מקבלת אזור משחק משלה, והחוויה המשותפת היא מכונית על פלטפורמה מסתובבת. עיצוב זה מפחית תעבורת רשת ומונע חפיפה של אזורי משחק.
מעקב מבקרים ואנליטיקת קהל
אנחנו מוסיפים מונה פשוט מבוסס מצלמה שמזהה את מיקום ראש המבקר וגובה גופו. נתונים אלה זורמים ללוח מחוונים. אנחנו יכולים לדעת איזו פינה בעמדה מקבלת הכי הרבה תשומת לב וכמה זמן מבקר מסתכל על דגם מכונית ספציפי.
אנחנו גם משתלבים עם ה-CRM של המציג. כשמבקר מסיים את סיור ה-VR, המערכת שולחת ליד עם התצורה שנבחרה ואימייל המבקר אם המבקר סיפק אותו בעמדה.
מערכת עדכון תוכן דינמי
מארגני תערוכות משנים לעתים קרובות את התצורה בלילה שלפני. אנחנו בונים מטעין תוכן דינמי שמושך מודלי מכוניות משרת אינטרנט. אין צורך בהידור מחדש.
המטעין בודק מניפסט JSON בעת ההפעלה, מוריד נכסים חדשים ומחליף אותם בזמן ריצה. זה משמש גם לסיבוב מבצעים מיוחדים או להבאת דגם מכונית חדש לעמדה ללא כיבוי החוויה.
איך אנחנו מייעלים את ביצועי עמדת VR לתערוכת רכב
צוואר הבקבוק העיקרי לעמדת VR לרכב הוא לא מודל המכונית, אלא התאורה וההשתקפויות. סביבת תצוגה עם צבע מלוטש וכרום דורשת השתקפויות בזמן אמת, שהן יקרות.
אנחנו פותרים זאת ב-Unreal Engine עם ray tracing חומרתי וב-Unity עם השתקפויות מסך ומפות אור אפויות לפי אזור. הטריק הוא לשמור על רקע מואר סטטי ולהשתמש רק בהשתקפויות דינמיות על המכונית.
הנה מקרה אמיתי. לקוח מתחום הרכב הביא סצנה שלקחה 14.6 שניות לטעון וירדה ל-20 fps באזור התצוגה. הרצנו פרופילר, מצאנו 1,200 קריאות ציור ו-4 GB של טקסטורות לא דחוסות. הקטנו את רזולוציית הטקסטורות, הפעלנו GPU instancing לקהל ועברנו לנכסים ניתנים לכתובת. זמן הטעינה ירד ל-2.1 שניות, קצב הפריימים עלה ל-90 fps. על הרצפה, העמדה עבדה שלושה ימים ללא אתחול.
תהליך הייעול מתחיל בפרופילינג. אנחנו משתמשים ב-RenderDoc וב-Unity Profiler כדי לזהות צווארי בקבוק. אנחנו בודקים את זמן הפריים של כל מערכת, מפיזיקה ועד ממשק משתמש. טעות נפוצה היא overdraw מאפקטים של מסך מלא. אנחנו מחליפים אותם בגרסאות מוגבלות רוחב פס או מורידים את קנה המידה של העיבוד בפריפריה.
לעמדות רב-משתמשים, אנחנו גם מייעלים תעבורת רשת. אנחנו דוחסים טרנספורמציות למספרים שלמים של 16 ביט ושולחים עדכונים ב-30 הרץ במקום 90 הרץ. זה מוריד את רוחב הפס מ-5 Mbps ל-0.8 Mbps למשקפת ללא ירידה מורגשת באיכות.
טיפול בזיכרון טקסטורות
טקסטורות הן צרכן הזיכרון הגדול ביותר בסצנת רכב. חומר PBR אחד של 4K לגוף מכונית יכול לקחת 300 MB. אנחנו משתמשים בהזרמת טקסטורות ו-mipmaps כדי לטעון רק את החלקים הנראים. המכונית עצמה נשארת ברזולוציה גבוהה, אבל הקהל והרקע מוגדרים לטקסטורות של 1K.
אנחנו גם משתמשים ב-shader מותאם אישית שממזג את השתקפויות הרצפה עם מפת סביבה ברזולוציה נמוכה. זה נותן תחושת תצוגה משכנעת ללא מראה בזמן אמת.
כוונון השהיה ל-VR רב-משתמשים
בעמדה משותפת, מבקר עשוי לצפות בפעולות של מבקר אחר. אם הרשת מוסיפה יותר מדי עיכוב, החוויה מרגישה שבורה. אנחנו משתמשים בגישה היברידית: אינטרפולציה מקומית לתנועת המשקפת עצמה, ויישוב בצד השרת עבור אובייקטים משותפים.
עבור עמדת ה-VR לרכב, אנחנו בודקים עם שני טלפונים על אותה רשת Wi-Fi. היעד הוא 50 אלפיות השנייה הלוך ושוב. אנחנו גם חוזים את סיבוב המכונית 50 אלפיות השנייה קדימה ומתקנים כשעדכון חדש מגיע. זה מסתיר את רעידות הרשת.
טעויות נפוצות בבניית עמדת VR לתערוכת רכב
אנחנו רואים את אותן שגיאות בפרויקטים. הראשונה היא עיצוב למסך במקום למשקפת. טקסט שנראה טוב על צג הופך לבלתי קריא במרחק זרוע. השנייה היא התעלמות מהמרחב הפיזי. מבקרים מתנגשים בקירות כי גדר ה-VR קטנה מרצפת העמדה.
הטעות השלישית היא שימוש בחיבור רשת יחיד גם למעקב SteamVR וגם להורדות קבצים. אנחנו תמיד שמים מעקב וסנכרון על פורטים נפרדים. הרביעית היא שכחת היגיינה. משקפות נעשות שמנוניות ומעורפלות. אנחנו כוללים ערכת ניקוי עדשות ומחטא UV בחבילת העמדה.
איך נראה תהליך הפיתוח?
אנחנו לא נותנים מחיר קבוע לפני שראינו את המשימה הטכנית. התהליך שלנו עוקב אחר ארבעה שלבים.
- איסוף חומרים: מודלי תלת-ממד, תוכנית רצפה, זרימת מבקרים ומטרות הלקוח.
- ניתוח הסצנה והחומרה, ואז חישוב תקציב הביצועים.
- עיצוב מפת האינטראקציה וארכיטקטורת הסנכרון.
- פיתוח בספינטים, בדיקה על המשקפות בפועל ופריסה לעמדה.
במהלך שלב ראשון, אנחנו גם שואלים על תאריך התערוכה. עמדת VR לא יכולה להימסר בשבוע אחד אם הסצנה לא מוכנה. אנחנו ממליצים להתחיל לפחות חודש לפני האירוע.
כמה זמן לוקח לבנות עמדת VR?
עמדה פשוטה עם משקפת אחת ומודל מכונית אחד לוקחת שבועיים עד שלושה. עמדה רב-משתמשים מסונכרנת עם אנליטיקה ומערכת תוכן דינמי לוקחת שישה עד שמונה שבועות. ציר הזמן המדויק תלוי בכמות התוכן התלת-ממדי ובמספר המכשירים.
הטבלה שלהלן מראה הערכה גסה.
| היקף | זמן | צוות |
|---|---|---|
| דמו עם משקפת אחת | 2–3 שבועות | מפתח Unity אחד |
| עמדה רב-משתמשים עם סנכרון | 4–6 שבועות | 2 מפתחים, אמן אחד |
| פתרון תערוכה מלא עם אנליטיקה | 6–8 שבועות | 3 מפתחים, מנהל פרויקט אחד |
הטבלה היא נקודת התחלה. אם כבר יש לכם מודל תלת-ממדי, ציר הזמן מתקצר בשבוע. אם אתם צריכים פיזיקה מותאמת אישית לנסיעת מבחן וירטואלית, הוסיפו שבוע נוסף.
מה לשלוח לנו לבדיקה טכנית
כדי להעריך את הפרויקט, אנחנו צריכים את הסצנה התלת-ממדית בפורמט FBX או glTF, תוכנית רצפה עם מידות העמדה ורשימת משקפות ה-VR. אם אין לכם מודל תלת-ממדי, אנחנו יכולים ליצור אותו ממודל CAD או מפוטוגרמטריה.
אנחנו עובדים מרחוק: אתם שולחים את הקבצים, אנחנו בונים, בודקים ושולחים את החבילה. אין צורך בביקורי אתר. למהנדסים שלנו יש ניסיון של 10+ שנים והם סיפקו 40+ פרויקטי VR לתערוכות באירופה ובחבר העמים.
השאירו בקשה עם המשימה הטכנית שלכם אם אתם צריכים עמדת VR לתערוכת רכב. לתשובה מהירה, כללו את תאריך התערוכה ומספר המבקרים שאתם מצפים להם.






