一、AR概念:
增強現實(Augmented Reality,簡稱AR),是在虛擬現實的基礎上發展起來的新技術,也被稱之為混合現實。是通過計算機系統提供的信息增加用戶對現實世界感知的技術,將虛擬的信息應用到真實世界,並將計算機生成的虛擬物體、場景或系統提示信息疊加到真實場景中,從而實現對現實的增強。
二、工具:
在這里我們主要是用高通的Vuforia SDK來演示如何在Unity下制作一個簡單的AR的demo,Vuforia SDK是一套很完整的可以直接調用的AR API,而假如想深入了解SDK內部的關於AR中圖片識別以及跟蹤的算法,我們需要從Open CV入手。
1.Unity——我使用的是Unity5.3.1f版本
2.Vuforia SDK插件——從官網(https://developer.vuforia.com/downloads/sdk)下載最新的5.5的Unity專用版本
三、實戰:
1.在Unity中新建一個3D項目,取名為TestAR
2.導入下載好的Vuforia SDK插件包:vuforia-unity-5-5-9.unitypackage
3.導入成功后,再Assets目錄下回多出一個Vuforia文件目錄和一些其他的輔助文件
4.將默認場景中的Main Camera刪掉,並將Vuforia/Prefabs目錄下的ARCamera相機拖至場景中
5.本文中我們要示范的是圖片的識別,所以我們需要將Vuforia/Prefabs目錄下的ImageTarget也拖至場景中,調整相機位置,知道瀏覽頁出現如下視圖:
由於還沒有選擇要進行識別的圖片,所以當前面板還是空白的,添加完所要識別的圖片后,應用會通過檢測攝像頭拍攝的現實世界畫面,與此圖進行對比。
6.由於高通的圖片識別都需要先將待識別的圖片上傳到其內部的圖片庫中,所以這里我們需要先到開發者后台完成一些准備工作。
a.打開鏈接:開發者后台,創建一個新的Database
b.在新建的Database中添加Target:
7.選中ImageTarget,設置Image Target Behaviour組件的Data Set屬性,會自動在網頁中跳轉到我們剛剛添加Database和Target的頁面,我們選中其中一張,點擊Download Database按鈕,就會彈出導出資源的選項框,選擇Unity Editor,再點擊Create我們就可以得到一個跟對應Database同名的資源包:Test.unitypackage
8.我們回到Unity工程,將剛剛生成的Test.unitypackage導入到工程中,可以看到除了一些配置文件之外,資源中還包含了我們上傳到高通網站上的圖片,它被轉換為材質:
9.導入完資源之后,回到ImageTarget組件上的Image Target Behaviour組件,選中指定的Database中指定的Target圖片之后,我們可以看到ImageTarget顯示我們選中的圖片:
10.設置ARCamera,對Database Load Behaviour中的Load Test Database和Activate都勾選上:
11.拖入一個模型,這個模型就是我們在手機等移動設備上使用相機對准識別圖片時才會出現的AR模型,當然這個模型最好作為ImageTarget的子物體,並設置好此模型的位置:
11.將當前工程打包成Apk安裝到手機上,PC上打開用於識別的背景圖片,真機運行直接拿手機對着圖片,查看結果如何。加入真機啟動時提示"Vuforia App is missing...",這是因為打包的時候沒有把給ARCamera添加App License Key填寫完整導致的,下面我們來介紹如何獲取這個參數:
a.打開開發者后台,選擇License Manager頁簽,這里就是證書管理的后台,我們需要為我們的App添加一個證書:
b.生成證書:
c.查看生成證書,並獲得App key:
d.將App key填寫到Unity中ARCamera組件的App License Key中:
12.重新打包Apk,並查看結果: