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

平台專屬指南

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

AR 內容必須正確放置和調整大小,才能融入場景。就像現實世界中的物體一樣,較遠的虛擬物體應該會顯得較小。您可以執行命中測試 (或 Unity 適用的 AR 基礎架構中的光線投射),判斷 3D 物件在場景中的正確位置。正確放置可確保 AR 內容以適當 (明顯) 大小呈現。

命中測試會找出真實世界 3D 幾何圖形與虛擬射線 (由原點和方向組成) 之間的交集。以裝置相機為原點的光線最常使用,但 ARCore 包含的 API 可用來對世界空間座標中的任意光線執行命中測試。

假設從使用者裝置的相機發出光線,並向前延伸,直到碰到場景的 3D 幾何圖形 (例如地板、牆壁或物體)。此時你會收到命中結果清單,或與偵測到的場景幾何圖形相交的結果。清單會依據與裝置的距離排序,最近的十字路口會顯示在最上方。這點很重要,因為一般來說,您無法看到其他物件後方的遮蔽物件,因此大部分時間第一個結果最重要。

命中結果的內容

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

  • 與光線原點的距離 (以公尺為單位)
  • 命中結果的姿勢 (位置和方向)
  • 您擊中的 3D 幾何圖形,以 Trackable 形式呈現

接著,您可以使用所需的命中結果,透過錨點真實地放置 3D 內容

命中結果類型

命中結果分為四種類型:深度、平面、特徵點和即時放置結果。如下表所示,每種方法都有各自的用途和取捨考量。

命中結果類型 說明 方向 用途
深度 使用整個場景的深度資訊,判斷某個點的正確深度和方向 垂直於 3D 表面 在任意表面上放置虛擬物件 (不限於地板和牆壁)
飛機 撞擊水平和/或垂直表面,判斷某個點的正確深度和方向 垂直於 3D 表面 使用平面的完整幾何圖形,將物件放置在平面上 (地板或牆壁)。請立即提供正確的比例。深度命中測試的備用方案
特徵點 依據使用者輕觸點周圍的視覺特徵,判斷該點的正確位置和方向 垂直於 3D 表面 在任意表面上放置物件 (不限於地板和牆壁)
即時放置 (持續性光線投射) 使用螢幕空間放置內容。一開始會使用應用程式提供的預估深度。這項功能會立即運作,但 ARCore 判斷實際場景幾何結構後,姿勢和實際深度就會改變。 +Y 指向上方,與重力相反 將物件放置在平面 (地板或牆壁) 上,使用平面的完整幾何圖形,適用於需要快速放置物件,且體驗可容許初始深度和比例不明的情況

裝置相容性

所有支援 ARCore 的裝置都支援命中測試,但深度命中測試需要支援深度的裝置

使用命中結果放置 AR 內容

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