基礎概念

在深入研究 ARCore 之前,了解一些基本概念很有幫助。這些概念共同說明了 ARCore 如何實現讓虛擬內容看起來停留在真實表面上或附加到真實世界位置的體驗。

運動追踪

當您的手機通過世界移動,ARCORE使用這個過程被稱為同步定位與地圖,或者SLAM,來理解手機是相對於周圍的世界。 ARCORE檢測所捕獲的攝像機圖像稱為特徵點視覺上不同的功能,並使用這些點來計算其在位置變化。視覺信息與從設備的估計相對於世界隨時間的照相機的姿態(位置和取向)IMU慣性測量相結合。

通過將渲染 3D 內容的虛擬相機的姿勢與 ARCore 提供的設備相機的姿勢對齊,開發人員能夠從正確的角度渲染虛擬內容。渲染的虛擬圖像可以疊加在從設備攝像頭獲得的圖像之上,使其看起來好像虛擬內容是現實世界的一部分。

環境理解

ARCore 通過檢測特徵點和平面,不斷提高對現實世界環境的理解。

ARCORE尋找那些看起來趴在同一水平或垂直表面,如桌子或牆的特徵點簇,使得這些表面提供給您的應用程序為幾何平面。 ARCore 還可以確定每個幾何平面的邊界,並將該信息提供給您的應用程序。您可以使用此信息將虛擬對象放置在平面上。

由於 ARCore 使用特徵點來檢測平面,因此可能無法正確檢測沒有紋理的平面,例如白牆。

深入了解

ARCORE可以創建深度圖,其含有關於從給定的點表面之間的距離的數據,利用主RGB相機從圖像支持的設備。您可以使用深度圖提供的信息來實現身臨其境和逼真的用戶體驗,例如使虛擬對象與觀察到的表面準確碰撞,或者使它們出現在現實世界對象的前面或後面。

光估計

ARCore 可以檢測有關其環境照明的信息,並為您提供給定相機圖像的平均強度和色彩校正。此信息可讓您在與周圍環境相同的條件下照亮虛擬對象,從而增加真實感。

用戶互動

ARCore 使用命中測試來獲取與手機屏幕對應的 (x,y) 坐標(通過點擊或您希望應用程序支持的任何其他交互提供)並將光線投射到相機的世界視圖中,返回任何幾何平面或光線相交的特徵點,以及該相交在世界空間中的姿態。這允許用戶選擇或以其他方式與環境中的對象交互。

定向點

定向點可讓您將虛擬對象放置在有角度的表面上。當您執行返回特徵點的命中測試時,ARCore 將查看附近的特徵點並使用這些特徵點來嘗試估計給定特徵點處的表面角度。然後 ARCore 將返回一個考慮了該角度的姿勢。

由於 ARCore 使用特徵點簇來檢測表面的角度,因此可能無法正確檢測沒有紋理的表面,例如白牆。

錨點和可追踪對象

隨著 ARCore 提高對自身位置和環境的理解,姿勢可能會發生變化。當你想放置的虛擬對象,你需要定義一個,以確保ARCORE跟踪對象的位置隨著時間的推移。通常你創建時間基於命中測試返回,如中所描述的姿勢錨的用戶交互

姿勢可以改變的事實意味著 ARCore 可能會隨著時間的推移更新幾何平面和特徵點等環境對象的位置。飛機和點對象的特殊類型,稱為可跟踪。顧名思義,這些是 ARCore 將隨時間跟踪的對象。您可以將虛擬對象錨定到特定的可追踪對象,以確保即使設備四處移動,您的虛擬對象與可追踪對象之間的關係也能保持穩定。這意味著,如果您將虛擬 Android 小雕像放置在桌面上,如果 ARCore 稍後調整與桌面相關聯的幾何平面的姿勢,則 Android 小雕像仍會出現在桌子頂部。

增強圖像

增強圖像是一項功能,可讓您構建可以響應特定 2D 圖像(例如產品包裝或電影海報)的 AR 應用程序。用戶可以在將手機攝像頭對準特定圖像時觸發 AR 體驗——例如,他們可以將手機攝像頭對準電影海報,然後彈出一個角色並製作一個場景。

ARCore 還跟踪移動圖像,例如移動公交車側面的廣告牌。

可以離線編譯圖像以創建圖像數據庫,或者可以從設備實時添加單個圖像。註冊後,ARCore 將檢測這些圖像、圖像的邊界,並返回相應的姿勢。

分享

ARCore Cloud Anchor API 可讓您為 Android 和 iOS 設備創建協作或多人應用程序。

使用 Cloud Anchors,一台設備將一個錨點和附近的特徵點發送到雲端進行託管。這些錨點可以與同一環境中 Android 或 iOS 設備上的其他用戶共享。這使應用程序能夠渲染附加到這些錨點的相同 3D 對象,讓用戶同時擁有相同的 AR 體驗。

了解更多

通過在您選擇的平台上構建 AR 體驗,開始將這些概念付諸實踐。