פתרונות חסימה ב-AR: הסתרת אובייקטים וירטואליים מאחורי משטחים אמיתיים

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

היכולות שלנו

שירותי סטודיו אחרים

יישומי VR/AR/MR מותאמים אישית

טבלו לקוחות וצוותים בחוויות דיגיטליות חדשות

פיתוח משחקי Unity

מקונספט לשחרור — משחקים שאנשים זוכרים

מידול ואנימציה בתלת-ממד

החיו את המוצר שלכם בגרפיקת תלת-ממד ואנימציה

סימולטורי ציוד VR תעשייתיים

אמנו מפעילים על ציוד בבטחה, ללא השבתה

הוראות AR לייצור

הנחיות שלב-אחר-שלב ישירות על הציוד — ללא נייר

סימולטורי VR לבטיחות

תרגול תגובה לשעת חירום ללא צורך בהגעה לשטח

תוכניות הכשרה ב-VR/AR

הכשרת עובדים בשירות, קליטה ומיומנויות רכות ב-VR

חידוני הכשרה לעובדים

בדיקת ידע באמצעות משחקים — בקלות וללא לחץ

הוראות וידאו ארגוניות

סרטונים ברורים להכשרת העובדים והלקוחות שלכם

גיימיפיקציה עסקית

הניעו צוותים עם מכניקת משחק ב-KPI ובמשאבי אנוש

יישומי קיוסק אינטראקטיביים

מסכים אינטראקטיביים לקמעונאות, תערוכות ומשרדים

מתקני VR/AR

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

תערוכות ומוזיאונים וירטואליים

התערוכות שלכם מגיעות לכל פינה בעולם, 24/7

מסעות אירועים ומשחקי מותג

משחקים בלתי נשכחים לכנסים ולאירועי לקוחות

שאלות נפוצות

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

  • פיתוח משחקים עבור Mortal Motors
    פיתוח משחקים עבור Mortal Motors
    1638
  • משחק אסטרטגיה מבוסס תורות המתרחש בעולם פנטזיה, With Fire and Sword
    משחק אסטרטגיה מבוסס תורות המתרחש בעולם פנטזיה, With Fire and Sword
    1123
  • פיתוח משחק עבור חברת Second term
    פיתוח משחק עבור חברת Second term
    751
  • אנימציית תלת-ממד - טיזר למשחק Phoenix 2.
    אנימציית תלת-ממד - טיזר למשחק Phoenix 2.
    830

כאשר אובייקט וירטואלי לא מוסתר על ידי כיסא אמיתי, האשליה נשברת. במכשירים ללא LiDAR, הסתרה נשברת לעיתים קרובות בקצוות האובייקט, ויוצרת גבולות משוננים. צוות המהנדסים שלנו לפיתוח משחקים — עם ניסיון של למעלה מעשר שנים ב-AR ויותר מ-50 פרויקטי AR שיושמו — פותר בעיה זו במפתח פתוח. מאז 2016, סיפקנו פתרונות AR חזקים. ללא הסתרה נכונה, AR נראה כמו מדבקה על גבי וידאו — המשתמש מבחין בכך מיד והחוויה נהרסת. אם הפרויקט שלך מתמודד עם בעיה זו, הזמינו ביקורת הסתרה (החל מ-$500) — נעריך את המורכבות ונציע פתרון.

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

במכשירים עם LiDAR, מפת העומק (environmentDepthTexture) מתעדכנת בזמן אמת בכ-30 פריימים לשנייה — זהו מאגר עומק אמין של העולם האמיתי. באנדרואיד ובאייפונים ללא LiDAR, AR Foundation משתמש בהערכת עומק באמצעות למידת מכונה דרך AROcclusionManager.requestedEnvironmentDepthMode = EnvironmentDepthMode.Best, מה שמייצר יותר חפצים (ארטיפקטים) בקצוות האובייקט. דיוק עומק ML הוא 5–10 ס"מ, בעוד LiDAR מספק 1–2 ס"מ — הבדל של פי 5 בדיוק. הסתברות השגיאה על משטחים אחידים עולה ב-40% — זהו גורם אופייני לאובייקטים וירטואליים "שוקעים".

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

