在深入探討 ARCore 前,建議您先瞭解幾個基本概念。透過這些概念,您可以瞭解 ARCore 如何讓虛擬內容出現在實際途徑上,或附加至實際位置。
動作追蹤
隨著手機在世界中移動,ARCore 會使用「同時本地化和對應」程序 (或稱 SLAM) 判斷手機與周遭世界的相對位置。ARCore 會在拍攝的相機影像中,偵測出稱為「地圖項目」的視覺獨特特徵,並使用這些點來計算其位置的變化。視覺資訊結合了裝置 IMU 的語氣測量數據,以便隨時間估計相機相對於世界的姿勢 (位置和方向)。
藉由對齊虛擬相機的姿勢,讓虛擬相機以 ARCore 提供的裝置相機姿勢轉譯 3D 內容,開發人員就能從正確的視角算繪虛擬內容。轉譯的虛擬圖片可以重疊在從裝置相機取得的影像上,看起來就像虛擬內容是真實世界的一部分。
瞭解環境
ARCore 藉由偵測特徵點和平面,不斷增進自身對真實環境的理解。
ARCore 會尋找看起來落在一般水平或垂直表面 (例如表格或牆) 上的地圖項目點叢集,並將這些介面做為幾何「平面」提供給應用程式使用。ARCore 也可以判斷每個幾何平面的邊界,並將該資訊提供給應用程式。您可以使用這項資訊將虛擬物件置放在平面上。
ARCore 使用特徵點偵測飛機,因此沒有紋理 (例如白牆) 的平面可能無法正確偵測。
深度理解
ARCore 會使用支援裝置的主要 RGB 相機,建立深度地圖,當中包含表面與指定點之間的距離資料。您可以使用深度地圖提供的資訊,提供身歷其境的沉浸式使用者體驗,例如讓虛擬物件與觀察到的表面精確融合,或讓虛擬物件顯示在實際物體前方或後方。
輕微預估
ARCore 可以偵測周遭環境亮度的相關資訊,並提供特定相機影像的平均強度和色彩校正。這樣才能在與周遭環境相同的條件下照明虛擬物體,營造寫實感。
使用者互動
ARCore 會使用命中測試,取得與手機螢幕相對應的 (x,y) 座標 (可透過輕觸或您希望應用程式支援的任何其他互動提供),並在相機的世界視圖中投射出射線,並傳回射線交會的任何幾何平面或特徵點,以及該交集在世界空間中的姿勢。這可讓使用者選取環境中的物件或以其他方式與物件互動。
方向的要點
方向點可讓您在特定角度放置虛擬物件。當您執行傳回特徵點的命中測試時,ARCore 會查看附近的地圖項目點,並使用這些點嘗試估算指定特徵點的途徑角度。ARCore 就會傳回該角度的對應姿勢。
ARCore 使用特徵點叢集偵測表面的角度,因此沒有紋理的表面 (例如白牆) 可能無法正確偵測。
錨點和可追蹤項目
ARCore 能夠更瞭解自己的位置和所在環境,進而改變追蹤器。當您想要放置虛擬物件時,必須定義「anchor」,確保 ARCore 能持續追蹤物件的位置。通常,您會依據命中測試傳回的姿勢建立錨定標記,如使用者互動一節所述。
姿勢可能會改變,代表 ARCore 可能會隨著時間更新環境物件 (例如幾何平面和地圖項目點) 的位置。平面和點是一種特殊類型的物件,稱為「可追蹤」。如同名稱建議,ARCore 會隨著時間追蹤這些物件。您可以將虛擬物件錨定在特定的可追蹤項目上,以確保即使裝置在移動時,虛擬物件與可追蹤項目之間的關係仍會保持穩定。這表示如果您將虛擬 Android 小雕像放在桌上,如果 ARCore 日後調整與桌面相關聯的幾何平面姿勢,則 Android 公仔仍會保持在表格上方。
詳情請參閱「使用錨點」
擴增圖片
擴增圖片功能可讓您建構 AR 應用程式,以便回應特定 2D 圖片 (例如產品包裝或電影海報)。使用者只要將手機相機對準特定圖片,就能觸發 AR 體驗,例如將手機的相機對準電影海報,並讓人物從畫面中彈出並展開場景。
ARCore 也會追蹤動態圖片,例如公車公車側邊的看板廣告。
您可以離線編譯圖片以建立圖片資料庫,或者也可以從裝置即時新增個別圖片。註冊完成後,ARCore 會偵測這些影像和圖片的邊界,並傳回對應的姿勢。
分享
ARCore Cloud Anchor API 可讓您建立適用於 Android 和 iOS 裝置的協作或多人對戰應用程式。
使用 Cloud Anchors 時,一部裝置會將錨點和鄰近的特徵點傳送至雲端進行託管。這些錨點可與其他相同環境中的 Android 或 iOS 裝置使用者共用。這可讓應用程式算繪附加至這些錨點的相同 3D 物件,讓使用者同時享有相同的 AR 體驗。
瞭解詳情
在您選擇的平台上建構 AR 體驗,開始實際運用這些概念。