張濟(jì)麟,張艷鵬
?
應(yīng)用VR及AR技術(shù)的虛擬仿真實(shí)驗(yàn)設(shè)計(jì)與實(shí)現(xiàn)
張濟(jì)麟1,張艷鵬2
(1. 哈爾濱理工大學(xué)電氣與電子工程學(xué)院,遼寧 哈爾濱 150080; 2. 哈爾濱理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 哈爾濱 150080)
原有2D虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)存在實(shí)驗(yàn)效果不夠形象、人機(jī)交互方式單一、系統(tǒng)不夠智能的缺點(diǎn)。原有3D虛擬實(shí)驗(yàn)系統(tǒng)存在開發(fā)成本高、材質(zhì)渲染失真、無法跨平臺運(yùn)行等不足?;谝陨喜蛔?,本文應(yīng)用VR及AR技術(shù),引入高效的Unity3D游戲引擎,以大學(xué)工科專業(yè)的電工電子實(shí)驗(yàn)為實(shí)例,設(shè)計(jì)研發(fā)一套3D虛擬電工電子實(shí)驗(yàn)系統(tǒng)。該系統(tǒng)具有逼真的實(shí)驗(yàn)環(huán)境、多樣化的人機(jī)交互方式、智能的檢錯評分算法以及支持多平臺運(yùn)行的優(yōu)點(diǎn)。最后評估了系統(tǒng)的性能參數(shù),驗(yàn)證了其良好的實(shí)用性。
虛擬現(xiàn)實(shí);增強(qiáng)現(xiàn)實(shí);虛擬仿真實(shí)驗(yàn)
虛擬實(shí)驗(yàn)室的概念最早由美國弗吉尼亞大學(xué)的威廉·沃爾夫教授于1989年提出。目前,虛擬實(shí)驗(yàn)在物理、化學(xué)、醫(yī)學(xué)等多個領(lǐng)域都有所應(yīng)用[1-2]。首先,虛擬實(shí)驗(yàn)可讓實(shí)驗(yàn)人員更安全、更高效地完成現(xiàn)實(shí)實(shí)驗(yàn)的操作;其次,虛擬實(shí)驗(yàn)室的規(guī)劃與實(shí)現(xiàn)較之真實(shí)實(shí)驗(yàn)室更加快速、廉價;再次,虛擬實(shí)驗(yàn)可有效地解決實(shí)驗(yàn)室?guī)熧Y短缺問題。
國內(nèi)外都在致力于虛擬實(shí)驗(yàn)產(chǎn)品的研究與開發(fā),許多高校都開發(fā)了自己的虛擬實(shí)驗(yàn)室,如Wake Forest大學(xué)的CircuitMaker、MIT的iLab[3]、大連理工大學(xué)的虛擬精餾實(shí)驗(yàn)室[4]、中國地質(zhì)大學(xué)的虛擬物理實(shí)驗(yàn)室等。從目前的研發(fā)狀況來看,已有的虛擬實(shí)驗(yàn)系統(tǒng)以二維人機(jī)界面為主,這類虛擬實(shí)驗(yàn)可演示實(shí)驗(yàn)的基本原理,但存在著實(shí)驗(yàn)效果不夠形象、人機(jī)交互方式單一、實(shí)驗(yàn)系統(tǒng)不夠智能的缺點(diǎn);現(xiàn)有的3D虛擬實(shí)驗(yàn)系統(tǒng),又存在著系統(tǒng)研發(fā)成本高、虛擬材質(zhì)渲染不夠逼真等不足,且大多不支持跨平臺運(yùn)行。
為了解決上述存在的問題,推動虛擬實(shí)驗(yàn)的發(fā)展,本文提出了一套完整可行的3D虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)框架。通過此框架實(shí)現(xiàn)的虛擬電工電子實(shí)驗(yàn)系統(tǒng),具有高度逼真的3D虛擬環(huán)境和沉浸式的操作界面[5],能夠智能地提示實(shí)驗(yàn)過程中錯誤的操作,計(jì)算出準(zhǔn)確的實(shí)驗(yàn)成績。系統(tǒng)的開發(fā)成本低廉,硬件平臺部分僅需要普通個人計(jì)算機(jī)(PC)和Android系統(tǒng)移動設(shè)備;軟件平臺部分則采用游戲引擎Unity3D并結(jié)合AR SDK進(jìn)行3D虛擬環(huán)境搭建與邏輯功能實(shí)現(xiàn)。該設(shè)計(jì)框架同樣適用與化學(xué)、光學(xué)、力學(xué)以及數(shù)學(xué)等多學(xué)科的虛擬實(shí)驗(yàn)項(xiàng)目開發(fā)。
本文第二節(jié)介紹了Unity3D游戲引擎的特性;第三節(jié)描述了系統(tǒng)架構(gòu)與主要功能;第四節(jié)給出了系統(tǒng)關(guān)鍵部分的技術(shù)細(xì)節(jié);第五節(jié)評估了系統(tǒng)的主要性能參數(shù);第六節(jié)對全文進(jìn)行了總結(jié)。
Unity3D是由美國Unity Technologies公司開發(fā)的一款輕量級3D游戲引擎,具備跨平臺發(fā)布、高效能優(yōu)化、高性價比以及AAA級的3D畫面渲染效果等特點(diǎn),是目前最著名的虛擬現(xiàn)實(shí)系統(tǒng)開發(fā)工具之一[6]。
Unity3D底層渲染支持DirectX和OpenGL專業(yè)圖形API,具有強(qiáng)大的3D畫面渲染能力。其先進(jìn)的遮擋剔除(Occlusion Culling)技術(shù)、細(xì)節(jié)層級顯示技術(shù)(LOD)以及多線程渲染管道技術(shù),為高質(zhì)量的3D虛擬環(huán)境提供性能保障。
在NVIDIA PhysX專業(yè)物理引擎的支持下,開發(fā)者可以模擬剛體、柔體、關(guān)節(jié)等物理效果。此外,Unity3D高性能的燈光系統(tǒng),動態(tài)實(shí)時陰影、HDR技術(shù)以及鏡頭特效,可以滿足對真實(shí)實(shí)驗(yàn)的各種模擬需求。例如各類光線效果、重力效果、爆破效果、齒輪傳動和線路連接方式等。
圖1為3D虛擬實(shí)驗(yàn)系統(tǒng)研發(fā)的總體設(shè)計(jì)框架,自下而上分別為:真實(shí)實(shí)驗(yàn)的基本原理、系統(tǒng)核心技術(shù)支持、開發(fā)環(huán)境、AR SDK、運(yùn)行平臺以及具體的3D虛擬實(shí)驗(yàn)系統(tǒng)。其中,實(shí)驗(yàn)基本原理、VR技術(shù)與AR技術(shù)作為虛擬實(shí)驗(yàn)系統(tǒng)的核心支持,提供設(shè)計(jì)向?qū)c技術(shù)路線;Unity3D與3ds Max作為開發(fā)平臺,結(jié)合AR SDK,實(shí)現(xiàn)系統(tǒng)邏輯功能與3D模型的設(shè)計(jì)制作,系統(tǒng)可在PC、移動設(shè)備以及Web上運(yùn)行。
框架采用經(jīng)典的設(shè)計(jì)模式MVC(Model-View-Controller),它將整個系統(tǒng)開發(fā)劃分為三大模塊:模型組件、視圖組件和控制器組件[7]。模型組件是視圖組件與控制器組件之間的通信橋梁,控制器發(fā)出的具體操作信息會被傳送到模型組件中,模型組件經(jīng)過一系列的邏輯計(jì)算將相關(guān)信息發(fā)送到視圖組件,由視圖組件接收消息并最終展示給用戶。
圖1 基于Unity3D與AR的虛擬實(shí)驗(yàn)系統(tǒng)總體設(shè)計(jì)框架
此設(shè)計(jì)框架具有通用與靈活性,不僅適用于本文提出的虛擬電工電子實(shí)驗(yàn)系統(tǒng),同樣適用于化學(xué)、光學(xué)、力學(xué)和數(shù)學(xué)等多學(xué)科的虛擬實(shí)驗(yàn)設(shè)計(jì)。
本文提出的3D虛擬電工電子實(shí)驗(yàn)系統(tǒng)整體架構(gòu)目前包含四個子系統(tǒng),分別是三個虛擬電工電子實(shí)驗(yàn)和一個支持AR人機(jī)交互的器材瀏覽庫。
三個虛擬實(shí)驗(yàn)采用了統(tǒng)一的實(shí)現(xiàn)方式,主要模塊包括:實(shí)驗(yàn)原理介紹、教學(xué)模式、練習(xí)模式與考試模式。實(shí)驗(yàn)原理介紹提供對所做實(shí)驗(yàn)的理論基礎(chǔ)講解;教學(xué)模式使學(xué)生可以在3D虛擬實(shí)驗(yàn)環(huán)境中,分步驟地觀看正確的實(shí)驗(yàn)操作演示,并能觀察到正確的實(shí)驗(yàn)效果;練習(xí)模式同樣基于3D虛擬實(shí)驗(yàn)環(huán)境,學(xué)生學(xué)習(xí)實(shí)驗(yàn)基本原理與觀看正確實(shí)驗(yàn)步驟之后,可在練習(xí)模式中自主地選擇實(shí)驗(yàn)器材,進(jìn)行虛擬實(shí)驗(yàn)操作,系統(tǒng)會智能地檢測出實(shí)驗(yàn)過程中錯誤的操作,并給予正確操作的提示。三個虛擬實(shí)驗(yàn)均可在PC、Web以及Android系統(tǒng)移動設(shè)備上運(yùn)行。
支持AR顯示的器材瀏覽庫為用戶提供了一種新穎的人機(jī)交互方式。用戶使用手機(jī)的攝像頭識別預(yù)定義圖片后,即可在相應(yīng)圖片上顯示逼真的3D器材模型及其參數(shù)介紹。這種AR人機(jī)交互的器材瀏覽庫,加強(qiáng)了用戶體驗(yàn)度,也降低了實(shí)驗(yàn)對真實(shí)器材的損耗。
采用專業(yè)模型制作軟件設(shè)計(jì)與構(gòu)建虛擬實(shí)驗(yàn)系統(tǒng)所有的3D模型。在3ds Max中按照真實(shí)實(shí)驗(yàn)器材的比例,對模型進(jìn)行調(diào)整,統(tǒng)一軸心與質(zhì)心位置,制作出三維結(jié)構(gòu)與真實(shí)器材一致的精細(xì)模型。
為了保證虛擬實(shí)驗(yàn)環(huán)境的高度真實(shí)感,在3D器材結(jié)構(gòu)仿真的同時,還要對器材的材質(zhì)進(jìn)行渲染。材質(zhì)是指物體的材料、質(zhì)感,即物體本身的材料屬性與紋理[8]。材質(zhì)渲染的步驟為建立不同材質(zhì)的Shader腳本編程,模型貼圖(Texture)的制作,材質(zhì)球(Materials)的合成。
Shader腳本負(fù)責(zé)產(chǎn)生不同效果的材質(zhì),編程使用ShaderLab語言;Texture用于材質(zhì)紋理的顯示,主要包括紋理貼圖、法線貼圖、立方體貼圖和高光貼圖,通過3ds Max制作完成;材質(zhì)球是Shader腳本與Texture的載體,最終將Material附著到對應(yīng)的模型上,使虛擬實(shí)驗(yàn)環(huán)境達(dá)到逼真的效果。圖2展示了使用Material渲染后的部分3D模型。
圖2 渲染后的3D器材模型
為了加強(qiáng)虛擬實(shí)驗(yàn)系統(tǒng)的實(shí)用性與智能性,設(shè)計(jì)了一套智能檢錯與評分機(jī)制,并在系統(tǒng)的練習(xí)模式與考試模式中加以實(shí)現(xiàn)。本文的虛擬實(shí)驗(yàn)系統(tǒng)的最終評分主要由器材與連線這兩個因素決定,圖3為智能檢錯與評分機(jī)制的設(shè)計(jì)框架,框架由兩個模塊組成,分別是實(shí)驗(yàn)操作檢測模塊與實(shí)驗(yàn)評分模塊。
圖3 檢錯與評分機(jī)制設(shè)計(jì)框架
實(shí)驗(yàn)評分模塊的設(shè)計(jì),可由參與實(shí)驗(yàn)教學(xué)的教師提供評分標(biāo)準(zhǔn),保證其靈活性與準(zhǔn)確性。考慮到電工電子實(shí)驗(yàn)的特點(diǎn),正確的導(dǎo)線連接是其關(guān)鍵考核因素,因此連線部分占據(jù)總分的70%,實(shí)驗(yàn)器材選擇占據(jù)30%,評分標(biāo)準(zhǔn)如公式1所示,其中W表示標(biāo)準(zhǔn)導(dǎo)線數(shù),w表示用戶連對的導(dǎo)線數(shù),A表示標(biāo)準(zhǔn)器材數(shù),a表示用戶選對的器材數(shù)。
支持AR人機(jī)交互虛擬器材庫的瀏覽,主要通過Unity3D結(jié)合Vuforia的方式實(shí)現(xiàn)。Vuforia[9]AR SDK是由高通(Qualcomm)公司開發(fā)的基于標(biāo)識物(Maker-based)的增強(qiáng)現(xiàn)實(shí)專業(yè)開發(fā)包,它與Unity3D完全兼容。它為Unity3D添加視覺檢測與跟蹤算法,幫助開發(fā)者便捷地創(chuàng)建支持AR的應(yīng)用或游戲。如圖4所示,實(shí)現(xiàn)支持AR人機(jī)交互器材庫,可以分為三部分:
準(zhǔn)備階段。通過Vuforia分析預(yù)定義的圖像標(biāo)識特征點(diǎn),訓(xùn)練獲得的特征點(diǎn)信息并保存到dat文件中,Vuforia提取圖像邊緣變化作為特征點(diǎn),用戶可以自定義創(chuàng)建豐富多樣的圖像標(biāo)識;
運(yùn)行階段。Vuforia從dat文件中讀取事先保存的特征點(diǎn)信息,同時在移動設(shè)備攝像頭獲取的RGB格式視頻數(shù)據(jù)流中檢測這些特征點(diǎn),并對其進(jìn)行特征點(diǎn)匹配,獲取視頻中圖像標(biāo)識的位置、形狀信息;
圖4 支持AR交互的器材庫實(shí)現(xiàn)框架
匹配階段。如果采集到的視頻數(shù)據(jù)流特征點(diǎn)與預(yù)定義圖像標(biāo)識的特征點(diǎn)匹配成功,則更新應(yīng)用邏輯,Vuforia根據(jù)圖像標(biāo)識在視頻中的狀態(tài)計(jì)算出移動設(shè)備攝像頭與圖像標(biāo)識之間的相對位置,并在標(biāo)識的中心建立目標(biāo)坐標(biāo)系(object coordinate system, OCS),在Unity3D中設(shè)定的3D器材模型將被繪制在該目標(biāo)坐標(biāo)系下,最終系統(tǒng)將3D模型與攝像頭獲取的視頻疊加地顯示在移動設(shè)備屏幕上。
考慮到不同硬件設(shè)備的圖形處理性能各有高低,為了保證虛擬實(shí)驗(yàn)系統(tǒng)在較低配置設(shè)備上也能流暢地運(yùn)行,對系統(tǒng)作了GPU與CPU的渲染性能優(yōu)化,分別從優(yōu)化3D器材模型和降低運(yùn)行場景繪制調(diào)用(Draw Call, DC)兩方面進(jìn)行優(yōu)化。
Unity3D中的模型以FBX格式保存,由網(wǎng)格(Mesh)組成的,每個網(wǎng)格均由頂點(diǎn)(Vertex)和三角面(Triangle)構(gòu)成,過多的點(diǎn)面會使顯卡計(jì)算量增大造成相當(dāng)大的開銷。例如一個標(biāo)準(zhǔn)立方體的網(wǎng)格,具有24個頂點(diǎn)和12個三角面。優(yōu)化模型幾何體有兩個基本規(guī)則:如果不是必須,不使用過多的三角面;保持UV貼圖接縫和硬邊盡可能的少。因此,使用3ds Max制作模型時,在保證模型外觀逼真的前提下,盡量減少其點(diǎn)面數(shù);在Unity3D中,使用場景優(yōu)化工具Cruncher進(jìn)一步對點(diǎn)面數(shù)進(jìn)行優(yōu)化。大約每1500至4000個三角面構(gòu)成一個網(wǎng)格,優(yōu)化渲染性能最合適。
3D虛擬電工電子實(shí)驗(yàn)系統(tǒng)的研發(fā)基于Unity3D游戲引擎,主要使用C#與JavaScript語言,借助Vuforia開發(fā)包實(shí)現(xiàn)AR人機(jī)交互操作。運(yùn)行虛擬實(shí)驗(yàn)系統(tǒng)的PC機(jī)配置如下,CPU:Intel(R) Core(TM) i5-3470 K Processor 3.4GHz;RAM:3.47 GB;Graphics Card:NVIDIA GeForce GTX 670,操作系統(tǒng)為32位Windows 7旗艦版。運(yùn)行本系統(tǒng)的手機(jī)配置如下,CPU:Snapdragon 600 1.7 GHz;RAM:2 GB;Graphics Card:Adreno 320,操作系統(tǒng)為Android 4.1.0。
圖5為虛擬汽車燈照明電路實(shí)驗(yàn)在PC機(jī)上的運(yùn)行效果:圖(a)表示,如果導(dǎo)線連接正確,相應(yīng)的車燈就可照明;圖(b)表示,提交實(shí)驗(yàn)結(jié)果獲得的得分,黃色導(dǎo)線作為正確連線提示。圖6為系統(tǒng)在手機(jī)上的運(yùn)行效果。
在研發(fā)過程中對系統(tǒng)進(jìn)行了大量的性能優(yōu)化工作,表1統(tǒng)計(jì)了“練習(xí)模式”下,系統(tǒng)優(yōu)化后的主要性能參數(shù)數(shù)值。由表可以看出,經(jīng)過減少3D模型點(diǎn)面數(shù)與降低Draw Call調(diào)用,系統(tǒng)的性能得到了顯著提升。在PC與手機(jī)上的游戲幀數(shù)(FPS)分別為98.0幀/秒和70.0幀/秒,超過了30.0幀/秒的流暢運(yùn)行標(biāo)準(zhǔn),達(dá)到良好運(yùn)行的效果。
圖5 系統(tǒng)在PC上的運(yùn)行效果
圖6 系統(tǒng)在手機(jī)上的運(yùn)行效果
表1 優(yōu)化后系統(tǒng)主要性能參數(shù)
Tab.1 Main performance parameters of the optimized system
基于Unity3D游戲引擎與增強(qiáng)現(xiàn)實(shí)技術(shù)開發(fā)的虛擬實(shí)驗(yàn)系統(tǒng),可同時跨平臺發(fā)布,其逼真的3D實(shí)驗(yàn)環(huán)境與友好的用戶操作界面,準(zhǔn)確而形象地展示了實(shí)驗(yàn)原理;結(jié)合功能強(qiáng)大的Vuforia AR SDK,將Unity3D中的3D仿真模型與真實(shí)環(huán)境完美融合,實(shí)現(xiàn)了更自然的AR人機(jī)交互體驗(yàn)。
該虛擬仿真實(shí)驗(yàn)系統(tǒng)可跨平臺發(fā)布,其逼真的3D環(huán)境與友好的用戶操作界面,準(zhǔn)確而形象地展示了教育游戲的優(yōu)點(diǎn);結(jié)合功能強(qiáng)大的Android SDK,將Unity3D中的3D仿真模型與Android平臺完美融合,實(shí)現(xiàn)了Android手機(jī)上的運(yùn)行。
本文只介紹了部分電工電子實(shí)驗(yàn)的實(shí)例,但底層的虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)框架,可以用于更多學(xué)科的虛擬實(shí)驗(yàn)研發(fā)。與傳統(tǒng)虛擬實(shí)驗(yàn)系統(tǒng)相比,基于Unity3D與AR技術(shù)的虛擬實(shí)驗(yàn)系統(tǒng)不僅提供逼真的3D畫面,且可在PC、移動設(shè)備和Web網(wǎng)頁多平臺上運(yùn)行,有效地減少了用戶在空間與時間上所受的限制,用戶可更靈活自主地進(jìn)行實(shí)驗(yàn)操作;其支持AR人機(jī)交互的特色優(yōu)勢,使用戶在卡片上即可全方位觀察高度仿真的3D器材模型。這種逼真、高效,且具有通用性的虛擬實(shí)驗(yàn)系統(tǒng),目前已經(jīng)具備了投入實(shí)際教學(xué)的條件。此外,隨著類似Google Glass的AR人機(jī)交互產(chǎn)品的流行普及,它有望成為各類虛擬實(shí)驗(yàn)研發(fā)的新趨勢。
[1] Geiger C, Stoecklein J, Klompmaker F,. Development of an augmented reality game by extendinga 3D authoring system[C]. Proceedings of the international conference on Advances in computer entertainment technology. Austria: ACM, 2007: 230-231.
[2] Morales C, Martínez-Hernández K, Weaver G,. Immersive chemistry video game[C].ACM SIGGRAPH. USA: ACM, 2006: 50.
[3] Harward V J, del Alamo J A, Lerman S R,. The iLab shared architecture: A Web Services infrastructure to build communities of Internet accessible laboratories[J]. Proceedings of the IEEE(S0018-9219), 2008, 96(6): 931-950.
[4] 康譯友. 三維交互虛擬精餾實(shí)驗(yàn)室的構(gòu)建技術(shù)研究[D]. 大連: 大連理工大學(xué), 2010.
[5] Piekarski W, Thomas B H. Interactive augmented reality techniques for construction at a distance of 3d geometry[C]. Proceedings of the workshop on Virtual environments. Switzerland: ACM, 2003: 19-28.
[6] Wang S, Mao Z, Zeng C,. A new method of virtual reality based on Unity3D[C]. Geoinformatics, 2010 18th International Conference on. China: IEEE, 2010: 1-5.
[7] 宣雨松. Unity3D游戲開發(fā)[M]. 第1版. 北京. 人民郵電出版社, 2012.
[8] 朱柱. 基于Unity3D的虛擬實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與應(yīng)用研究[D]. 武漢: 華中師范大學(xué), 2012.
[9] Cheng Xiao. Implementation of Mobile Augmented Reality Based on Vuforia and Rawajali. IEEE Beijing Section. Proceedings of 2014 IEEE 5th International Conference on Software Engineering and Service Science[C]. IEEE Beijing Section:,2014: 4.
Design and Implementation of Virtual Simulation Experiment by Using VR and AR Technology
ZHANG Ji-lin1, ZHANG Yan-peng2
(1. School of Electrical and Electronic Engineering, Harbin University of Science and Technology, Harbin, 150080, China; 2. School of Computer Science and Technology, Harbin University of Science and Technology, Harbin, 150080, China)
The original 2D virtual experiment teaching system has the shortcomings of insufficient experimental image, single human-computer interaction mode, and insufficient system intelligence. The original 3D virtual experiment system has numerous disadvantages, such as high cost of the development, the distortion of texture rendering and non-cross-platform operation, etc. Based on the above deficiencies, this paper use VR and AR technology, the introduction of an efficient Unity3D game engine, taking the electrical and electronic experiments of university engineering as an example, designs and develops a 3D virtual electrical and electronic experiment system. The system has the advantages of realistic experimental environment, diversified human-computer interaction modes, intelligent error detection scoring algorithms, and support for multi-platform operation. Finally, the performance parameters of the system were evaluated to verify its good practicality.
Virtual reality; Augmented reality; Virtual simulation experiment
TP311
A
10.3969/j.issn.1003-6970.2018.08.042
張濟(jì)麟(1997-),男,本科學(xué)生,主要研究領(lǐng)域?yàn)樘摂M現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、虛擬實(shí)驗(yàn);張艷鵬(1987-),男,助教,哈爾濱理工大學(xué)計(jì)算機(jī)學(xué)院、虛擬仿真實(shí)驗(yàn)中心教師,助教,主要研究領(lǐng)域?yàn)樘摂M現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)及計(jì)算機(jī)視覺。
本文著錄格式:張濟(jì)麟,張艷鵬. 應(yīng)用VR及AR技術(shù)的虛擬仿真實(shí)驗(yàn)設(shè)計(jì)與實(shí)現(xiàn)[J]. 軟件,2018,39(8):202-206