【AR Foundation】影象跟蹤

配置Unity的Android環境

配置環境

1。在工具欄選擇File -> Build Settings,在平臺列表選擇Android,點選Switch Platform轉換平臺。

2。在工具欄選擇Window -> Package Manager,在介面中下載

AR Foundation,ARCore XR Plugin

3。在工具欄選擇Edit -> Project Settings -> Player ->Other Settings,刪除

vulkan

,取消

Multithreaded Rendering

遇到的錯誤

出現瞭如下錯誤:

1。D:\Download\artemplate-master\Temp\gradleOut\unityLibrary\src\main\java\com\unity3d\player\UnityPlayerActivity。java使用或覆蓋了已過時的 API。

這只是個提示,提醒API已過時,但不影響執行。

2。Missing ‘package’ key attribute on element package at :arcore_client……。

關鍵出錯點,解決辦法參考:

影象跟蹤

影象跟蹤的基本操作

1。建立一個參考影象庫,為了更好的分類管理,在Assets下新建一個資料夾命名為ImageLib,右鍵

Create -> XR -> Reference Image Library

,將新建的參考庫命名為

RefImgaeLib

參考影象庫用來儲存一系列的參考影象用於對比,每一個影象跟蹤程式都必須有一個參考影象庫,但需要注意的是,參考影象庫中儲存的實際是參考影象的特徵值資訊而不是原始影象,這有助於提高對比速度與魯棒性。參考影象庫越大,影象對比就會越慢,建議參考影象庫的影象不要超過1000張。

2。在Assets下新建一個Pictures資料夾,用來存放要識別的影象。選擇剛剛新建的參考庫(RefImageLib),在Inspector面板選擇

Add Image

新增參考影象,選擇要識別的影象,勾選

Specify Size

Keep Texture of Runtime

,並且設定Specify Size下面的

Physical Size

(這個值可以多嘗試,確定一個合適的大小)。

Specify Size:為加速影象檢測識別過程,一些底層SDK要求提供一個2D待檢測影象的物理尺寸,所以如果要設定,這個值一定會是一個大於0的長寬值對,當一個值發生變化時,Unity會根據參考影象的比例自動調整另一個值。

【AR Foundation】影象跟蹤

3。在Assets下新建一個Prefabs資料夾,用來存放要顯示的三維模型(可以先在Hierarchy面板新建模型後將其拖入Prefabs資料夾,並將Hierarchy中的模型刪除掉)。

AR Session Origin元件的作用是將可跟蹤物件(如平面和特徵點)姿態資訊轉換為Unity場景中的最終位置、方向和比例。

AR中Session用來管理 AR 應用的狀態、處理 AR 應用生命週期,是 AR API的主要入口,由其控制在目標平臺上啟用或禁用AR。

5。選擇AR Session Origin,為其新增一個

AR Tracked Image Manager

元件,在Reference Library選項選擇第一步新建的參考庫RefImageLIb,在Tracked Image Prefab選項選擇想要顯示的三維模型。

【AR Foundation】影象跟蹤

6。測試執行。

【AR Foundation】影象跟蹤

遇到的問題

識別影象所顯現的三維模型一直處於圖片的中心位置,在Unity中調整模型的位置也無改變。

解決辦法:增加一個Plane用來對照要識別的影象,將模型放置在想要顯示的位置,把模型設為Plane的子物體,將Plane作為新的預製體,新增到AR Session Origin下的AR Tracked Image Manager元件的Tracked Image Prefab中。

注:所新增的Plane不能設定為固定大小,隨著所識別影象的大小變化,Plane也應該變化,下面的一行程式碼為追蹤識別影象尺寸的語句。

這裡還有一個額外的注意點:

由於指令碼是透過控制父物體去適應識別影象的大小,從而改變父物體下子物體的大小,所以在加入子物體之前,務必要調整好父物體的比例,這樣最後的子物體顯示效果比例才正確。

VRARMR交流群:695965244

TAG: 影象AR參考IMAGE識別