שחזור סצנה ב-AR: רשת תלת-ממדית, סיווג משטחים, חסימה

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
שחזור סצנה ב-AR: רשת תלת-ממדית, סיווג משטחים, חסימה
מורכב
~5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

אנו משלבים שחזור סצנה (Scene Reconstruction) באפליקציות AR כאשר נדרשת אינטראקציה מדויקת עם הסביבה האמיתית. ללא LiDAR במכשירים (iPhone 12 Pro וחדשים יותר, iPad Pro 2020+) שחזור סצנה אינו אפשרי—זמין רק זיהוי מישורים. בעיה אופיינית: לאחר שילוב ARKit עם sceneReconstruction = .mesh, האפליקציה מתחילה לגמגם מכיוון שכל קודקוד רשת נוצר מחדש בכל פריים. אנו פותרים זאת על ידי עבודה ישירה עם באפרים של Metal ועדכון רק של עוגנים שהשתנו. בפרויקט מחסן אחד, עיבדנו עד 30,000 קודקודים לפריים תוך שמירה על 60 FPS. בואו נצלול לפרטים הטכניים.

איך עובד שחזור סצנה?

ARMeshAnchor צובר את גיאומטריית החדר בזמן אמת. ARMeshGeometry מאחסן קודקודים, נורמלים ואינדקסי משולשים. עדכונים מגיעים דרך ה-delegate session(_:didUpdate:)—בכל פריים ARKit יכול לשלוח עשרות עוגנים מעודכנים. יישום נאיבי שיוצר מחדש MeshResource בכל עדכון הורג את ה-thread הראשי תוך שניות. הגישה הנכונה: עדכון הרשת רק עבור עוגנים שהשתנו, שימוש ב-MDLMesh כפורמט ביניים, והעברת נתונים ישירות לבאפרים של Metal.

ב-RealityKit זה נראה כך:

func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {
    for anchor in anchors.compactMap({ $0 as? ARMeshAnchor }) {
        updateMeshVisualization(for: anchor)
    }
}

func updateMeshVisualization(for anchor: ARMeshAnchor) {
    let geometry = anchor.geometry
    // Работаем с geometry.vertices, geometry.faces напрямую
    // Не создаём новый MeshResource каждый раз — патчим существующий
}

למה סיווג משטחים קריטי עבור AR?

func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) { for anchor in anchors.compactMap({ $0 as? ARMeshAnchor }) { updateMeshVisualization(for: anchor) } } func updateMeshVisualization(for anchor: ARMeshAnchor) { let geometry = anchor.geometry // Работаем с geometry.vertices, geometry.faces напрямую // Не создаём новый MeshResource каждый раз — патчим существующий } מספק סוגים: רצפה, תקרה, קיר, דלת, חלון, מושב, שולחן, ללא. באמצעות סיווג, ניתן לסנן משטחים מיותרים—לדוגמה, להתעלם מהתקרה לניווט רצפתי. הסיווג עובד רק כאשר ARMeshClassification ובמכשירי LiDAR. ללא בדיקת sceneReconstruction = .meshWithClassification—קריסה או התעלמות שקטה.

סוג משטח תיאור יישום
floor רצפה בניית NavMesh, הצבת אובייקטים
wall קיר הסתרה, התנגשויות
ceiling תקרה תאורה (בדרך כלל מתעלמים)
door דלת ניווט דרך פתחים
window חלון אפקטים מיוחדים
seat מושב אינטראקציה (ישיבה)
table שולחן הצבת אובייקטים
none אובייקט לא ידוע מכשולים (מדפים, משטחים)

איך אנו נמנעים מירידות ביצועים?

המחסנית המרכזית: ARKit 5+ + RealityKit 2 + Metal. איננו משתמשים ב-SceneKit עבור הרשת—הוא אינו מותאם לגיאומטריות דינמיות. הגדרת סשן:

let config = ARWorldTrackingConfiguration()
config.sceneReconstruction = .meshWithClassification
arView.debugOptions = [.showSceneUnderstanding] // для отладки
arView.session.run(config)

לניפוי באגים של ויזואליזציית רשת, אנו מציירים wireframe דרך ARWorldTrackingConfiguration.supportsSceneReconstruction(.meshWithClassification). בייצור, נראות הרשת כבויה, אך אנו משתמשים בנתוניה עבור:

  • הסתרה—אובייקטים מאחורי קירות אינם נראים. שחזור סצנה נותן הסתרה מדויקת פי 5 מזיהוי מישורים מקורב.
  • פיזיקה—let config = ARWorldTrackingConfiguration() config.sceneReconstruction = .meshWithClassification arView.debugOptions = [.showSceneUnderstanding] // для отладки arView.session.run(config) מתקשר עם גיאומטריה אמיתית.
  • Raycast—פגיעה מדויקת במשטחים אמיתיים, לא רק במישורים.

מקרה בוחן: אפליקציית ניווט AR למחסן. היה צורך לזהות מכשולים (מדפים, משטחים) ולבנות מסלול. השתמשנו בשחזור סצנה לבניית רשת תפוסה: כל קודקוד רשת עם סיווג arView.debugOptions (אובייקט לא מזוהה) נוסף לגרף המכשולים. NavMesh עודכן כל 2 שניות—איזון בין רעננות לעומס CPU. ב-iPad Pro M2 זה שומר על 60 FPS ללא ירידות. לשם השוואה: במכשירים ללא LiDAR, היינו צריכים להשתמש בהתנגשויות מפושטות, מה שמגדיל תוצאות חיוביות שגויות ב-40%.

פרמטר שחזור סצנה זיהוי מישורים בלבד
פרטיות גיאומטריה ~30,000 קודקודים 4 מישורים
הסתרה מדויקת, מבוססת רשת מקורבת עם חפצים
פיזיקה CollisionComponent עם גיאומטריה רק מישורים
תמיכת LiDAR נדרשת לא נדרשת

מה כלול בעבודה שלנו?

  • ניתוח דרישות ובחירת מחסנית (ARKit/RealityKit/Metal).
  • הגדרת סשן עם שחזור סצנה מופעל.
  • פיתוח ויזואליזציית רשת (debug וייצור).
  • שילוב נתוני רשת: הסתרה, פיזיקה, raycast.
  • אופטימיזציית ביצועים (איגום עדכונים, buffering).
  • בדיקות במכשירי LiDAR ו-fallback למכשירים ללא LiDAR.
  • תיעוד והדרכת צוות.

תהליך: מרעיון לפריסה

  1. ניתוח—דיון בתרחישי שימוש וקביעת נתונים נדרשים (הסתרה, ניווט, פיזיקה).
  2. עיצוב—בחירת ארכיטקטורה (מערכת רכיבים, שילוב ARView ו-Metal).
  3. יישום—כתיבת קוד ב-Swift, שימוש בתבנית delegate לעדכונים.
  4. בדיקות—בדיקה במכשירים אמיתיים בתנאים שונים (תאורה, מראות).
  5. פריסה—שחרור ל-App Store, הגדרת TestFlight לבודקי בטא.

לוחות זמנים ואיך להתחיל

שילוב בסיסי עם ויזואליזציית רשת אורך 1–2 שבועות. אם נדרשים סיווג משטחים, התנגשויות פיזיקה וניווט מבוסס רשת—4–6 שבועות. העלות מחושבת לאחר דיון מפורט בדרישות. צרו קשר לייעוץ—קבלו הערכה לפרויקט שלכם. ניתן גם להזמין ניתוח מקדים של אפליקציית ה-AR שלכם.