虛擬校園增強(qiáng)現(xiàn)實(shí)可視化技術(shù)研究_第1頁(yè)
虛擬校園增強(qiáng)現(xiàn)實(shí)可視化技術(shù)研究_第2頁(yè)
虛擬校園增強(qiáng)現(xiàn)實(shí)可視化技術(shù)研究_第3頁(yè)
虛擬校園增強(qiáng)現(xiàn)實(shí)可視化技術(shù)研究_第4頁(yè)
虛擬校園增強(qiáng)現(xiàn)實(shí)可視化技術(shù)研究_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

錯(cuò)誤!未找到引用源。 世界坐標(biāo)系:即真實(shí)場(chǎng)景坐標(biāo)系,用來(lái)描述真實(shí)世界物體的位置和姿態(tài)。設(shè)空間中一點(diǎn)在世界坐標(biāo)系中位置為(X,Y,Z)該點(diǎn)在攝像機(jī)的攝影下成像為點(diǎn)(x,y)。 理想屏幕坐標(biāo)系:攝像機(jī)對(duì)現(xiàn)實(shí)世界物體進(jìn)行數(shù)字化采集,使用的數(shù)字圖像里的坐標(biāo)系,其平面與攝像機(jī)光軸垂直。 攝像機(jī)坐標(biāo)系:視頻采集設(shè)備內(nèi)部的坐標(biāo)系,攝像機(jī)坐標(biāo)系與理想屏幕坐標(biāo)系的轉(zhuǎn)換關(guān)系一般由視頻采集設(shè)備內(nèi)部的參數(shù)決定。 世界坐標(biāo)系下的點(diǎn)與攝像機(jī)中投影點(diǎn)的像素坐標(biāo)關(guān)系如下:mxy1=f10q其中,f1、f2、p、q和m為攝像機(jī)內(nèi)參,可由攝像機(jī)標(biāo)定求解,R、T為攝像機(jī)外參,即攝像機(jī)在世界坐標(biāo)系中的位置和姿態(tài),可估算。第四章增強(qiáng)現(xiàn)實(shí)顯示設(shè)備和交互方式4.1增強(qiáng)現(xiàn)實(shí)顯示設(shè)備和顯示技術(shù)目前增強(qiáng)現(xiàn)實(shí)系統(tǒng)的顯示技術(shù)主要有頭盔顯示器、投影式(顯示技術(shù))、可穿戴顯示器、普通顯示器。頭盔顯示器:即在頭盔中安裝顯示設(shè)備,用戶穿戴頭盔,頭盔內(nèi)含有各種傳感器和震動(dòng)裝置,頭盔隨著用戶頭部移動(dòng)而移動(dòng),使用戶更加有沉浸式體驗(yàn)??梢詫?shí)時(shí)跟蹤眼睛和頭部的位置,從而計(jì)算虛擬物體或場(chǎng)景與眼睛和頭部的空間相對(duì)位置,將其疊加在現(xiàn)實(shí)世界顯示,達(dá)到增強(qiáng)現(xiàn)實(shí)的效果。投影式顯示技術(shù):利用光學(xué)成像系統(tǒng)將虛擬圖像投在屏幕上顯示,例如電影放映、幻燈片等、全息影像。克服了頭盔顯示范圍有限的問(wèn)題,投影可以顯示范圍更廣更加細(xì)致的圖像,增強(qiáng)用戶的體驗(yàn)。普通顯示器:包括液晶顯示、手機(jī)屏幕顯示。隨著智能手機(jī)和移動(dòng)互聯(lián)網(wǎng)的發(fā)展,目前手機(jī)的增強(qiáng)顯示應(yīng)用占據(jù)了很大一部分市場(chǎng)。增強(qiáng)現(xiàn)實(shí)也逐漸由桌面端轉(zhuǎn)換到手持移動(dòng)端??纱┐黠@示器:用戶穿戴在身上,可以進(jìn)行顯示、追蹤和交互的設(shè)備,如數(shù)字眼鏡,這些設(shè)備上一般有陀螺儀、GPS等各種傳感器。目前最火的增強(qiáng)現(xiàn)實(shí)的可穿戴顯示設(shè)備主要是頭戴式的眼鏡,但是其價(jià)格昂貴且技術(shù)不是十分成熟。例如2018年很火的MagicLeap公司的首款定價(jià)2295美元AR產(chǎn)品“MagicLeapOne”包括谷歌在內(nèi)的各大公司為其注資23億美元,該裝置由可穿戴計(jì)算機(jī)、連線、觸摸控制裝置,以及頭戴裝置組成,號(hào)稱擺脫了PC機(jī)的束縛可全身心擁抱大自然(目前仍以室內(nèi)應(yīng)用為主)。其圓盤(pán)狀可穿戴計(jì)算機(jī)內(nèi)置6核英偉達(dá)“Parker”處理器,集成帕斯卡級(jí)別GPU;板載8GB內(nèi)存,128GB閃存。但是該裝置仍需改進(jìn),其頭部和眼球跟蹤仍不可靠,畫(huà)面與背景的重合度仍需調(diào)整。圖3-4MagicLeapOne(來(lái)源:MagicLeap) 2019年微軟在世界移動(dòng)大會(huì)上正式發(fā)布HoloLens2混合現(xiàn)實(shí)設(shè)備,搭載了高通驍龍850處理器,包含全新的全息處理單元(HPU)和人工智能協(xié)處理器,將在今年發(fā)售,定價(jià)更貴,為3500美元,其主要賣給工人,不是給消費(fèi)者使用,主要是給一線工人設(shè)計(jì)的,方便那些很難將電腦或智能手機(jī)融入日常工作的工人設(shè)計(jì)的。4.2AR設(shè)備交互方式 用戶與增強(qiáng)現(xiàn)實(shí)進(jìn)行交互的途徑主要有兩種:裸手操作和語(yǔ)音控制。在未來(lái)的實(shí)際應(yīng)用場(chǎng)景中,AR頭部顯示器作為一個(gè)移動(dòng)設(shè)備,使用一個(gè)額外的控制設(shè)備會(huì)顯得比較不實(shí)用、不方便。而手勢(shì)操作和語(yǔ)音控制都不涉及額外的控制器。裸手操作已經(jīng)出現(xiàn)很多年,技術(shù)比較成熟,在增強(qiáng)現(xiàn)實(shí)的應(yīng)用中很多公司將其作為主要的技術(shù)方向。包括很多的游戲機(jī)都含有體感控制器,增強(qiáng)玩家的游戲體驗(yàn)。裸手操作包含兩部分,第一部分是手勢(shì)跟蹤,通過(guò)計(jì)算機(jī)視覺(jué)的方式精確的追蹤用戶的雙手位置和手部的姿態(tài)。反應(yīng)到交互上就是用戶在不佩戴任何設(shè)備的情況下,將手作為控制器來(lái)使用,例如直接用空手去點(diǎn)擊空間中的虛擬對(duì)象。這當(dāng)然是很困難的,需要計(jì)算機(jī)視覺(jué)建立起對(duì)于用戶手部姿態(tài)的空間重建,并且判斷手的位置是否與渲染出來(lái)的虛擬對(duì)象有接觸,然后觸發(fā)相應(yīng)的事件。第二部分是對(duì)手勢(shì)的理解,這需要在手勢(shì)跟蹤的基礎(chǔ)上理解用戶手勢(shì)的含義:例如手掌往左往右揮動(dòng)就是左右滑翻頁(yè)操作,OK手勢(shì)就是確定。第一部分中手勢(shì)跟蹤技術(shù)上的最大限制就是精度問(wèn)題,交互最重要的就是要得到反饋,例如,用手指頭觸碰虛擬物體,就需要計(jì)算機(jī)視覺(jué)非常精確的判斷這個(gè)觸碰是否成立。如果計(jì)算機(jī)判斷失誤就會(huì)導(dǎo)致誤操作。讓用戶得到錯(cuò)誤的反饋,從而影響用戶的交互體驗(yàn)。第二部分的難度更高,把手勢(shì)跟蹤比作“看到”用戶的手勢(shì),那么手勢(shì)理解就是“看懂”用戶的手勢(shì)。這就需要考慮到人工智能,通過(guò)人工智能和圖像識(shí)別來(lái)看懂千變?nèi)f化的手勢(shì)。手勢(shì)操作還有幾個(gè)問(wèn)題,例如手勢(shì)的隱喻,各種手勢(shì)代表什么意思,如何規(guī)定統(tǒng)一的手勢(shì)操作規(guī)范,這需要大量的時(shí)間來(lái)普及,建立起手勢(shì)的隱喻。手勢(shì)還有高能耗問(wèn)題,能廣泛應(yīng)用的交互手段大部分都是低能耗的。語(yǔ)音交互也很大程度上與手勢(shì)交互相似,語(yǔ)音識(shí)別是人工智能中的一方面的應(yīng)用,目前技術(shù)比較成熟。但是仍不夠智能。在AR方面跟技術(shù)關(guān)系不大,主要是場(chǎng)景的問(wèn)題,在很多場(chǎng)景語(yǔ)音控制可能并不適用,例如AR的一個(gè)方面應(yīng)用是游戲娛樂(lè),而這些娛樂(lè)場(chǎng)所都很嘈雜,語(yǔ)音交互就可能失效。在一些場(chǎng)合也不是發(fā)聲,比如劇場(chǎng)、圖書(shū)館等。未來(lái)的AR交互設(shè)備會(huì)包括以下特性:(1)擁有按鈕,可以點(diǎn)擊,但是不必太復(fù)雜。(2)擁有觸摸屏,何以利用手指進(jìn)行交互操作。(3)擁有震動(dòng)反饋。(4)擁有標(biāo)記,能讓AR設(shè)備對(duì)其在三維空間中進(jìn)行六自由度的定位有慣性傳感器(6)有一定的接觸感應(yīng),可以獲得手指的狀態(tài),能跟蹤手指的狀態(tài)和力度。

