התוכן ב-AR צריך להיות ממוקם בצורה נכונה ובגודל המתאים כדי שהוא ישתלב בסצנה. כמו אובייקטים בעולם האמיתי, אובייקטים וירטואליים רחוקים יותר אמורים להיראות קטנים יותר. אפשר לבצע בדיקת היטים (או raycast ב-AR Foundation for Unity) כדי לקבוע את המיקום הנכון של אובייקט תלת-ממדי בסצנה. מיקום נכון מבטיח שהתוכן ב-AR יעובד בגודל המתאים (הברור).
בדיקות התאמות מוצאות הצטלבויות בין גיאומטריה תלת-ממדית בעולם האמיתי לבין קרן וירטואלית שמכילה מקור וכיוון. השימוש בקרניים שבהן מצלמת המכשיר הוא המקור הנפוץ ביותר, על אף ש-ARCore כולל API לביצוע של היט-בדיקות עם קרן שרירותית בקואורדינטות של החלל בעולם.
נניח שקיימת קרן קרניים שמגיעה ממצלמת המכשיר של המשתמש ונמשכת קדימה עד שהיא מגיעה לגיאומטריה התלת-ממדית של הסביבה, כמו רצפה, קיר או עצם. במקרה כזה, תקבלו רשימה של תוצאות היטים, או צמתים עם גיאומטריה של סצנה שזוהתה. הרשימה ממוינת לפי מרחק מהמכשיר, כשהצומת הקרוב ביותר מופיע ראשון. זה חשוב כי בדרך כלל לא ניתן לראות אובייקטים חבויים מאחורי אובייקטים אחרים, כך שברוב המקרים התוצאה הראשונה היא המשמעותית ביותר.
התוכן של תוצאת היט
תוצאת היט בודדת מוחזרת כרשימה עם הפרטים הבאים עבור כל תוצאה:
יש ארבעה סוגים של תוצאות התאמה: עומק, מישור, נקודת תכונה ותוצאות מיקום מיידי. לכל אחד מהם יש תרחישים ויתרונות משלו, כפי שמתואר בטבלה הבאה.
סוג תוצאת היט
התיאור
כיוון
תרחיש לדוגמה
עומק
שימוש בנתוני עומק מכל הסצנה כדי לקבוע את העומק והכיוון הנכונים של הנקודה
אנכי למשטח התלת-ממדי
יש למקם אובייקט וירטואלי על משטח שרירותי (לא רק על רצפות וקירות)
מטוס
פגיעות על פני שטח אופקיים ו/או אנכיים כדי לקבוע את העומק והכיוון הנכונים של נקודה
אנכי למשטח התלת-ממדי
מניחים אובייקט על מישור (רצפה או קיר) באמצעות הגיאומטריה המלאה של המטוס. דרוש קנה מידה נכון באופן מיידי. להיענות לבדיקת העומק
נקודת ציון
הסתמכות על תכונות חזותיות מסביב לנקודת ההקשה של המשתמש כדי לקבוע את המיקום והכיוון הנכונים של הנקודה
אנכי למשטח התלת-ממדי
מניחים אובייקט על משטח שרירותי (לא רק על רצפות וקירות)
מיקום מיידי (Raycast קבוע)
מנצלים את שטח המסך למיקום התוכן. נעשה שימוש במקור בעומק המשוער שסופק על ידי האפליקציה. זה פועל באופן מיידי, אבל המיקום והעומק בפועל ישתנו ברגע ש-ARCore יוכל לזהות את הגאומטריה של הסצנה בפועל.
+Y מצביע למעלה, נגד כוח הכבידה
מציבים עצם על מטוס (על הרצפה או על קיר) באמצעות הגיאומטריה המלאה של המטוס. המיקום המהיר הוא קריטי, והחוויה עשויה לסבול את העומק והקנה מידה הראשוניים לא ידועים.
[null,null,["עדכון אחרון: 2025-07-26 (שעון UTC)."],[[["\u003cp\u003eARCore hit-tests, or raycasts, help you determine the correct placement and scale of virtual objects in the real world by finding intersections between a ray and the scene's geometry.\u003c/p\u003e\n"],["\u003cp\u003eHit results provide distance, pose, and trackable information, allowing you to realistically anchor 3D content.\u003c/p\u003e\n"],["\u003cp\u003eThere are four hit result types: Depth, Plane, Feature Point, and Instant Placement, each with different use cases and tradeoffs depending on the desired outcome and device capabilities.\u003c/p\u003e\n"],["\u003cp\u003eDepth hit results, available on Depth supported devices, utilize depth information for precise object placement on any surface, while Plane hit results are suitable for floors and walls.\u003c/p\u003e\n"],["\u003cp\u003eFeature Point hit results rely on visual features, and Instant Placement allows for fast content placement even with initially unknown depth and scale.\u003c/p\u003e\n"]]],[],null,["# Hit-tests place virtual objects in the real world\n\n**Platform-specific guides** \n\n### Android (Kotlin/Java)\n\n- [Developer guide](/ar/develop/java/hit-test/developer-guide)\n\n### Android NDK (C)\n\n- [Developer guide](/ar/develop/c/hit-test/developer-guide)\n\n### Unity (AR Foundation)\n\n- [Developer guide](/ar/develop/unity-arf/hit-test/developer-guide)\n\nYour browser does not support the video tag.\n\nAR content must be correctly placed and sized to blend into a scene. Like real-world objects, virtual objects that are further away should appear smaller. You can perform a **hit-test** (or a **raycast** in AR Foundation for Unity) to determine the correct placement of a 3D object in your scene. Correct placement ensures that the AR content is rendered at the appropriate (apparent) size.\n\nHit-tests find intersections between either real-world 3D geometry and a virtual ray consisting of an origin and direction. Rays with the device's camera as the origin are used most commonly, though ARCore includes an API for performing hit-tests with an arbitrary ray in world space coordinates.\n\nImagine that there is a ray originating from a user's device camera that extends forward until it hits the 3D geometry of the scene, such as a floor, wall, or object. Once this happens, you receive a list of **hit results**, or intersections with detected scene geometry. The list is sorted by distance from the device, with the nearest intersection first. This is important because generally you can't see objects occluded behind other objects, so most of the time the first result is the most significant.\n| **Note:** Hit-tests are typically performed as rays from the device or device camera, but it is possible to have an arbitrary ray origin and direction.\n\nContents of a hit result\n------------------------\n\nAn individual hit result is returned as a list with the following information for each result:\n\n- Distance from the ray origin, in meters\n- Pose (position and orientation) of the hit result\n- The 3D geometry that you hit, in the form of a Trackable\n\nYou can then use the desired hit result to [realistically place your 3D content using an Anchor](/ar/develop/anchors).\n\nHit result types\n----------------\n\nThere are four types of hit results: Depth, plane, feature point, and Instant Placement results. Each has its own use cases and tradeoffs, as shown by the following table.\n| **Note:** Depth hit results require [Depth supported devices](/ar/devices#google_play_devices). On non-Depth supported devices, Depth supported devices that do not have depth data yet or on sessions where Depth has been disabled, use plane hit results instead.\n\n| Hit result type | Description | Orientation | Use case |\n|----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Depth | Uses depth information from the entire scene to determine a point's correct depth and orientation | Perpendicular to the 3D surface | Place a virtual object on an arbitrary surface (not just on floors and walls) |\n| Plane | Hits horizontal and/or vertical surfaces to determine a point's correct depth and orientation | Perpendicular to the 3D surface | Place an object on a plane (floor or wall) using the plane's full geometry. Need correct scale immediately. Fallback for the Depth hit-test |\n| Feature point | Relies on visual features around the point of a user tap to determine a point's correct position and orientation | Perpendicular to the 3D surface | Place an object on an arbitrary surface (not just on floors and walls) |\n| Instant Placement (Persistent Raycast) | Uses screen space to place content. Initially uses estimated depth provided by the app. Works instantly, but pose and actual depth will change once ARCore is able to determine actual scene geometry | +Y pointing up, opposite to gravity | Place an object on a plane (floor or wall) using the plane's full geometry where fast placement is critical, and the experience can tolerate unknown initial depth and scale |\n\nDevice compatibility\n--------------------\n\nHit-tests work on all [ARCore supported devices](/ar/devices), but Depth hit-tests will require [Depth supported devices](/ar/devices#google_play_devices).\n\nUse hit results to place AR content\n-----------------------------------\n\nOnce you have a hit result, you can use its pose as input to [place AR content](/ar/develop/anchors) in your scene."]]