【太虛AR_v0.1】使用教程 | SLAM(Markerless)

太虛AR(VOID AR)

官方網站:https://www.voidar.net
官方QQ羣:277574712
技術支持:[email protected]
商務合作:[email protected]
微信公衆號:voidar

這裏寫圖片描述

導言[ ★★★非常重要★★★ ]

VOID SLAM技術應用時,一定要將“模型的底面貼着地面”,獲得更好的貼地效果,以達到更好的體驗。

請仔細閱讀並參照本教程中[ 四、實現流程 ] -> [ 第八步、模型底面貼着地面,獲得更好的貼地感 ]

對比圖效果示意:

這裏寫圖片描述

動態圖效果示意:

這裏寫圖片描述

這裏寫圖片描述

一、簡介

VOID SLAM技術,不需要Marker圖像,就能在現實環境中自由放置虛擬內容,創造身臨其境的AR體驗。

二、閱讀指南

本教程主要介紹如何在Unity環境下進行操作。
默認讀者您擁有一定的軟件使用、應用開發經驗。
本教程只會對Unity的基礎使用進行簡要說明,如果希望更深入的瞭解,您可以訪問Unity官網查看更加詳細的教程。

三、搭建環境

在進行具體操作前,您需要安裝下列軟件,準備如下環境:

操作系統

  • Windows 7 或更高版本
  • OS X 10.10 或更高版本

Unity版本

支持Unity 3D版本爲:5.2.x - 5.6.x(32位或者64位)、2017.1
推薦使用5.4以後的版本(渲染效果提升)
下載地址:https://unity3d.com/cn/get-unity/download/archive
本教程中使用的Unity版本爲:5.5.2(64位)

四、實現流程

第一步、新建Unity工程

打開Unity,新建一個工程。填寫Project name爲“VOID SLAM”、選擇保存的位置,點擊[ Create project ]。

這裏寫圖片描述

第二步、導入太虛AR SDK

選中[ Assets ] -> [ Import Package ] -> [ Custom Package… ],導入太虛AR SDK。

這裏寫圖片描述

選擇下載好的SDK文件(.unitypackage),點擊[ 打開 ]按鈕。

這裏寫圖片描述

彈出界面,點擊[ Import ],導入過程需要耐心等待一段時間。

這裏寫圖片描述

如果彈出“API Update Required”界面,請點擊[ I Made a Backup, Go Ahead! ]。

這裏寫圖片描述

第三步、刪除Main Camera

Unity3D打開時默認是新的Scene,新的Scene自帶一個Main Camera和Directional Light對象,我們需要用SDK的ARCamera,故將默認的Camera刪除。

右鍵選中場景中自帶的“Main Camera”,點擊[ Delete ] 刪除。

這裏寫圖片描述

第四步、拖入預製件“ARCamera”

展開[ Assets ] -> [ VoidAR ] -> [ Prefabs ]目錄,將預製件“ARCamera”拖至場景中。

這裏寫圖片描述

操作成功後顯示如下。

這裏寫圖片描述

第五步、設置ARCamera

選中ARCamera,查看右側的“Inspector”欄,設置“Void AR Behaviour (Script)”組件屬性。

  • 設置MarkerType = “Markerless”

這裏寫圖片描述

第六步、設置App License Key

打開雲平臺網址,註冊賬號並登錄。

網站地址:http://cloud.voidar.net

這裏寫圖片描述

進入雲平臺,左側點擊[ 創建SLAM應用 ]。

這裏寫圖片描述

點擊[ 創建應用 ]。

這裏寫圖片描述

彈出界面填寫AppId,填寫完成後點擊[ 保存 ]。

  • 因AppId屬於唯一值,所以此處請您自行設置AppId,比如 “com.VOIDAR.SLAM”
  • 注:打包時設置的Bundle Identifier,必須與此處設置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ]

這裏寫圖片描述

完成後,即可獲得“AppKey”。

這裏寫圖片描述

返回Unity,選中ARCamera,查看右側的Inspector欄,繼續完成“App License Key”的設置。

這裏寫圖片描述

第七步、添加模型

右鍵點擊場景,彈出列表中點擊[ Create Empty ]。

這裏寫圖片描述

創建了一個“GameObject”。
這裏寫圖片描述

選中“GameObject”,並將其座標調整爲(0,0,0)。

這裏寫圖片描述

右鍵點擊“GameObject”,列表中選中“3D Object”,點擊[ Cube ]。

這裏寫圖片描述

在GameObject下方,創建了一個3D模型“Cube”。

這裏寫圖片描述

爲了生成模型的時候,模型大小比較合適,選中“Cube”,調整模型的位置和大小。

Position調整爲(X , Y , Z = 0 , 0 , 0)

Scale調整爲(X , Y , Z = 0.3 , 0.3 , 0.3)

這裏寫圖片描述