באופן ספציפי ב-URP, זה נראה כך: צור ScriptableRendererFeature עם שני RenderPass. המעבר הראשון לוקח environmentDepthTexture מ-AROcclusionManager, ממיר אותו למאגר עומק (תוך התחשבות בהבדל במישורי החיתוך הקרובים/רחוקים בין מצלמת AR למצלמת Unity), וכותב אותו ל-_CameraDepthTexture. המעבר השני הוא עיבוד סצנה סטנדרטי. אובייקטים וירטואליים מקבלים אוטומטית בדיקת עומק נכונה מול העולם האמיתי.

נשמע פשוט, אבל יש ניואנס: המרת עומק. AR Foundation מחזיר עומק ליניארי במטרים, מאגר העומק של Unity אינו ליניארי (לוגריתמי או Z הפוך בהתאם להגדרות). המרה לא נכונה גורמת ל"הבהובים" בגבולות ההסתרה או לחוסר השפעה מוחלט. לפי תיעוד ARKit, יש להמיר את מפת העומק תוך התחשבות בחיתוך הקרוב והרחוק.

הסתרה סטנדרטית דורשת מעבר עיבוד מותאם אישית

AROcclusionManager מובנה ב-AR Foundation ומגדיר אוטומטית הסתרה עבור Built-in RP. עבור URP/HDRP, נדרש מעבר עיבוד מותאם אישית מכיוון שצינור העיבוד עוקף את סדר העיבוד. בלעדיו, environmentDepthTexture לא נכתב למאגר העומק כראוי — אובייקטים מעובדים על גבי מפת העומק במקום להיות מושווים אליה. זו סיבה מרכזית לכך ש"רק הוסף רכיב" לא עובד. עבור הסתרה ב-URP, עקוב אחר המדריך שלנו שלב אחר שלב להלן.

הפחתת חפצים של הערכת עומק ML

הערכת עומק ML על משטחים אחידים נותנת ערכים לא יציבים. אנו משלבים אותה עם גיאומטריה מדויקת מ-ARPlane: עבור מישורים שזוהו, אנו משתמשים במשושים תלת-ממדיים; עבור השאר, עומק ML. זה מסיר עד 80% מהחפצים. בנוסף, אנו מיישמים פילטר דו-צדדי במעבר העיבוד המותאם אישית — זה מחליק הבהובים מבלי לאבד קווי מתאר. כתוצאה מכך, מספר הפגמים הנראים מופחת פי 3–5. הגישה ההיברידית יעילה בערך פי 5 מעומק ML טהור במספר החפצים החזותיים.

מדוע הסתרה רכה משפרת תפיסה?

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

הפתרון הנכון הוא הסתרה רכה באמצעות טשטוש מפת העומק לפני בדיקת העומק. AROcclusionManager ב-AR Foundation 5.x תומך ב-OcclusionPreferenceMode.PreferEnvironmentOcclusion ו-PreferSmoothOcclusion — המצב השני מיישם פילטר דו-צדדי להחלקת גבולות. אבל ב-URP, יש לחבר אותו ידנית דרך מעבר עיבוד מותאם אישית; אוטומטית זה עובד רק ב-Built-in RP.

בפועל, אנו עושים זאת: ב-shader של האובייקט הווירטואלי, הוסף שלב הסתרה עם smoothstep המשווה בין עומק העולם האמיתי לעומק האובייקט. טווח המיזוג הוא 2–5 ס"מ בקואורדינטות עולם. זה נותן מעבר חלק בקצוות ללא חפצים ברורים. ניתן להשתמש ב-ShaderGraph ליצירת shaders הסתרה רכה כאלה ויזואלית.

דוגמה ל-shader הסתרה רכה (HLSL) ```hlsl float realDepth = SampleEnvironmentDepth(uv); float objDepth = input.positionNDC.z; float occlusion = smoothstep(0.02, 0.05, objDepth - realDepth); return float4(color.rgb, color.a * occlusion); ```

מקרה: דמות מאחורי רהיטים (מהניסיון שלנו)

לקוח שפיתח משחק AR עם דמות AR ניידת דרש: הדמות חייבת "להסתתר" מאחורי פריטי רהיטים אמיתיים. ללא LiDAR (הקהל העיקרי — אנדרואיד בינוני), נאלצנו להשתמש בהערכת עומק ML. הבעיה: ML עובד בצורה גרועה על משטחים אחידים (קיר לבן, שולחן חלק) — העומק שם לא יציב, והדמות הייתה "שוקעת" דרך השולחן או מופיעה לפניו באקראי.

