ARcore 基礎原理(二)

2021-08-20 19:27:05 字數 1944 閱讀 5756

運動跟蹤:

當手機在現實世界中移動時,arcore 會通過vio過程來獲得手機相對於周圍世界的pose(為相對於世界座標系)。

過程是arcore 會檢測攝像頭拍攝的影象中的特徵點(視覺差異特徵,指特徵點隨時間的移動),並使用這些點來計算相機位置變化。 將這些視覺資訊與裝置 imu 的資料結果結合,可以實時估計出攝像頭相對於周圍世界座標系的姿態(位置和方向)。

通過將渲染 3d 內容的虛擬攝像頭pose與 arcore 提供的裝置攝像頭的pose進行對齊,開發者能夠從正確的透視角度渲染虛擬內容。然後渲染的虛擬影象可以疊加到從裝置攝像頭拍攝的影象上,使得虛擬內容看起來就像現實世界的一部分。

環境理解:

arcore 會通過檢測特徵點和平面來不斷改進它對現實世界環境的理解。

由於 arcore 使用特徵點來檢測平面,因此可能無法正確檢測像白牆一樣沒有紋理的平坦表面。

光照估測:

arcore 可以檢測環境中光線的相關資訊,並提供拍攝影象的平均光照強度和色彩校正。這些資訊能夠使用與周圍真實環境相同的光照來照射渲染的虛擬物體,以此來提公升它們的真實效果。

使用者互動:

定向點:

借助定向點,您可以將虛擬物體置於傾斜的表面上。 當您執行會返回特徵點的命中測試時,arcore 將檢視附近的特徵點並使用這些特徵點估算表面在給定特徵點處的角度。 然後,arcore會返回乙個將該角度考慮在內的姿態。

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

錨點(anchors)和可跟蹤物件(trackble):

隨著 arcore 更新它對自身位置和環境的理解,pose會變化。 當想要放置乙個虛擬物體時,需要定義乙個錨點(anchor)來確保 arcore 可以實時跟蹤物體。很多時候,需要基於命中測試(hit test)返回的姿態建立乙個錨點,如使用者互動中所述。

姿態會發生變化,這就意味著 arcore 可能會更新平面和特徵點等環境物體隨時間推移的位置。平面和特徵點是一種特殊型別的物體,稱為可跟蹤物件。 顧名思義,arcore 可以實時跟蹤這些物體。可以將虛擬物體錨點到特定的可跟蹤物件,這樣可以確保虛擬物體與可跟蹤物件之間的關係即使在裝置移動時也能保持穩定。 這意味著,如果將乙個虛擬的 android 小雕像放在書桌上,即使 arcore 稍後調整了與書桌關聯的平面的姿態,android 小雕像仍會看起來位於桌子上。

注:為了減少 cpu 開銷,請盡可能重用錨點並在不再需要時分離錨點。

增強影象:

可離線編譯影象以建立影象資料庫,也可以從裝置實時新增單獨的影象。註冊後,arcore 將檢測這些影象、影象邊界,然後返回相應的姿態。

共享:

借助 arcore 的 cloud anchors api,您可以建立適用於 android 和 ios 裝置的協作性或多人遊戲應用。

使用雲錨點,一台裝置可以將錨點和附近的特徵點傳送到雲端進行託管。 可以將這些錨點與同一環境中 android 或ios 裝置上的其他使用者共享。 這使應用可以渲染連線到這些錨點的相同 3d 物件,從而讓使用者能夠同步擁有相同的 ar 體驗。

ARcore 原理基礎 一

整理自arcore官網 是google 的增強現實體驗構建平台。arcore 利用不同的 api 讓您的手機能夠感知其環境 了解現實世界並與資訊進行互動。一些在android 和ios 上同時提供的 api 支援共享 ar 體驗。arcore 使用三個主要功能將虛擬內容與通過手機攝像頭看到的現實世界...

ARCore 二 執行環境 及 框架結構 md

arcore 二 執行環境 及 框架結構 環境執行 在學習arcore 的過程中我們避免不了,要使用真機或者模擬器來測試執行。目前來講,國內的適用真機型號不多,所以來看下模擬器的一些配置。使用arcore 需要先安裝 服務型apk 沒有介面,為其真的apk提供 框架結構 一 核心結構 arcore的...

Docker基礎及其原理(二)

1.1 docker四種網路模式 1 host模式 使用宿主機的ip和埠,使用 net host指定。2 container模式 新建立的容器使用指定容器的ip或埠,使用 net container name id指定。3 none模式 關閉容器網路模式,使用 net none指定。4 bridge...