熱門測試在真實世界中放置虛擬物件

平台專屬指南

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

AR 內容的放置方式和大小必須正確,才能融入場景。虛擬物體就像真實世界中的物品一樣,遠一點的虛擬物件應較小。您可以執行命中測試 (或針對 Unity 的 AR Foundation 執行光柵),確定 3D 物件的正確位置。正確放置方式可確保 AR 內容能以適當的大小 (透明) 顯示。

命中測試能夠找到現實世界 3D 幾何圖形與由起點和方向組成的虛擬光柵之間的交集。最常使用裝置相機做為來源的 Ray 應用程式,不過 ARCore 包含的 API 可用於以世界空間座標的任意光線執行命中測試。

假設有一條直線從使用者的裝置鏡頭往前延伸,直到達到場景的 3D 幾何圖形,例如地板、牆壁或物體。發生這種情況時,您會收到命中結果清單,或與偵測到的場景幾何圖形相交的交集清單。這份清單會根據與裝置之間的距離排序,最遠的十字路口。這點非常重要,因為一般情況下,您無法看到某些物件背後的物件,因此在多數情況下,第一個結果才是最重要的。

命中結果的內容

系統會將個別命中結果以清單形式傳回,其中包含每項結果的下列資訊:

  • 與光線來源的距離 (以公尺為單位)
  • 命中結果的位置 (位置和方向)
  • 您所點擊的 3D 幾何圖形,格式為可追蹤項目

接著,您就可以運用所需的命中結果,使用錨定標記實際呈現 3D 內容

命中結果類型

命中結果有四種類型:深度、平面、地圖項目點和即時刊登位置結果。每個物件都有其用途和優缺點,如下表所示。

命中結果類型 說明 方向 用途
深度分析 使用整個場景的深度資訊,判斷點的正確深度和方向 與 3D 表面垂直 將虛擬物件置於任意平面上 (不僅限於樓層和牆面)
飛機 命中水平和/或垂直表面,判斷點的正確深度和方向 與 3D 表面垂直 使用飛機的完整幾何圖形將物體放置在平面 (地板或牆壁) 上。需要立即正確的體重計。深度命中測試的備用方法
特徵點 提供使用者輕觸該點周圍的視覺地圖項目,以決定點的正確位置和方向 與 3D 表面垂直 將物件置於任意表面 (不限於樓層和牆上)
即時刊登位置 (永久的 Raycast) 使用螢幕空間放置內容。一開始使用應用程式提供的預估深度。雖然可立即運作,但 ARCore 能判斷實際場景的幾何圖形後,姿勢和實際深度也會跟著改變 +Y 指朝上,與重力相反 使用飛機的完整幾何圖形將物體放置在平面 (地板或牆壁) 上,如此快速擺放位置至關重要,且體驗可以容忍初始的初始深度和縮放比例不明

裝置相容性

命中測試適用於所有支援 ARCore 的裝置,但深度測試必須使用支援 ARCore 的裝置

根據熱門結果放置 AR 內容

取得命中結果後,您可以使用其姿勢輸入場景中放置 AR 內容