天天看點

AR For Unity3D之HiAR分析

關于AR和Unity的基礎知識,請自行前往各自的文檔中心進行科普。

基于Hi AR1.2.0 ( hiar_sdk_unity_20160809_v1.2.0_3c0e908.zip  ( 47.4 MB )  )

Unity3D 5.3.5f1 x64

Windows 7 x64

羅技攝像頭(硬體),攝像頭支架

1. 在SDK的管理背景建立一個新應用,擷取應用的Appkey和Secret,在Unity中會用到。

2. 在SDK的管理背景中建立圖集,并添加圖檔,完成之後釋出圖集

3. 把圖集和應用進行關聯

4. 在SDK的管理背景中下載下傳本地識别封包件,一般是以圖集為命名的unitypackage檔案。

我建立的圖集名稱:xxdata

圖集中有以下兩張圖檔:

battleboard.png

card.png

下載下傳的本地識别封包件(xxdata.unitypackage),在導入到Unity中的檔案如下:

總結一下就是:

1. 在Editor\ImageTargetTextures\下有以圖集命名的檔案夾,檔案夾中有圖集中的圖檔檔案

2. 在StreamingAssets\HiAR\目錄下有以圖集命名的xml檔案和圖集命名的檔案夾,檔案夾下有圖檔Id命名的db檔案

xxdata.xml檔案内容如下:

32位key值檔案名的db檔案

某種格式的檔案,從裡面可以看到HiScene AR Key,猜測db中存儲了圖檔的識别點資料

圖集中每個圖檔有對應的一個db檔案,可知此db檔案必然和圖檔有關聯關系。

場景層次(Hierarchy)結構:

AR For Unity3D之HiAR分析

HiAR Camera (SDK的核心,綁定了兩個腳本:HiAREngineBehaviour,TargetManagerBehaviour)

​  camera (3D相機,渲染3D GameObject,綁定的腳本:HiARCameraBehaviour)

Imager Target (識别點,可以有多個,綁定的腳本:ImageTargetBehaviour,實作這幾個接口ITrackableEventHandler, ILoadBundleEventHandler, IRelativeMoveTarget)

​  識别成功:識别圖移動時或者有遮擋時,Transform的屬性會發生改變,并且ImageTarget下的Child會顯示

​  識别失敗:Transform屬性無變化,并且ImageTarget下的Child會隐藏

camera source (一個MeshRenderer,硬體攝像頭攝像到的圖像實時渲染在此(類似于render texture?))

camera background (2D相機,渲染camera source的圖形)

重點解釋:

 camera (3D相機 Clear Flags為Depth,拍攝場景中的3D GameObject)

AR For Unity3D之HiAR分析

camera background (2D相機,Clear Flags為Solid Clear,渲染物體攝像頭拍攝的畫面)

AR For Unity3D之HiAR分析

攝像頭拍攝的圖像顯示在camera source(mesh renderer)上

攝像頭拍攝的真實畫面和引擎生成的三維物體進行疊加。

當識别圖識别成功之後,執行一些操作,可以了解為Callback。

HiAR的例子是:識别成功之後,播放視訊。

當然你可以在識别成功之後,生成一些模型和場景出來,這樣就和開發其它遊戲一樣,可以對Scene中的GameObject進行控制,比如播放動畫,打鬥,特效之類的。

把識别圖上的圖像實時渲染在模型上(Material),類型塗鴉。

添加一個待塗包的模型,添加元件:HiARPaint,Shader:HiARPaint

硬體攝像頭拍攝識别圖(實時拍攝)

根據識别到的圖,提取圖像生成Material,動态地渲染。

期間會生成幾個識别點

過程中如果有拍攝到其它物體,新生成的材質會實時更新

多圖識别,就是在簡單識别的基礎上添加多個ImageTarget

步驟:

在HiAR Camera(HiAREngine元件) 的屬性面闆勾選 MuiltTarget

在場景中添加多個ImageTarget,并為每一個ImageTarget選擇識别圖

動态加載識别目标進行識别跟蹤的功能,繼承自TartgetDynamic

勾選 ImageTarget (ImageTargetBehaviour元件)的CenterPoint之後,帶有實體引擎效果的物體運動就有了中心點。

本文轉自趙青青部落格園部落格,原文連結:http://www.cnblogs.com/zhaoqingqing/p/5893923.html,如需轉載請自行聯系原作者

<a></a>