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

太虛AR(VOID AR)

官方網(wǎng)站:https://www.voidar.net

官方QQ群:277574712

技術(shù)支持:ar@voidar.net

商務(wù)合作:bd@voidar.net

微信公眾號(hào):voidar

太虛AR微信公眾號(hào)

導(dǎo)言[ ★★★非常重要★★★ ]

VOID SLAM技術(shù)應(yīng)用時(shí),一定要將“模型的底面貼著地面”,獲得更好的貼地效果,以達(dá)到更好的體驗(yàn)。

請(qǐng)仔細(xì)閱讀并參照本教程中[ 四、實(shí)現(xiàn)流程 ] -> [ 第八步、模型底面貼著地面,獲得更好的貼地感 ]

對(duì)比圖效果示意:

動(dòng)態(tài)圖效果示意:

一、簡介

VOID SLAM技術(shù),不需要Marker圖像,就能在現(xiàn)實(shí)環(huán)境中自由放置虛擬內(nèi)容,創(chuàng)造身臨其境的AR體驗(yàn)。


二、閱讀指南

本教程主要介紹如何在Unity環(huán)境下進(jìn)行操作。

默認(rèn)讀者您擁有一定的軟件使用、應(yīng)用開發(fā)經(jīng)驗(yàn)。

本教程只會(huì)對(duì)Unity的基礎(chǔ)使用進(jìn)行簡要說明,如果希望更深入的了解,您可以訪問Unity官網(wǎng)查看更加詳細(xì)的教程。


三、搭建環(huán)境

在進(jìn)行具體操作前,您需要安裝下列軟件,準(zhǔn)備如下環(huán)境:

操作系統(tǒng)

- 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位)

太虛AR SDK

官方網(wǎng)站:https://www.voidar.net

下載地址:https://www.voidar.net/downloads.php


四、實(shí)現(xiàn)流程

第一步、新建Unity工程

打開Unity,新建一個(gè)工程。填寫Project name為“VOID SLAM”、選擇保存的位置,點(diǎn)擊[ Create project ]。


第二步、導(dǎo)入太虛AR SDK

選中[ Assets ] -> [ Import Package ] -> [ Custom Package... ],導(dǎo)入太虛AR SDK。

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

彈出界面,點(diǎn)擊[ Import ],導(dǎo)入過程需要耐心等待一段時(shí)間。

如果彈出“API Update Required”界面,請(qǐng)點(diǎn)擊[ I Made a Backup, Go Ahead! ]。


第三步、刪除Main Camera

Unity3D打開時(shí)默認(rèn)是新的Scene,新的Scene自帶一個(gè)Main Camera和Directional Light對(duì)象,我們需要用SDK的ARCamera,故將默認(rèn)的Camera刪除。

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


第四步、拖入預(yù)制件“ARCamera”

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

操作成功后顯示如下。


第五步、設(shè)置ARCamera

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

- 設(shè)置MarkerType = "Markerless"

第六步、設(shè)置App License Key

打開云平臺(tái)網(wǎng)址,注冊(cè)賬號(hào)并登錄。

網(wǎng)站地址:http://cloud.voidar.net

進(jìn)入云平臺(tái),左側(cè)點(diǎn)擊[ 創(chuàng)建SLAM應(yīng)用 ]。

點(diǎn)擊[ 創(chuàng)建應(yīng)用 ]。

彈出界面填寫AppId,填寫完成后點(diǎn)擊[ 保存 ]。

- 因AppId屬于唯一值,所以此處請(qǐng)您自行設(shè)置AppId,比如 "com.VOIDAR.SLAM"

- 注:打包時(shí)設(shè)置的Bundle Identifier,必須與此處設(shè)置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ]

完成后,獲得“AppKey”。

返回Unity,選中ARCamera,查看右側(cè)的Inspector欄,繼續(xù)完成“App License Key”的設(shè)置。

第七步、添加模型

右鍵點(diǎn)擊場景,彈出列表中點(diǎn)擊[ Create Empty ]。

創(chuàng)建了一個(gè)“GameObject”。

選中“GameObject”,并將其坐標(biāo)調(diào)整為(0,0,0)。

右鍵點(diǎn)擊“GameObject”,列表中選中“3D Object”,點(diǎn)擊[ Cube ]。

在GameObject下方,創(chuàng)建了一個(gè)3D模型“Cube”。

為了生成模型的時(shí)候,模型大小比較合適,選中“Cube”,調(diào)整模型的位置和大小。

Position調(diào)整為(X , Y , Z = 0 , 0 , 0)

Scale調(diào)整為(X , Y , Z = 0.3 , 0.3 , 0.3)


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

VOID SLAM技術(shù)應(yīng)用時(shí),一定要將模型的底面貼著地面,獲得更好的貼地效果,以達(dá)到更好的體驗(yàn)。

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

1. 調(diào)整模型的中心點(diǎn):

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

2. 添加參照平面,Unity中直接調(diào)整模型坐標(biāo)位置

Unity中新建的模型,中心會(huì)默認(rèn)在模型正中。通過添加一個(gè)Plane平面做參照,將模型底面貼著Plane平面即可。

下文將按照該方法進(jìn)行設(shè)置。

新建的“Cube”模型,中心默認(rèn)在模型正中。

創(chuàng)建一個(gè)Plane作為參照,右鍵點(diǎn)擊場景,列表中選中“3D Object”,點(diǎn)擊[ Plane ]。

選中“Plane”,將其坐標(biāo)調(diào)整為(0,0,0)。

選中3D模型“Cube”,拖動(dòng)坐標(biāo)軸調(diào)整其位置,讓其底面貼著Plane。(X , Y , Z = 0 , 0.15 , 0)

底面緊貼Plane,模型的坐標(biāo)位置就調(diào)整完成了。

右鍵選中“Plane”,點(diǎn)擊[ Delete ],刪除參照物,調(diào)整完成。


第九步、設(shè)置觸發(fā)事件

先選中“ARCamera”,然后再鼠標(biāo)左鍵點(diǎn)擊“GameObject”,按住不放,將其拖入“MakerlessNode”變量中。

設(shè)置完成后,顯示如下。

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

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

接著,需要?jiǎng)?chuàng)建一個(gè)腳本,實(shí)現(xiàn)Markerless跟蹤功能。在Assets目錄下,創(chuàng)建一個(gè)“Folder”。

修改文件名為“Scripts”。

右鍵選中“Scripts”文件夾,創(chuàng)建一個(gè)新的C#腳本。

修改文件名為"SLAM"。

雙擊“SLAM”腳本,復(fù)制粘貼如下代碼,并保存腳本。

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”,點(diǎn)擊[ Add Compoent ],添加“SLAM”腳本。

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

第十步、保存場景

選中[ File] -> [ Save Scenes ] ,進(jìn)行場景保存。

設(shè)置文件名為“VOID SLAM”,點(diǎn)擊[ 保存 ]按鈕。

第十一步、打包Android或iOS

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

因PC端沒有IMU,故無法進(jìn)行調(diào)試,需要打包至手機(jī)端(Android或iOS)才能體驗(yàn)到實(shí)際效果。

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


- Android打包

打包Android,需要將Unity切換至Android平臺(tái),點(diǎn)擊[ File ] -> [ Build Settings... ]。

選中Android標(biāo)簽,如果左下的[ Switch Platform ]按鈕為灰色,需要下載Unity Android Support,請(qǐng)點(diǎn)擊右側(cè)的[ Open Download Page ]按鈕,下載并安裝。

點(diǎn)擊[ Switch Platform ]按鈕,完成Android平臺(tái)的切換。

切換完成后,先關(guān)閉Build Settings界面,繼續(xù)搭建打包環(huán)境。

選中[ Edit ] -> [ Preferences... ],設(shè)置參數(shù)。

彈出界面選中“External Tools”選項(xiàng),設(shè)置Android SDK和JDK。

如果本地沒有SDK和JDK,可以點(diǎn)擊后方的[ Download ],在彈出的網(wǎng)頁上進(jìn)行下載即可。

也可以用鏈接下載安裝:

SDK(要科學(xué)上網(wǎng)才能打開):https://developer.android.com/studio/index.html#Other

JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html


安裝完成后,設(shè)置好SDK和JDK的路徑就可以了。

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

- 設(shè)置Camera = "后置攝像頭"

選中[ File ] -> [ Build Settings... ],取消默認(rèn)場景前方的勾選。然后點(diǎn)擊[ Add Open Scenes ],添加當(dāng)前的場景。

添加完成后,如下所示。

點(diǎn)擊[ Player Settings... ]按鈕,查看右側(cè)的“Inspector”欄,設(shè)置屬性參數(shù),您可以自定義。

- 設(shè)置Company = "VOIDAR"

- 設(shè)置Product Name = "VOID SLAM"

- 設(shè)置Bundle Identifier= "com.VOIDAR.SLAM"(必須與第六步設(shè)置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ])

注:Bundle Identifier不能使用默認(rèn)值,否則無法打包。

完成設(shè)置后,點(diǎn)擊[ Build ]按鈕。

設(shè)置文件名為“VOID SLAM”,點(diǎn)擊[ 保存 ]按鈕,開始打包。

打包過程需要耐心等待一段時(shí)間。

完成后,將生成一個(gè)“VOID SLAM.apk”文件,安卓打包完成。


- iOS打包

iOS打包需要在Mac OS系統(tǒng)中完成,需要準(zhǔn)備Mac設(shè)備(如MacBook Pro、MacBook、iMac、Mac mini等)。

在Unity中,將開發(fā)平臺(tái)切換至iOS,然后Build生成Xcode工程。

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


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

點(diǎn)擊[ Open ]按鈕打開工程。

將Unity切換至iOS平臺(tái),點(diǎn)擊[ File ] -> [ Build Settings... ]。

選中iOS標(biāo)簽,如果左下的[ Switch Platform ]按鈕為灰色,需要下載Unity iOS Support,請(qǐng)點(diǎn)擊右側(cè)的[ Open Download Page ]按鈕,下載并安裝。

點(diǎn)擊[ Switch Platform ]按鈕,完成iOS平臺(tái)的切換。

切換完成后,先關(guān)閉Build Settings界面。

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

- 設(shè)置Camera = "后置攝像頭"

選中[ File ] -> [ Build Settings... ],取消默認(rèn)場景前方的勾選。然后點(diǎn)擊[ Add Open Scenes ],添加當(dāng)前的VOID SLAM場景。

添加完成后,如下所示。

完成設(shè)置后,點(diǎn)擊[ Build ]按鈕。

準(zhǔn)備生成Xcode工程,命名為“Output”,點(diǎn)擊[ Save ]。

打開生成的Xcode文件。

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

左側(cè)點(diǎn)擊[ Unity-iPhone ],配置參數(shù),您可以自定義。

- 設(shè)置Display Name = "VOIDAR_Test"

- 設(shè)置Bundle Identifier = "com.VOIDAR.SLAM"(必須與第六步設(shè)置的AppId相同,否則SLAM將無法正常使用。[ ★★★非常重要★★★ ])

- 設(shè)置Version = "1.0"

- 設(shè)置Build = “1.0”

- 設(shè)置Team = “您自己的證書”

- 設(shè)置Deployment Target = “8.1”


General頁面往下拉,在Linked Frameworks and Libraries中,點(diǎn)擊“+”。

彈出界面,選中“Accelerate.framework”,點(diǎn)擊[ Add ]。

添加完成,Linked Frameworks and Libraries下方出現(xiàn)“Accelerate.framework”。

添加攝像機(jī)權(quán)限。

選中“Info”標(biāo)簽,點(diǎn)擊Supported interface orientations后面的“+”。在彈出列表中選中“Privacy - Camera Usage Description”。

選中”Build Settings”標(biāo)簽,設(shè)置Enable Bitcode = “No”。

數(shù)據(jù)線連接iphone或者ipad,點(diǎn)擊[ 運(yùn)行 ],即可打包。

完成后,iphone或者ipad上,將生成一個(gè)“VOIDAR_Test”的APP,iOS打包完成。


五、操作說明

Start:啟動(dòng)VOID SLAM(Markerless),初始化虛擬物體(為了得到更好的體驗(yàn)效果,點(diǎn)擊啟動(dòng)時(shí),請(qǐng)對(duì)準(zhǔn)一個(gè)近處、特征豐富的平面)

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

點(diǎn)擊[ Start ]已經(jīng)生成了虛擬物體的情況下,如果需要切換環(huán)境,請(qǐng)先點(diǎn)擊[ Reset ],再點(diǎn)擊[ Start ]進(jìn)行初始化。


平面要求:

1. 特征豐富

2. 近處取景

平面示意:

至此,VOID SLAM制作完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評(píng)論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,155評(píng)論 3 425
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,635評(píng)論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評(píng)論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,255評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,646評(píng)論 1 326
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,838評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,399評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,146評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,338評(píng)論 1 372
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,565評(píng)論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評(píng)論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,059評(píng)論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,296評(píng)論 2 376

推薦閱讀更多精彩內(nèi)容

  • 趙建銅 秋山靜美天湛藍(lán), 印臺(tái)蘋果香又甜。 享譽(yù)天下,客商稱贊, 山鄉(xiāng)笑語頻頻傳。 不忘面朝黃土背朝天, 枝條瑟瑟...
    趙建銅閱讀 671評(píng)論 1 5
  • javascript是腳本語言?javascript萬物皆對(duì)象? 呵呵噠!帶你見識(shí)下js面對(duì)對(duì)象的魅力 是的是的,...
    PXCao閱讀 630評(píng)論 2 9
  • 今天發(fā)現(xiàn)本機(jī)的hostname被自動(dòng)修改了,原來是因?yàn)榧尤氲哪承┚钟蚓W(wǎng)的DHCP的原因,現(xiàn)在給出解決辦法,請(qǐng)參考:...
    jonesjedi閱讀 4,806評(píng)論 0 0
  • 放棄,這個(gè)奇怪的字眼, 仿佛如同窗外的云彩, 只是當(dāng)好奇驅(qū)動(dòng)我走向了窗臺(tái)。 他就惚地神秘成風(fēng), 無聲地進(jìn)了未成熟的...
    蟈蟈與蝸牛閱讀 239評(píng)論 0 0