שילוב חסימת סביבה ב-AR
אנו משלבים חסימת סביבה מציאותית: אובייקטים וירטואליים מוסתרים על ידי אובייקטים אמיתיים מסביב. הצב ספה ב-AR ליד קיר, לך מאחוריה — הספה מוסתרת חלקית על ידי הצללית שלך. ללא חסימה, אובייקטי AR תמיד מוצגים מעל, מה ששובר את האשליה מיד. טכנית, זהו אחד האפקטים התובעניים ביותר מכיוון שנדרש מידע עומק בזמן אמת של העולם האמיתי. הניסיון שלנו מראה שחסימה נכונה מגדילה את מעורבות המשתמשים ב-30–40% (בהתבסס על בדיקות A/B בפרויקטים שלנו, בהתאם ל-תיעוד Apple ARKit). כדי להשיג חסימה באיכות גבוהה, יש להתחשב במאפייני המכשיר הספציפיים ולכוונן כראוי את סף העומק.
כיצד פועלת חסימת LiDAR
באייפון 12 Pro ומעלה, iPad Pro, אנו משתמשים ב-ARWorldTrackingConfiguration.sceneReconstruction = .mesh — רשת צפופה של הסביבה. הרשת כותבת למאגר העומק, ואובייקטי AR מאחורי הרשת מוסתרים. הדיוק הוא 1–2 ס"מ במרחקים של עד 5 מטרים, בזמן אמת ללא השהיה. למכשירים ללא LiDAR, אנו משתמשים בעומק ML: רשת עצבית חוזה את מפת העומק מ-RGB. ARDepthMap של ARKit / ARCore Depth API מספקים דיוק של 5–15 ס"מ, עם חפצי קצה והשהיה של 1–3 פריימים. לייצור: אם הקהל משתמש בעיקר ב-iPhone Pro / iPad Pro, אנו משתמשים ב-LiDAR. לאפליקציות שוק המוני, אנו ממליצים על עומק ML עם האצת LiDAR היכן שזמין.
RealityKit: הפעלת חסימה בשורה אחת
במכשירים עם LiDAR ו-iOS מודרני:
arView.environment.sceneUnderstanding.options = [
.occlusion, // реальные объекты перекрывают AR
.collision, // AR-объекты сталкиваются с реальной геометрией
.physics, // физика относительно реальных поверхностей
.receivesLighting // AR-объекты освещены как реальные
]ללא LiDAR באותו API: arView.environment.sceneUnderstanding.options = [ .occlusion, // реальные объекты перекрывают AR .collision, // AR-объекты сталкиваются с реальной геометрией .physics, // физика относительно реальных поверхностей .receivesLighting // AR-объекты освещены как реальные ] משתמש בפילוח אנשים (שבבי A12 ומעלה) — רק צללית האדם מסתירה אובייקטי AR. מוגבל, אבל עדיף מכלום.
למה חסימה רכה חשובה
בקצוות רשת LiDAR, חסימה יכולה להיראות מפוקסלת בגלל רזולוציית עומק סופית. חסימה רכה באמצעות טשטוש דו-צדדי מחליקה את המעבר. ב-Metal: קרנל מותאם אישית עם טשטוש מודע עומק (טשטוש רק בתוך סף העומק). זה מורגש רק בבדיקה קרובה, אבל למוצרי AR פרימיום, כדאי ליישם. אנו מבטיחים איכות גם על משטחים מורכבים.
ARCore Depth API (אנדרואיד)
במכשירים עם חיישן ToF (Samsung Galaxy S21 Ultra, LG V60) — עומק חומרה. באחרים — עומק ML מ-ARCore Depth API (Raw Depth Image):
val frame = session.update()
if (session.isDepthModeSupported(Config.DepthMode.AUTOMATIC)) {
val depthImage = frame.acquireDepthImage16Bits()
// depth в мм, 16-bit unsigned short
// ARCore рекомендует использовать через OpenGL texture
}ARCore מספק ARView דרך הדוגמה שלהם — shader פררגמנט OpenGL שמשליך פררגמנטים של אובייקטי AR עמוקים יותר מהגיאומטריה האמיתית.
השוואת שיטות חסימה
| שיטה | מכשירים | דיוק | השהיה | מורכבות |
|---|---|---|---|---|
| רשת LiDAR | iPhone 12 Pro+, iPad Pro | 1–2 ס"מ | 0 פריימים | 2–3 ימים |
| עומק ML (ARKit/ARCore) | כל A12+ / אנדרואיד עם ARCore | 5–15 ס"מ | 1–3 פריימים | 1–2 שבועות |
| פילוח אנשים | A12+ (אייפון) | קו מתאר | 0 פריימים | 3–5 ימים |
תמיכת חסימה במכשירים פופולריים
| מכשיר | LiDAR | עומק ML | פילוח אנשים |
|---|---|---|---|
| iPhone 12 Pro | כן | כן | כן |
| iPhone 11 | לא | כן | כן |
| iPad Pro 2020 | כן | כן | כן |
| Samsung S21 Ultra | לא (ToF) | כן | לא |
| Pixel 4 | לא | כן | לא |
אנו בוחרים את השיטה האופטימלית לפרויקט שלך, תוך התחשבות בקהל היעד ובדרישות הדיוק.
צללים מאובייקטים וירטואליים על משטחים אמיתיים
בונוס לחסימה: ספת AR מטילה צל על הרצפה האמיתית. ב-RealityKit עם val frame = session.update() if (session.isDepthModeSupported(Config.DepthMode.AUTOMATIC)) { val depthImage = frame.acquireDepthImage16Bits() // depth в мм, 16-bit unsigned short // ARCore рекомендует использовать через OpenGL texture } , צללים אוטומטיים. ברנדר מותאם אישית: מפת צל מאובייקט AR המוקרנת על גיאומטריית העולם האמיתי מרשת LiDAR. ללא LiDAR, צללים רק על מישורים שזוהו על ידי ARKit (רצפה, שולחן). המשתמש רואה צל "שטוח" שאינו עוקב אחר תבליט המשטח האמיתי.
מתי כדאי להשתמש ב-shader מותאם אישית במקום API מובנה?
כאשר נדרשת חסימה רכה או התנהגות לא סטנדרטית (למשל, אובייקטי AR שקופים למחצה), ה-API המובנים אינם מספיקים. shader מותאם אישית ב-Metal/GLSL נותן שליטה מלאה על מאגר העומק והמיזוג. אנו מיישמים פתרונות כאלה תוך התחשבות בביצועים למכשירי היעד.
תהליך
- ניתוח: הגדרת מכשירי יעד, דרישות דיוק ותקציב.
- עיצוב: בחירת המחסנית (LiDAR/ML) ועיצוב ארכיטקטורת הרינדור.
- יישום: אינטגרציית API, shaders מותאמים אישית, בדיקות על סצנות אמיתיות.
- בדיקות: בדיקות A/B על מכשירים שונים, בדיקת חפצי קצה.
- השקה: פרסום ל-App Store / Google Play, הגדרת TestFlight.
פרטי בדיקת חסימה
אנו בודקים על סט תרחישים: מרחקים שונים לאובייקטים, טקסטורות מורכבות (שטיח, דשא), תנועת מצלמה. אנו בודקים z-fighting והבהובים בקצוות. עבור כל מכשיר, אנו אוספים מדדי FPS והשהיית מפת עומק.עם ניסיון של למעלה מ-10 שנים ו-40+ פרויקטי AR שהושלמו, אנו מבטיחים אינטגרציה חזקה.
מה כלול בעבודה
- קוד מקור לאינטגרציית חסימה (Swift / Kotlin / Dart).
- Shaders מותאמים אישית (Metal / OpenGL ES) אם נדרש.
OcclusionShader/sceneUnderstanding.receivesLightingמוגדרים.- תיעוד בנייה והשקה.
- תמיכה ל-30 יום לאחר המסירה.
צור קשר כדי להזמין אינטגרציית חסימה לאפליקציית ה-AR שלך. קבל ייעוץ לפרויקט שלך.
רשימת בדיקה של טעויות נפוצות
-
ARWorldTrackingConfigurationלא מופעל — אובייקטים אינם מוסתרים. - חוסר טיפול ב-LiDAR — קריסה במכשירים ישנים.
- Z-fighting בגלל offset קטן מדי ב-shader.
- התעלמות מפילוח אנשים — בני אדם אינם מסתירים אובייקטי AR.
לוחות זמנים ותמחור
חסימת LiDAR דרך RealityKit API — אינטגרציה של 2–3 ימים. פילוח אנשים — 3–5 ימים. חסימת ARCore Depth באנדרואיד — 1–2 שבועות (shader מותאם אישית). חסימה רכה עם הצללה מותאמת אישית ב-Metal/GLSL — תוספת של 1–2 שבועות. התמחור הוא אישי. אנו מעריכים את הפרויקט לאחר דיון בפרטים. פנה אלינו לייעוץ.