第八步、模型底面貼着地面,獲得更好的貼地感[ ★★★非常重要★★★ ]

VOID SLAM技術應用時,一定要將模型的底面貼着地面,獲得更好的貼地效果,以達到更好的體驗。

要使得模型的底面貼着地面,有2種方法:

  1. 調整模型的中心點:
    使用3d Max等軟件,將3D模型的中心點,調整至“模型底部中心”。本教程不詳細介紹,具體的操作可以參考:改變模型軸心點的方法

  2. 添加參照平面,Unity中直接調整模型座標位置
    Unity中新建的模型,中心會默認在模型正中。通過添加一個Plane平面做參照,將模型底面貼着Plane平面即可。
    下文將按照該方法進行設置。

新建的“Cube”模型,中心默認在模型正中。

創建一個Plane作爲參照,右鍵點擊場景,列表中選中“3D Object”,點擊[ Plane ]。

這裏寫圖片描述

選中“Plane”,將其座標調整爲(0,0,0)。

這裏寫圖片描述

選中3D模型“Cube”,拖動座標軸調整其位置,讓其底面貼着Plane。(X , Y , Z = 0 , 0.15 , 0)

這裏寫圖片描述

底面緊貼Plane,模型的座標位置就調整完成了。

右鍵選中“Plane”,點擊[ Delete ],刪除參照物,調整完成。

這裏寫圖片描述

第九步、設置觸發事件

先選中“ARCamera”,然後再鼠標左鍵點擊“GameObject”,按住不放,將其拖入“MakerlessNode”變量中。

這裏寫圖片描述

設置完成後,顯示如下。

這裏寫圖片描述

選中“GameObject”,點擊[ Add Compoent ],添加“Markerless Tracking“腳本組件。

這裏寫圖片描述

腳本綁定成功後,顯示如下。

這裏寫圖片描述

接着,需要創建一個腳本,實現Markerless跟蹤功能。在Assets目錄下,創建一個“Folder”。

這裏寫圖片描述

修改文件名爲“Scripts”。

這裏寫圖片描述

右鍵選中“Scripts”文件夾,創建一個新的C#腳本。

這裏寫圖片描述

修改文件名爲”SLAM”。

這裏寫圖片描述

雙擊“SLAM”腳本,複製粘貼如下代碼,並保存腳本。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SLAM : MonoBehaviour {

    void OnGUI()
    {
        var btnHeight = Screen.height * 0.1f;
        var btnWidth = btnHeight * 3.0f;
        var gap = 20;
        GUI.skin.button.fontSize = 36;
        if (GUI.Button(new Rect(Screen.width - btnWidth, gap, btnWidth, btnHeight), "Start"))
        {
            VoidAR.GetInstance().startMarkerlessTracking();//開始跟蹤
        }

        if (GUI.Button(new Rect(Screen.width - btnWidth, gap * 2 + btnHeight, btnWidth, btnHeight), "Reset"))
        {
            VoidAR.GetInstance().resetMarkerless();//重置
        }
     }
}

選中“ARCamera”,點擊[ Add Compoent ],添加“SLAM”腳本。

這裏寫圖片描述

腳本綁定成功後,顯示如下。

這裏寫圖片描述

第十步、保存場景

選中[ File] -> [ Save Scenes ] ,進行場景保存。

這裏寫圖片描述

設置文件名爲“VOID SLAM”,點擊[ 保存 ]按鈕。

這裏寫圖片描述

第十一步、打包Android或iOS

VOID SLAM是太虛AR自主研發的多元融合的技術,需使用慣性測量單元(簡稱IMU)。

因PC端沒有IMU,故無法進行調試,需要打包至手機端(Android或iOS)才能體驗到實際效果。

打包流程分爲“Android打包”、“iOS打包”。

- Android打包

打包Android,需要將Unity切換至Android平臺,點擊[ File ] -> [ Build Settings… ]。

這裏寫圖片描述

選中Android標籤,如果左下的[ Switch Platform ]按鈕爲灰色,需要下載Unity Android Support,請點擊右側的[ Open Download Page ]按鈕,下載並安裝。

這裏寫圖片描述

點擊[ Switch Platform ]按鈕,完成Android平臺的切換。

這裏寫圖片描述

切換完成後,先關閉Build Settings界面,繼續搭建打包環境。

選中[ Edit ] -> [ Preferences… ],設置參數。

這裏寫圖片描述

彈出界面選中“External Tools”選項,設置Android SDK和JDK。
如果本地沒有SDK和JDK,可以點擊後方的[ Download ],在彈出的網頁上進行下載即可。
也可以用鏈接下載安裝:
SDK(要科學上網才能打開):https://developer.android.com/studio/index.html#Other
JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html

安裝完成後,設置好SDK和JDK的路徑就可以了。

這裏寫圖片描述

選中ARCamera,查看右側的“Inspector”欄,設置“Void AR Behaviour (Script)”組件屬性。

  • 設置Camera = “後置攝像頭”