הפתרון — גישה היברידית. עבור מישורים גדולים שזוהו (ARPlane), אנו משתמשים בגיאומטריה מדויקת מ-ARPlaneManager, והם מעובדים למאגר העומק כמשושים תלת-ממדיים. עומק ML משמש רק עבור אובייקטים שאינם מישורים — כיסאות, אנשים, פריטים על השולחן. זה הסיר 80% מהחפצים בסצנות פנים טיפוסיות. הגישה ההיברידית יעילה בערך פי 5 מעומק ML טהור במספר החפצים החזותיים. בנוסף, הלקוח חסך מעל $2000 בשלב הבדיקות עקב הפחתת עבודה חוזרת.

כיצד ליישם הסתרה היברידית: מדריך שלב אחר שלב

  1. נתח מכשירי יעד: קבע אם LiDAR קיים בקהל היעד. עבור אנדרואיד ואייפונים ישנים יותר — אין LiDAR.
  2. בחר צינור עיבוד: אם הפרויקט על URP, צור ScriptableRendererFeature עם שני מעברים (המרת עומק ועיבוד סצנה).
  3. הגדר AROcclusionManager: אפשר AROcclusionManager עם EnvironmentDepthMode.Best. עבור URP, חבר אותו למעבר העיבוד.
  4. שלב ARPlaneManager: השתמש ב-ARPlaneManager כדי לקבל גיאומטריה מדויקת של מישורים. עבד אותם למאגר העומק כמשושים תלת-ממדיים.
  5. שלב עם עומק ML: עבור אובייקטים שאינם מישוריים, השתמש בעומק ML מ-environmentDepthTexture. החל פילטר דו-צדדי להחלקה.
  6. בצע אופטימיזציה: הגדר nearClippingPlane ו-farClippingPlane של מצלמת AR להפחתת הבהובים. בדוק את תקציב ה-FPS — הסתרה לא צריכה להוסיף יותר מ-10% עומס (שאף ל-5–8%).

השוואת גישות הסתרה

גישה דיוק ביצועים מכשירים
LiDAR גבוה (1-2 ס"מ) 30 fps, עומס ~5% iPhone Pro, iPad Pro
עומק ML בינוני (5-10 ס"מ) 30 fps, עומס ~10% כל ARKit/ARCore
היברידי (מישורים + ML) גבוה (2-5 ס"מ) 30 fps, עומס ~8% כל עם ARCore/ARKit
גיאומטריה מדויקת (מישור) גבוה מאוד תלוי במספר הפוליגונים כל

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

ההערכה מתחילה בביקורת של מכשירי היעד וצינור העיבוד הנוכחי. URP ו-HDRP דורשים גישות שונות. HDRP כמעט ולא משמש ב-AR נייד — כבד מדי, אבל אם הפרויקט מיועד ל-Magic Leap או HoloLens, יש צינור ספציפי.

תרחיש לוחות זמנים הערכת עלות
הסתרה בסיסית דרך AROcclusionManager (URP) 3–7 ימים $500–$1,500
הסתרה רכה עם מעבר עיבוד מותאם אישית 1–2 שבועות $1,500–$3,000
גישה היברידית (מישורים + עומק ML) 2–4 שבועות $3,000–$6,000
HoloLens / Magic Leap (צינור נפרד) החל מ-3 שבועות $5,000+

העלות מחושבת באופן אישי לאחר ניתוח הפרויקט והפלטפורמות היעד. שאלות מפתח: איזה RP, האם יש LiDAR בקהל היעד, האם נדרשת תמיכה באנדרואיד מתחת ל-ARCore 1.24? כדי לקבל הערכה מדויקת, כתבו לנו.

תוצרים ומה כלול בעבודה

  • תיעוד על הסתרה לפרויקט (הגדרת AROcclusionManager, מעבר עיבוד מותאם אישית, הגדרת הסתרה ב-URP).
  • קוד של מעבר העיבוד המותאם אישית עבור URP.
  • הגדרת הגישה ההיברידית עם ARPlaneManager.
  • בדיקות על רשימת מכשירי יעד (עד 5 דגמים).
  • אופטימיזציית ביצועים (תקציב FPS, קריאות ציור).
  • תמיכה למשך שבועיים לאחר המסירה.

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