• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LeapMotion與Unity3D的虛擬天文實(shí)驗(yàn)室構(gòu)建

      2018-10-29 11:09蔡靜吉婉穎
      軟件導(dǎo)刊 2018年8期
      關(guān)鍵詞:太陽(yáng)系漫游天文

      蔡靜 吉婉穎

      摘要:虛擬現(xiàn)實(shí)技術(shù)的快速發(fā)展和體感設(shè)備的不斷更新為教育提供了新靈感。基于太陽(yáng)系行星及其運(yùn)動(dòng)規(guī)律,結(jié)合Leap Motion設(shè)備和 Unity 3D開發(fā)環(huán)境完成虛擬天文實(shí)驗(yàn)室的構(gòu)建。在介紹虛擬實(shí)驗(yàn)室場(chǎng)景和實(shí)驗(yàn)室定義的一系列控制角色移動(dòng)和場(chǎng)景切換的手勢(shì)后,展示根據(jù)自行定義手勢(shì)完成的沉浸式太陽(yáng)系漫游過程,為虛擬現(xiàn)實(shí)技術(shù)在教育領(lǐng)域的應(yīng)用提供有意義的探索。

      關(guān)鍵詞:天文實(shí)驗(yàn)室;太陽(yáng)系;虛擬操作;Leap Motion;Unity 3D

      DOIDOI:10.11907/rjdk.173240

      中圖分類號(hào):TP319

      文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)008-0186-04

      英文摘要Abstract:The rapid development of virtual reality technology and the continuous updating of somatosensory devices have provided new inspiration for education.In order to provide a more vivid presentation of the solar system of the planets and their laws of motion,this article combines the Leap Motion device and the Unity 3D development environment to complete the construction of a virtual astronomy laboratory.The virtual laboratory scene,a series of laboratory-defined gestures to control the role of mobile and scene switching gestures are introduced; the immersive solar roaming process is completed by self-defined gestures,which provides a very meaningful exploration in modern education with the technology of virtual reality.

      英文關(guān)鍵詞Key Words:astronomy laboratory; solar system; virtual operation; Leap Motion; Unity 3D

      0 引言

      近年來(lái)基于Unity 3D開發(fā)的虛擬現(xiàn)實(shí)(Virtual Reality, VR)技術(shù)應(yīng)用發(fā)展迅猛。VR技術(shù)的到來(lái),打破了傳統(tǒng)多媒體的呈現(xiàn)模式?,F(xiàn)代教育結(jié)合VR,給學(xué)習(xí)者帶來(lái)高沉浸學(xué)習(xí)體驗(yàn)。三星在美國(guó)的一個(gè)調(diào)查研究顯示,85%的老師認(rèn)可 VR 教育,認(rèn)為 VR 技術(shù)在教育方面有巨大潛力,能夠提高學(xué)生的學(xué)習(xí)效果[1]。

      受到科技館天文實(shí)驗(yàn)室啟發(fā),將虛擬現(xiàn)實(shí)與手勢(shì)控制結(jié)合,可以為天文教育賦予全新生命。對(duì)比傳統(tǒng)課堂中學(xué)生通過3D多媒體視頻觀察學(xué)習(xí)星體運(yùn)動(dòng)知識(shí)[2],VR虛擬實(shí)驗(yàn)室可以使學(xué)生更“近距離”地接觸天文知識(shí)。同時(shí),在虛擬實(shí)驗(yàn)室中加入手勢(shì)操作,能夠使用戶獲得更好的學(xué)習(xí)感受和效果[3]。2013年,美國(guó)LEAP公司推出了一款毫米級(jí)近距離捕獲手運(yùn)動(dòng)的體感設(shè)備——Leap Motion[4],為人機(jī)交互和體感互動(dòng)帶來(lái)新靈感。Leap Motion 的出現(xiàn)加速了手勢(shì)控制技術(shù)的發(fā)展[5],它不僅可以追蹤手掌運(yùn)動(dòng)、精確識(shí)別手勢(shì)變化,而且響應(yīng)速度快,還提供多種應(yīng)用程序接口,支持多種語(yǔ)言編程[6-7]。

      本文將Leap Motion和Unity 3D結(jié)合,構(gòu)建能夠通過手勢(shì)控制的虛擬天文實(shí)驗(yàn)室。通過定義不同的虛擬操作手勢(shì),給使用者帶來(lái)沉浸式學(xué)習(xí)體驗(yàn),使其能夠漫游浩瀚宇宙。

      1 系統(tǒng)總體設(shè)計(jì)

      由于構(gòu)建一個(gè)完整的天文虛擬實(shí)驗(yàn)室非常復(fù)雜,本文僅討論以太陽(yáng)系為對(duì)象的天文虛擬實(shí)驗(yàn)室的構(gòu)建,主要有以下研究?jī)?nèi)容:

      首先,利用Unity 3D 和 Maya搭建實(shí)驗(yàn)室及太陽(yáng)系場(chǎng)景,并在其中添加望遠(yuǎn)鏡、太陽(yáng)系行星等模型;然后,添加低頭行走并點(diǎn)擊觸發(fā)腳本,使用戶可以在實(shí)驗(yàn)室中走動(dòng),并在點(diǎn)擊望遠(yuǎn)鏡時(shí)切換至虛擬太陽(yáng)系場(chǎng)景。在太陽(yáng)系場(chǎng)景中定義3個(gè)觀察視角,結(jié)合一系列手勢(shì)操作,實(shí)現(xiàn)多角度觀察太陽(yáng)系的效果。

      實(shí)驗(yàn)室架構(gòu)如圖1所示。

      2 場(chǎng)景介紹

      為了增強(qiáng)用戶體驗(yàn)的沉浸感,本文所有場(chǎng)景都使用第一人稱視角。

      2.1 實(shí)驗(yàn)室場(chǎng)景

      關(guān)鍵模型:實(shí)驗(yàn)室模型和天文望遠(yuǎn)鏡模型。

      用戶初始進(jìn)入場(chǎng)景的位置是在實(shí)驗(yàn)室的入口處,用戶需要控制行走進(jìn)入天文實(shí)驗(yàn)室。望遠(yuǎn)鏡模型在實(shí)驗(yàn)室的左側(cè),用戶在實(shí)驗(yàn)室向左走可以到達(dá)天文望遠(yuǎn)鏡的位置。點(diǎn)擊天文望遠(yuǎn)鏡切換至漫游場(chǎng)景。

      2.2 太陽(yáng)系場(chǎng)景

      關(guān)鍵模型:太陽(yáng)系模型、各個(gè)星體模型及對(duì)應(yīng)文字框介紹。

      3個(gè)視角:漫游視角、俯視視角、行星介紹視角。

      用戶初始進(jìn)入太陽(yáng)系場(chǎng)景時(shí),默認(rèn)為漫游視角。用戶可以根據(jù)手掌移動(dòng)或者手指指向控制角色進(jìn)行移動(dòng),在整個(gè)太陽(yáng)系場(chǎng)景中漫游;第2視角為俯視視角。用戶用手掌畫圈可切換至該視角;第3個(gè)視角為行星觀察視角,用戶需要靠近并用手指觸碰具體的行星,切換至該行星的觀察視角,近距離觀察該行星模型及閱讀文字介紹。

      3 基于 Leap Motion 的手勢(shì)定義

      Leap Motion支持自定義手勢(shì),本系統(tǒng)主要有4種識(shí)別手勢(shì),如圖5所示,實(shí)現(xiàn)在實(shí)驗(yàn)室和虛擬場(chǎng)景內(nèi)的移動(dòng)和操作,對(duì)應(yīng)的操作功能如表1所示。

      4 虛擬天文實(shí)驗(yàn)室構(gòu)建

      4.1 公用部分代碼

      (1)碰撞檢測(cè)——點(diǎn)擊手勢(shì)。

      物體碰撞可以通過剛體組件(Rigidbody)和碰撞器組件(Collider)進(jìn)行檢測(cè)。其中,碰撞器組件Collider的IsTrigger屬性和OnTrigger Enter函數(shù)在天文實(shí)驗(yàn)室中經(jīng)常用到。IsTrigger屬性值為布爾值,用戶可以在函數(shù)執(zhí)行時(shí)設(shè)置該屬性值。當(dāng)值為True時(shí),碰撞器組件可以檢測(cè)碰撞,并在碰撞發(fā)生時(shí)執(zhí)行OnTiggerEnter函數(shù),當(dāng)值為False時(shí)則不作任何處理。

      事實(shí)上,所有的手部點(diǎn)擊動(dòng)作本質(zhì)上都是HandController與其它物體的碰撞。

      (2)手勢(shì)判斷——手掌開合。

      Leap Motion中定義的Hand.SphereRadius屬性保存了當(dāng)前幀(currentFrame)手掌半徑。此處設(shè)置閾值為50,當(dāng)該值大于50時(shí)表示用戶手掌攤開,小于50時(shí)表示用戶握拳。根據(jù)判斷手掌開合這兩種不同手勢(shì),觸發(fā)不同動(dòng)作。

      (3)手勢(shì)判斷——手部位置。

      Hand.PalmPosition返回的是手掌相對(duì)于Leap Motion的空間坐標(biāo)。當(dāng)手上下平移時(shí),坐標(biāo)Y值改變。當(dāng)手前后推動(dòng)時(shí),坐標(biāo)Z值改變。通過該屬性,可以獲得用戶手部位置,同時(shí)可以判斷手部移動(dòng)方向。

      (4)手勢(shì)判斷——畫圈。

      Leap Motion可以識(shí)別畫圈手勢(shì)。如果要在Unity中獲取手勢(shì)并判斷是否為畫圈手勢(shì),首先需要在Start函數(shù)中注冊(cè)該手勢(shì)。另外在Update函數(shù)中可獲取每一幀的手勢(shì)。通過判斷當(dāng)前手勢(shì)是否為畫圈手勢(shì),再進(jìn)行一系列操作。

      (5)Leap Motion 手勢(shì)方向轉(zhuǎn)換為Unity坐標(biāo)系。

      天文實(shí)驗(yàn)室漫游場(chǎng)景中需camera有朝手指方向移動(dòng)的功能,所以需將Leap Motion的手勢(shì)方向轉(zhuǎn)換為Unity場(chǎng)景中的坐標(biāo)。調(diào)用Leap Motion的內(nèi)置函數(shù)Leap.UnityVectorExtension.ToUnity(leapDirction,bool),返回Unity場(chǎng)景中的三維坐標(biāo)。

      (6)人物行走。

      在天文實(shí)驗(yàn)室里,設(shè)置當(dāng)用戶低頭30°~90°時(shí),觸發(fā)行走動(dòng)作。天文實(shí)驗(yàn)室采用第一人稱視角,所以將Character Controller(角色控制器)組件掛載在camera上。通過Unity的vrCamera.eulerAngles獲得camera與水平面的角度,即用戶低頭角度。判斷該角度是否處于設(shè)置區(qū)間內(nèi),若是則觸發(fā)行走動(dòng)作。

      vrCamera.TransformDirection(Vector3.forward)返回當(dāng)前camera向前的朝向,再將該方向向量傳入Character Controller 的SimpleMove函數(shù)中,另外再傳入一個(gè)速度值,最終實(shí)現(xiàn)角色直行移動(dòng)。

      4.2 太陽(yáng)系構(gòu)建

      (1)實(shí)現(xiàn)星球自轉(zhuǎn)與公轉(zhuǎn)動(dòng)作。太陽(yáng)系中星球的行為分為自轉(zhuǎn)和公轉(zhuǎn),使用Unity自帶的函數(shù)Rotate和RotateAround實(shí)現(xiàn)這些動(dòng)作。

      (2)實(shí)現(xiàn)星球運(yùn)動(dòng)軌跡的繪制。為了方便觀察星球的運(yùn)動(dòng),還需要繪制星球運(yùn)動(dòng)軌跡,利用圓的參數(shù)方程實(shí)現(xiàn)繪制星球運(yùn)動(dòng)的圓環(huán)軌道。

      4.3 手勢(shì)與場(chǎng)景交互操作實(shí)現(xiàn)

      (1)手掌控制角色移動(dòng)功能。

      在判斷手的半徑大于閾值后,關(guān)閉觸發(fā)器,此時(shí)不會(huì)發(fā)生場(chǎng)景切換。在當(dāng)前場(chǎng)景中,通過手掌上下移動(dòng)控制攝像機(jī)前進(jìn)后退,手掌前后移動(dòng)控制相機(jī)上下移動(dòng),實(shí)現(xiàn)在太陽(yáng)系漫游的效果。

      (2)手指控制角色移動(dòng)功能。

      在判斷手的半徑小于等于閾值后,開啟觸發(fā)器,可以通過手指控制角色前進(jìn),近距離觀察某個(gè)星球。

      (3)檢測(cè)碰撞場(chǎng)景切換功能。

      當(dāng)觸發(fā)器與標(biāo)簽為Plant的物體發(fā)生碰撞時(shí),切換到該行星的介紹場(chǎng)景。如圖7所示。

      (4)切換視角功能。

      切換視角本質(zhì)上就是切換camera??梢酝ㄟ^camera的SetActive方法將某個(gè)camera的屬性設(shè)為True,同時(shí),將HandController重新綁定到新切換的視角上。不同視角展現(xiàn)如圖8所示,其中左圖為漫游視角。右圖為俯視視角。

      (5) 手勢(shì)操控星球轉(zhuǎn)動(dòng)功能。

      在星球介紹場(chǎng)景下,如果在場(chǎng)景中只檢測(cè)到一只手,那么可以對(duì)當(dāng)前星球執(zhí)行旋轉(zhuǎn)操作。若檢測(cè)到手部的水平移動(dòng),相應(yīng)地對(duì)物體執(zhí)行順時(shí)針旋轉(zhuǎn)或者逆時(shí)針移動(dòng)。如圖9所示。

      5 結(jié)語(yǔ)

      本文通過 Leap Motion 和Unity 3D的集成,構(gòu)建了以太陽(yáng)系為對(duì)象的天文虛擬實(shí)驗(yàn)室,并驗(yàn)證了這種構(gòu)建方法的可行性。實(shí)驗(yàn)結(jié)果表明本文描述的方法可以實(shí)現(xiàn)體驗(yàn)者對(duì)太陽(yáng)系“沉浸式”觀測(cè)與學(xué)習(xí),并能夠使用本文自定義的手勢(shì)完成交互,為虛擬現(xiàn)實(shí)技術(shù)與教育領(lǐng)域的結(jié)合提供了新的靈感。

      參考文獻(xiàn):

      [1] 胡畔.政策 VR 教育已成“互聯(lián)網(wǎng)+教育”下的新模式[N].中國(guó)經(jīng) 濟(jì)時(shí)報(bào),2017 -03 -02(2).

      [2] 陳小亮.基于Java3D的太陽(yáng)系虛擬仿真研究[D].武漢:武漢科技大學(xué),2015.

      [3] 魏利,戴佳佳,王小雅,等.太陽(yáng)系虛擬仿真教學(xué)系統(tǒng)的設(shè)計(jì)與開發(fā)[J].數(shù)字教育,2017,3(05):75-80.

      [4] 劉德建,劉曉琳,張琰,等.虛擬現(xiàn)實(shí)技術(shù)教育應(yīng)用的潛力、進(jìn)展與挑戰(zhàn)[J].開放教育研究,2016,22(4):25-31.

      [5] 嚴(yán)利民,杜斌,潘浩,等.基于Leap Motion的三維動(dòng)態(tài)手指姿勢(shì)識(shí)別[J].激光與光電子學(xué)進(jìn)展,2016,53(11):92-98.

      [6] CRRIEL-RAZO Y,ICASIO-HERNANDEZ O,SEPULVEDA-CERVANTES G,et al.Leap motion controller three dimensional verification and polynomial correction[J].Measurement,2016,93:258-264.

      [7] 潘佳佳,徐昆.基于Leap Motion的三維自由手勢(shì)操作[J].中國(guó)科技論文,2015,10(2):207-212.

      [8] 黃俊,景紅.基于Leap Motion的手勢(shì)控制技術(shù)初探[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015,24(10):259-263.

      [9] 雷安琪,馮玉田,唐子成.改進(jìn)型手姿態(tài)關(guān)鍵點(diǎn)估計(jì)方法在Leap Motion中的應(yīng)用[J].工業(yè)控制計(jì)算機(jī),2017,30(9):36-37.

      [10] 朱惠娟.基于 Unity3D 的虛擬漫游系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(10):36-39.

      [11] 寧亞楠,楊曉文,韓燮.基于Leap Motion和Unity3D的虛擬沙畫手勢(shì)識(shí)別及交互[J].計(jì)算機(jī)工程與應(yīng)用,2017,53(24):202-206.

      [12] 劉哲,張永策,劉志廣,等.移動(dòng)終端下滴定分析虛擬實(shí)驗(yàn)室的研究[J].計(jì)算機(jī)與應(yīng)用化學(xué),2015,32(7):880-884.

      [13] WANG R Y.Real-time hand-tracking with a color glove[J].ACM Transactions on Graphics,2009,28(3):1-8.

      [14] GIESER S N,BOISSELLE A,MAKEDON F.Real-time static gesture recognition for upper extremity rehabilitation using the leap motion[C].Los Angeles:International Conference on Digital Human Modeling and Applications in Health,Safety,Ergonomics and Risk Management,2015.

      [15] KIM S L,SUK H J,KANG J H,et al.Using Unity 3D to facilitate mobile augmented reality game development[C].Internet of Things (WF-IoT),2014:21-26.

      (責(zé)任編輯:江 艷)

      猜你喜歡
      太陽(yáng)系漫游天文
      在太陽(yáng)系游山玩水
      太陽(yáng)系的今天
      勇闖太陽(yáng)系
      NASA漫游記
      一群“玩”天文的癡迷少年
      邊走邊看:漫游海底 夢(mèng)想成真
      上思县| 咸阳市| 威海市| 长泰县| 阳江市| 宜川县| 普陀区| 玛纳斯县| 互助| 丰原市| 郧西县| 屏东市| 远安县| 呈贡县| 夹江县| 同仁县| 米林县| 深泽县| 平乡县| 浦城县| 石狮市| 麻栗坡县| 平南县| 三亚市| 繁昌县| 郸城县| 华亭县| 滨州市| 阜宁县| 区。| 衡南县| 玉溪市| 建湖县| 延安市| 拜泉县| 墨脱县| 峨山| 甘谷县| 芜湖市| 阳东县| 都江堰市|