這裏寫圖片描述

選中[ File ] -> [ Build Settings… ],取消默認場景前方的勾選。然後點擊[ Add Open Scenes ],添加當前的場景。

這裏寫圖片描述

添加完成後,如下所示。

這裏寫圖片描述

點擊[ Player Settings… ]按鈕,查看右側的“Inspector”欄,設置屬性參數,您可以自定義。

  • 設置Company = “VOIDAR”
  • 設置Product Name = “VOID SLAM”
  • 設置Bundle Identifier= “com.VOIDAR.SLAM”(必須與第六步設置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ])

注:Bundle Identifier不能使用默認值,否則無法打包。

這裏寫圖片描述

完成設置後,點擊[ Build ]按鈕。

這裏寫圖片描述

設置文件名爲“VOID SLAM”,點擊[ 保存 ]按鈕,開始打包。

這裏寫圖片描述

打包過程需要耐心等待一段時間。

這裏寫圖片描述

完成後,將生成一個“VOID SLAM.apk”文件,安卓打包完成。

- iOS打包

iOS打包需要在Mac OS系統中完成,需要準備Mac設備(如MacBook Pro、MacBook、iMac、Mac mini等)。

在Unity中,將開發平臺切換至iOS,然後Build生成Xcode工程。

注:推薦使用Mac設備的Unity軟件來生成Xcode工程。如果之前是在Windows環境下編輯的,可以將Unity目錄下的整個工程文件,拷貝至Mac電腦中進行編輯處理。

啓動Unity,打開之前保存的、或者拷貝過來的VOID SLAM工程文件(工程已經打開的,跳過這步)

這裏寫圖片描述

點擊[ Open ]按鈕打開工程。

這裏寫圖片描述

將Unity切換至iOS平臺,點擊[ File ] -> [ Build Settings… ]。

這裏寫圖片描述

選中iOS標籤,如果左下的[ Switch Platform ]按鈕爲灰色,需要下載Unity iOS Support,請點擊右側的[ Open Download Page ]按鈕,下載並安裝。

這裏寫圖片描述

點擊[ Switch Platform ]按鈕,完成iOS平臺的切換。

這裏寫圖片描述

切換完成後,先關閉Build Settings界面。

選中ARCamera,查看右側的“Inspector”欄,設置“Void AR Behaviour (Script)”組件屬性。

  • 設置Camera = “後置攝像頭”

這裏寫圖片描述

選中[ File ] -> [ Build Settings… ],取消默認場景前方的勾選。然後點擊[ Add Open Scenes ],添加當前的VOID SLAM場景。

這裏寫圖片描述

添加完成後,如下所示。

這裏寫圖片描述

完成設置後,點擊[ Build ]按鈕。

這裏寫圖片描述

準備生成Xcode工程,命名爲“Output”,點擊[ Save ]。

這裏寫圖片描述

打開生成的Xcode文件。

這裏寫圖片描述

填寫配置,將自己的證書、iOS適應版本都正確選上:

左側點擊[ Unity-iPhone ],配置參數,您可以自定義。

  • 設置Display Name = “VOIDAR_Test”
  • 設置Bundle Identifier = “com.VOIDAR.SLAM”(必須與第六步設置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ])
  • 設置Version = “1.0”
  • 設置Build = “1.0”
  • 設置Team = “您自己的證書”
  • 設置Deployment Target = “8.1”

這裏寫圖片描述

General頁面往下拉,在Linked Frameworks and Libraries中,點擊“+”。

這裏寫圖片描述

彈出界面,選中“Accelerate.framework”,點擊[ Add ]。

這裏寫圖片描述

添加完成,Linked Frameworks and Libraries下方出現“Accelerate.framework”。

這裏寫圖片描述

添加攝像機權限。

選中“Info”標籤,點擊Supported interface orientations後面的“+”。在彈出列表中選中“Privacy - Camera Usage Description”。

這裏寫圖片描述

這裏寫圖片描述

選中”Build Settings”標籤,設置Enable Bitcode = “No”。

這裏寫圖片描述

數據線連接iphone或者ipad,點擊[ 運行 ],即可打包。

這裏寫圖片描述

完成後,iphone或者ipad上,將生成一個“VOIDAR_Test”的APP,iOS打包完成。

五、操作說明

Start:啓動VOID SLAM(Markerless),初始化虛擬物體(爲了得到更好的體驗效果,點擊啓動時,請對準一個近處、特徵豐富的平面)

Reset:重置VOID SLAM(Markerless),移除虛擬物體,停止跟蹤。

點擊[ Start ]已經生成了虛擬物體的情況下,如果需要切換環境,請先點擊[ Reset ],再點擊[ Start ]進行初始化。

平面要求:
1. 特徵豐富
2. 近處取景

平面示意:
這裏寫圖片描述

至此,VOID SLAM製作完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章