第五章虛擬校園增強(qiáng)現(xiàn)實(shí)可視化系統(tǒng)的實(shí)現(xiàn)5.1總體技術(shù)流程5.1.1技術(shù)流程圖圖5-1增強(qiáng)現(xiàn)實(shí)應(yīng)用系統(tǒng)技術(shù)流程圖5.2開(kāi)發(fā)環(huán)境介紹5.2.1Unity3D 為什么要選擇unity3D作為構(gòu)建增強(qiáng)現(xiàn)實(shí)應(yīng)用的平臺(tái),因?yàn)樵撥浖螺d安裝很簡(jiǎn)單,而且市面上很多的游戲以及AR應(yīng)用都是基于這款引擎開(kāi)發(fā)的,這款引擎十分成熟,配套的學(xué)習(xí)視頻、腳本API以及各種學(xué)習(xí)資料十分完善,在很多學(xué)習(xí)網(wǎng)站上都可以找到學(xué)習(xí)資料,這款軟件有免費(fèi)學(xué)習(xí)版和企業(yè)版,而且免費(fèi)版不限時(shí),十分適合初學(xué)者和從業(yè)者使用。還支持Vuforia插件。全英文界面可能是該軟件的一項(xiàng)難點(diǎn),學(xué)習(xí)起來(lái)有些困難。要注意的是下載安裝unity時(shí)要勾選支持Vuforia插件,如果采用別的開(kāi)發(fā)方式,如采用ARCore開(kāi)發(fā)方式就勾選ARCore,本文采用的是Unity3D+Vuforia的方式來(lái)進(jìn)行開(kāi)發(fā)的。圖4-1unity官網(wǎng)下載個(gè)人版unityUnity新建一個(gè)項(xiàng)目時(shí)在“Template(模板)”選擇框要勾選“3D”這個(gè)選項(xiàng)。Unity的初始界面如上圖右邊所示,Unity采用的是組件式開(kāi)發(fā)模式,左側(cè)為當(dāng)前場(chǎng)景的所含物體的目錄樹(shù),中間上半部分是場(chǎng)景、資源商店、游戲和動(dòng)畫(huà)視圖,可來(lái)回切換,下半部分是該項(xiàng)目所包含的資源包以及各類數(shù)據(jù)、腳本、預(yù)制體,可以導(dǎo)入新的資源,也可以導(dǎo)出。右側(cè)為組件視圖,可以通過(guò)為某個(gè)物體添加組件的形式來(lái)進(jìn)行開(kāi)發(fā),例如給某個(gè)人物添加一個(gè)腳本組件并對(duì)其編程來(lái)控制人物行走。建立一個(gè)AR應(yīng)用,通常包括以下幾個(gè)基礎(chǔ)部分:ARCamera、Imagetarget(標(biāo)識(shí)圖)、虛擬模型、掛載的組件。5.2.2Vuforia為什么要選擇Vuforia這個(gè)AR開(kāi)發(fā)工具包,首先是因?yàn)檫@款開(kāi)發(fā)包學(xué)習(xí)難度較ARToolkit小,沒(méi)有很多涉及底層算法的編程需要,而且Vuforia直接以插件的形式完美支持了Unity,在導(dǎo)入Vuforia的數(shù)據(jù)庫(kù)時(shí)直接在網(wǎng)上下載并拖拽進(jìn)unity的資源欄就可以成功導(dǎo)入,十分簡(jiǎn)捷方便。在Unity的官網(wǎng)上可以找到基于Vuforia開(kāi)發(fā)的AR應(yīng)用的小例子,便于初學(xué)者進(jìn)行學(xué)習(xí)。而且Vuforia免費(fèi)功能強(qiáng)大,是當(dāng)前AR應(yīng)用開(kāi)發(fā)的熱門(mén)工具包。5.2.3Sketchup Sketchp是一套直接面向設(shè)計(jì)方案創(chuàng)作過(guò)程的設(shè)計(jì)工具,它的界面簡(jiǎn)潔方便用戶短期內(nèi)掌握,適用范圍廣,方便的推拉功能,通過(guò)一個(gè)圖形就可以方便的生成3D幾何體,不需要復(fù)雜的三維建模,google于2006年收購(gòu)Sketchup及其開(kāi)發(fā)公司。本文的模型均由SketchUp建模,該軟件較3DMax操作更簡(jiǎn)單,而且也方便將模型導(dǎo)入U(xiǎn)nity3D中。5.2.4C#腳本語(yǔ)言 Unity用的編譯器是C#的跨平臺(tái)開(kāi)源編譯器mono,而且是unity更改過(guò)的mono,這個(gè)編譯器是給予C#.net2.0的語(yǔ)法的,但是由于unity的更改,使得它也支持了一些.net3.5的語(yǔ)法。C#腳本語(yǔ)言的跨平臺(tái)性能更好。5.3詳細(xì)開(kāi)發(fā)步驟5.3.1創(chuàng)建AR系統(tǒng)所需的基本組件ARCamera和ImageTarget首先要?jiǎng)h除新建的unity項(xiàng)目中左邊目錄樹(shù)中的Maincamera(因?yàn)闉榱朔乐古cARCamera沖突,ARCamera中有實(shí)現(xiàn)AR 應(yīng)用的組件和掛載的腳本,MainCamera沒(méi)有,MainCamera主要用充當(dāng)開(kāi)發(fā)游戲的攝像頭,不適合AR應(yīng)用,所以刪除),然后點(diǎn)擊主菜單欄GameObject->VuforiaEngine->ARCamera新建一個(gè)ARCamera,這個(gè)時(shí)候unity會(huì)提示VuforiaEngine導(dǎo)入提示,點(diǎn)擊Import導(dǎo)入,看到左側(cè)出現(xiàn)ARCamera。圖4-2VuforiaEngine導(dǎo)入點(diǎn)擊GameObject->VuforiaEngine->Image,創(chuàng)建一個(gè)標(biāo)識(shí)圖,unity會(huì)提示你是否導(dǎo)入默認(rèn)數(shù)據(jù)庫(kù),如果你還沒(méi)下載Vuforia官網(wǎng)上的自己制作的標(biāo)識(shí)圖數(shù)據(jù)資源包就可以點(diǎn)擊導(dǎo)入默認(rèn)的數(shù)據(jù)資源,就會(huì)出現(xiàn)默認(rèn)資源,會(huì)看到默認(rèn)的標(biāo)識(shí)圖,如果只是制作一個(gè)簡(jiǎn)單的DEMO,就可以將這個(gè)標(biāo)識(shí)圖照片下載打印出來(lái),實(shí)現(xiàn)一個(gè)簡(jiǎn)單事例應(yīng)用。接下來(lái)將如何制作Vuforia的標(biāo)識(shí)圖。進(jìn)入Vuforia的官網(wǎng),注冊(cè)一個(gè)賬號(hào)并登錄,點(diǎn)擊上邊的Develop然后點(diǎn)擊GetDevelopmentKey,獲得一個(gè)開(kāi)發(fā)者密鑰,等會(huì)要用。圖4-3Vuforia注冊(cè)登錄獲取密鑰在TargetManager中點(diǎn)擊AddDatabase,創(chuàng)建一個(gè)存放標(biāo)識(shí)圖的數(shù)據(jù)庫(kù)。點(diǎn)進(jìn)你的數(shù)據(jù)庫(kù),上傳標(biāo)識(shí)圖圖片,也可以是自己制作的,或者直接在一張圖里面截取的局部標(biāo)識(shí),Vuforia支持4種標(biāo)識(shí)類型,SingleImage(單張圖片、Cuboid(長(zhǎng)方體)、Cylinder(圓柱體)、3DObject(3D模型物體)。本文使用的是單張標(biāo)識(shí)圖類型。然后服務(wù)器會(huì)對(duì)你上傳的圖像進(jìn)行特征點(diǎn)提取,以便后續(xù)的圖像識(shí)別。下圖右圖中的小的黃色“+”號(hào)即為標(biāo)識(shí)圖的特征點(diǎn),Augmentable后的評(píng)星即為標(biāo)識(shí)圖打分,滿星5個(gè)。標(biāo)識(shí)圖選取應(yīng)該盡量選擇具有高對(duì)比度、豐富的細(xì)節(jié)、棱角分明和沒(méi)有重復(fù)元素的圖片,盡量不要選擇對(duì)稱圖形。識(shí)別圖必須是8位或者24位的PNG或者JPG圖片。JPG文件必須是RGB無(wú)灰度(非灰色),最大支持文件2.25M。圖4-4上傳標(biāo)識(shí)圖圖片并由服務(wù)器提取特征點(diǎn)點(diǎn)擊主菜單欄File->BuildSettings該對(duì)話框左下角的PlayerSettings中勾選VuforiaAugmentedReality以此來(lái)激活A(yù)RCamera中的VuforiaBehaviour組件,并點(diǎn)擊該組件中的打開(kāi)VuforiaEngineConfiguration按鈕進(jìn)入配置界面,將第(3)步獲得的密鑰復(fù)制粘貼到配置界面中的AppLicenseKey這一項(xiàng)中。配置界面中部的MaxSimultaneousTrackedimages和MaxSimultaneousTrackedobjects就是同時(shí)能追蹤識(shí)別的圖片或物體數(shù)量,可以自己設(shè)置任意大小,與電腦性能有關(guān)。圖4-5ARCamera配置界面下載標(biāo)識(shí)物數(shù)據(jù)庫(kù)并導(dǎo)入unity中。將下載的Database的unity包拖拽到unity界面下Assets(資源)目錄下。點(diǎn)擊import導(dǎo)入。圖4-6下載database資源包并導(dǎo)入unity點(diǎn)擊GameObject創(chuàng)建一個(gè)三維物體立方體。然后將其拖拽到左側(cè)標(biāo)識(shí)圖子目錄下,根據(jù)兩者坐標(biāo)位置不同,在場(chǎng)景視圖里拖拽該立方體位于標(biāo)識(shí)圖正上面盡量與其貼合。點(diǎn)擊屏幕上方的播放按鈕,在游戲視圖里就能看到程序運(yùn)行的界面,調(diào)用了電腦的攝像頭來(lái)捕捉畫(huà)面,當(dāng)捕捉到你的標(biāo)識(shí)圖照片與你下載的標(biāo)識(shí)圖數(shù)據(jù)庫(kù)里的圖片進(jìn)行匹配,匹配成功就能將虛擬物體疊加在你的標(biāo)識(shí)圖上。這樣一個(gè)小的AR的DEMO就完成了。圖4-7AR小事例Sketchup建模并導(dǎo)入unity在SketchUp中建立校園的三維模型并導(dǎo)出為FBX文件格式存放。因?yàn)镾ketchUp相對(duì)3Dmax簡(jiǎn)單比較適合初學(xué)者,只需要簡(jiǎn)單學(xué)習(xí)就能建模,SketchUp的模型要導(dǎo)入U(xiǎn)nity必須轉(zhuǎn)換為FBX文件格式才能導(dǎo)入。圖Sketchup中建立的三維模型圖4-8導(dǎo)入unity中的三維模型導(dǎo)入LeanTouch的資源包,并添加各交互組件在unity中進(jìn)入AssetStore(資源商店)搜索LeanTouch,下載導(dǎo)入這個(gè)資源包,在左側(cè)目錄樹(shù)下右鍵新建Lean->Touch。然后給每個(gè)你上一步建立的空物體添加三個(gè)Lean的組件,這三個(gè)組件分別是:LeanTranslate、LeanRotate、LeanScale。這幾個(gè)組件分別用來(lái)實(shí)現(xiàn)用戶與虛擬模型的移動(dòng)、旋轉(zhuǎn)、放大縮小的交互操作,這是在移動(dòng)端通過(guò)手指的手勢(shì)操作來(lái)實(shí)現(xiàn)的。圖4-10導(dǎo)入LeanTouch手勢(shì)資源包旋轉(zhuǎn)主要代碼: protectedvirtualvoidRotate(floattwistDegrees) { varcamera=LeanTouch.GetCamera(Camera,gameObject); if(camera!=null) {// varaxis=transform.InverseTransformDirection(camera.transform.forward); transform.rotation*=Quaternion.AngleAxis(twistDegrees,axis); } }移動(dòng)主要代碼:protectedvirtualvoidTranslate(Vector2screenDelta) { //確認(rèn)相機(jī)的存在 varcamera=LeanTouch.GetCamera(Camera,gameObject); if(camera!=null) { //要移動(dòng)的物體在屏幕的位置 varscreenPoint=camera.WorldToScreenPoint(transform.position); //添加增加的位置 screenPoint+=(Vector3)screenDelta; //轉(zhuǎn)換到世界坐標(biāo)系 transform.position=camera.ScreenToWorldPoint(screenPoint); } }放大縮小主要代碼:protectedvirtualvoidScale(Vector3scale) { if(ScaleClamp==true) { scale.x=Mathf.Clamp(scale.x,ScaleMin.x,ScaleMax.x); scale.y=Mathf.Clamp(scale.y,ScaleMin.y,ScaleMax.y); scale.z=Mathf.Clamp(scale.z,ScaleMin.z,ScaleMax.z); } transform.localScale=scale; }導(dǎo)入手機(jī)端接下來(lái)介紹如何將unity的程序?qū)胧謾C(jī)終端實(shí)現(xiàn)調(diào)用手機(jī)攝像頭掃描標(biāo)識(shí)圖來(lái)實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí)應(yīng)用。因?yàn)槭謾C(jī)攝像頭比電腦攝像頭的像素高很多,所以對(duì)標(biāo)識(shí)圖的圖像識(shí)別更有幫助,識(shí)別也更精準(zhǔn)。點(diǎn)擊File->BuildSettings->PlayerSettings->OtherSettings,這里面有幾個(gè)必要項(xiàng)要設(shè)置好,Identification下的PackageName必須按照其要求填寫(xiě),如果不符合要求,點(diǎn)build時(shí)會(huì)提示這里的錯(cuò)誤。還要將AndroidTVCompatibility這一項(xiàng)的勾選去掉。其他一些無(wú)關(guān)緊要的設(shè)置例如圖標(biāo)設(shè)置,可以不用設(shè)置,系統(tǒng)會(huì)用默認(rèn)的unity的圖標(biāo)和載入界面。在ScenesInBuild欄目中看到有別的場(chǎng)景將其刪除后點(diǎn)擊AddOpenScenes添加當(dāng)前場(chǎng)景進(jìn)去,左下角的平臺(tái)根據(jù)你的移動(dòng)終端選擇IOS或者Android,本文移動(dòng)端用的是安卓系統(tǒng),選擇Android,點(diǎn)擊Build,等待一會(huì),生成APK文件,將其發(fā)送給手機(jī)端安裝運(yùn)行,就可以運(yùn)行手機(jī)端的增強(qiáng)現(xiàn)實(shí)應(yīng)用了。圖4-11導(dǎo)入手機(jī)端圖4-12手機(jī)端截圖手機(jī)端的攝像頭不能自動(dòng)對(duì)焦,需要對(duì)ARCamera添加控制腳本使其能自動(dòng)對(duì)焦,否則,手機(jī)端的系統(tǒng)只能捕捉第一時(shí)間對(duì)準(zhǔn)的焦距,就不能調(diào)整焦距了。首先給ARCamera添加一個(gè)C#腳本組件,然后將下面這段代碼加入進(jìn)去運(yùn)行之后,手機(jī)里的這個(gè)應(yīng)用就能根據(jù)與圖像的距離自動(dòng)調(diào)整焦距。publicclassCameraMode:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);VuforiaARController.Instance.RegisterOnPauseCallback(OnPaused);}//UpdateiscalledonceperframevoidUpdate(){}privatevoidOnVuforiaStarted(){CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);}privatevoidOnPaused(boolpaused){if(!paused){//resumed//SetagainautofocusmodewhenappisresumedCameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);}}}5.3.6彈出框交互設(shè)計(jì)設(shè)計(jì)用戶交互點(diǎn)擊按鈕彈出顯示模型的信息的彈出界面。在創(chuàng)建的標(biāo)識(shí)圖子目錄下右鍵創(chuàng)建一個(gè)Button按鈕和一個(gè)Image,這兩者都在畫(huà)布Canvas下面作為子物體。在Image下創(chuàng)建一個(gè)Button按鈕和一個(gè)文本框,這個(gè)按鈕用來(lái)關(guān)閉彈出框,文本框用來(lái)顯示模型信息介紹。修改各個(gè)按鈕與文本框的位置避免互相疊加在一起(會(huì)影響按鈕的響應(yīng)),其他設(shè)置可以試著修改。然后將Image物體配置界面頂部的勾去掉就會(huì)發(fā)現(xiàn)Image中設(shè)置的文本框和按鈕不見(jiàn)了。給第一個(gè)添加的Button設(shè)置點(diǎn)擊響應(yīng)事件,在配置界面的OnClick()點(diǎn)擊“+”,添加一欄,將Image從左側(cè)拖入到RuntimeOnly下的框內(nèi),并將后面的勾打上。函數(shù)選擇,GameObject.SetActive,來(lái)激活彈出框。設(shè)置完成。給取消按鈕同樣設(shè)置,只不過(guò)后面不打上勾。圖4-13彈出框交互設(shè)計(jì)5.3.7對(duì)所有模型實(shí)現(xiàn)上述步驟最后將所有模型導(dǎo)入unity與一整張標(biāo)識(shí)圖對(duì)應(yīng)調(diào)好空間位置。圖4-14所有模型導(dǎo)入5.4關(guān)鍵技術(shù)5.4.1模型坐標(biāo)系與unity世界坐標(biāo)系的轉(zhuǎn)換 由于SketchUp中模型的坐標(biāo)系與unity中心坐標(biāo)系不同,所以在導(dǎo)入unity后可能坐標(biāo)值是相同的但是與標(biāo)識(shí)圖位置不同,雖然可以直接拖拽到標(biāo)識(shí)圖上,但是這樣會(huì)導(dǎo)致之后的交互操作出現(xiàn)問(wèn)題,比如旋轉(zhuǎn)放大縮小模型。Unity中有pivot和center兩個(gè)坐標(biāo)系。Pivot就是模型的真實(shí)坐標(biāo)軸,就是建模軟件中的坐標(biāo)軸,center是unity自己個(gè)根據(jù)模型的mesh(網(wǎng)格)計(jì)算的中心位置坐標(biāo)系,和模型的真實(shí)坐標(biāo)軸無(wú)關(guān),每個(gè)物體都有一個(gè)自帶的Transform組件,這個(gè)組件里可以調(diào)整該物體的位置、大小、旋轉(zhuǎn)。Transform的坐標(biāo)位置就是pivot坐標(biāo)系的位置。一般的平移旋轉(zhuǎn)操作只能對(duì)pivot進(jìn)行操作,而不能直接對(duì)center坐標(biāo)系操作,因此,我們需要建立一個(gè)空物體,將模型掛載在這個(gè)剛創(chuàng)建的空物體之下,并將空物體坐標(biāo)系位置設(shè)置在模型坐標(biāo)系位置。首先將模型拖入場(chǎng)景中(可以直接拖入左側(cè)目錄樹(shù)中),將模型的坐標(biāo)位置設(shè)置為(0,0,0),可以看到從外界導(dǎo)入unity中的模型雖然坐標(biāo)位置都設(shè)置為0了,但是離unity坐標(biāo)系原點(diǎn)位置仍有很遠(yuǎn)的距離。這里需要計(jì)算模型中心位置,就是center坐標(biāo)系的位置,這也是下面代碼的核心。publicclassCalcuCenter:MonoBehaviour{publicGameObjectgameObjectMeshRender;//UsethisforinitializationvoidStart(){Debug.Log("對(duì)象網(wǎng)格中心在世界坐標(biāo)系位置:"+gameObjectMeshRender.GetComponent<MeshRenderer>().bounds.center.ToString("f4"));}}在導(dǎo)入的模型新建一個(gè)c#腳本組件然后將這段代碼加進(jìn)去,在模型的配置界面會(huì)看到一個(gè)GameObjectMeshRender欄,將導(dǎo)入模型點(diǎn)開(kāi)將模型模型子目錄下的Mesh拖拽到該欄目下。然后點(diǎn)擊運(yùn)行在控制臺(tái)就可以看到打印輸出的模型在center坐標(biāo)系位置。圖4-9計(jì)算模型網(wǎng)格中心在世界坐標(biāo)系的位置新建一個(gè)空物體,然后將其位置設(shè)置為上圖顯示的坐標(biāo)位置,然后將該模型拖拽到這個(gè)空物體下作為它的子物體,這樣以后就可以直接通過(guò)控制同屬于unity坐標(biāo)系下的這個(gè)空物體來(lái)控制模型的平移、旋轉(zhuǎn)、放大縮小等等。5.4.2實(shí)現(xiàn)點(diǎn)擊某個(gè)模型實(shí)現(xiàn)移動(dòng)、縮放、旋轉(zhuǎn)功能首先在左側(cè)目錄樹(shù)建立一個(gè)空物體命名Select3D(Tap)然后給其添加LeanFingerTap和LeanSelect兩個(gè)腳本組件。對(duì)每個(gè)上述建立的存放三維模型的父物體添加一個(gè)BoxCollider(碰撞器),用來(lái)檢測(cè)手指的觸碰。通過(guò)LeanTouch獲取手指操作信息然后使用手指操作信息對(duì)三維模型進(jìn)行相應(yīng)的操作。然后給每個(gè)存放三維模型的父物體添加一個(gè)LeanSelectable組件,用這個(gè)組件來(lái)實(shí)現(xiàn)對(duì)該物體的選擇,否則當(dāng)你移動(dòng)、旋轉(zhuǎn)或者縮放時(shí)一個(gè)三維模型時(shí)其他三維模型也會(huì)跟著一起移動(dòng)、旋轉(zhuǎn)或者縮放。圖旋轉(zhuǎn)操作總結(jié)與展望6.1總結(jié) 隨著增強(qiáng)現(xiàn)實(shí)技術(shù)的成熟,國(guó)內(nèi)外各大企業(yè)和高校都著手與增強(qiáng)現(xiàn)實(shí)應(yīng)用的研究與開(kāi)發(fā)。盡管大部分為人熟知的增強(qiáng)現(xiàn)實(shí)應(yīng)用都是偏向娛樂(lè)游戲?yàn)槟康牡?。但是也有很多學(xué)者和研究人員已經(jīng)將增強(qiáng)現(xiàn)實(shí)技術(shù)應(yīng)用到科學(xué)研究、醫(yī)療、教育、維修等各個(gè)與人們息息相關(guān)的領(lǐng)域。增強(qiáng)現(xiàn)實(shí)正在融入人們的生活當(dāng)中。本文通過(guò)對(duì)增強(qiáng)現(xiàn)實(shí)技術(shù)的研究與分析,開(kāi)發(fā)了一款增強(qiáng)現(xiàn)實(shí)虛擬校園系統(tǒng)。結(jié)合虛擬校園,來(lái)對(duì)地圖可視化進(jìn)行增強(qiáng)現(xiàn)實(shí)表達(dá),將虛擬校園疊加在紙質(zhì)地圖上,并開(kāi)發(fā)了移動(dòng)端交互操作功能,擴(kuò)展了紙質(zhì)地圖的表達(dá)緯度,增強(qiáng)了紙質(zhì)地圖的交互性、可操作性、動(dòng)態(tài)性。讓紙質(zhì)地圖表達(dá)內(nèi)容更加豐富,實(shí)現(xiàn)了手機(jī)終端與紙質(zhì)地圖的融合,給用戶帶來(lái)了更多層次的體驗(yàn)。6.2展望本文將大部分重要步驟都詳細(xì)的展示出來(lái),可以供大家學(xué)習(xí)參考使用。但是由于本人水平有限,目前很多可以實(shí)現(xiàn)的很棒的功能在本系統(tǒng)中還沒(méi)有實(shí)現(xiàn)。例如:導(dǎo)航功能。通過(guò)指定目標(biāo)將虛擬線路疊加在地圖上進(jìn)行現(xiàn)實(shí),或者結(jié)合GPS定位技術(shù)直接在手機(jī)端顯示實(shí)時(shí)路線??臻g分析功能。緩沖區(qū)分析、通視分析、坡度分析等復(fù)雜的空間分析功能。娛樂(lè)游戲功能。例如像之前很火的增強(qiáng)現(xiàn)實(shí)游戲Pokemongo,可以實(shí)現(xiàn)與地圖更多有趣的交互操作。還可以與電子地圖結(jié)合起來(lái)使用,對(duì)地圖進(jìn)行標(biāo)記、查詢等內(nèi)容,結(jié)合虛擬校園的圖書(shū)館,實(shí)現(xiàn)在線借書(shū)或者在線閱讀??梢赃M(jìn)行室內(nèi)瀏覽、導(dǎo)航。

參考文獻(xiàn)葉輝,史瑞芝,王帥,移動(dòng)增強(qiáng)現(xiàn)實(shí)在紙質(zhì)地圖中的應(yīng)用,測(cè)繪與地理空間信息,2018,41(1)199-200朱淼良,姚遠(yuǎn),蔣云良.增強(qiáng)現(xiàn)實(shí)綜述[J].中國(guó)圖象圖形學(xué)報(bào),2018,9(7):767-774.CaudellTP,MizellDW.Augmentedreality:anapplicationofheads-updisplaytechnologytomanualmanufacturingprocesses[C]//ProceedingsoftheTwenty-FifthHawaiiInternationalConferenceonSystemSciences.IEEE,2002.DonMcMahon,DavidF.Cihak&RachelWright(2015)AugmentedRealityasaNavigationTooltoEmploymentOpportunitiesforPostsecondaryEducationStudentsWithIntellectualDisabilitiesandAutism,JournalofResearchonTechnologyinEducatio

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論