舒 堅(jiān),楊 勇,吳?;?/p>
(安徽大學(xué) 大學(xué)計(jì)算機(jī)教學(xué)部,安徽 合肥 230601)
基于Virtools平臺(tái)的三維虛擬計(jì)算機(jī)硬件組裝
舒 堅(jiān),楊 勇,吳?;?/p>
(安徽大學(xué) 大學(xué)計(jì)算機(jī)教學(xué)部,安徽 合肥 230601)
《大學(xué)計(jì)算機(jī)基礎(chǔ)》課程是該校非專業(yè)本科生必修公共課,其中硬件知識(shí)抽象難懂,加上資金、場(chǎng)地和設(shè)備等原因,大部分學(xué)生又無(wú)法親自動(dòng)手實(shí)驗(yàn),使得硬件教學(xué)難以取得好的效果,這個(gè)問(wèn)題長(zhǎng)期以來(lái)困擾著老師和同學(xué)們。有鑒于此,從軟件角度著眼,利用3ds Max制作計(jì)算機(jī)硬件三維模型,導(dǎo)入Virtools虛擬現(xiàn)實(shí)軟件中,建立世界坐標(biāo)系下的虛擬互動(dòng)實(shí)驗(yàn)場(chǎng)景,開(kāi)發(fā)單機(jī)運(yùn)行或基于B/S的網(wǎng)絡(luò)虛擬平臺(tái),使所有學(xué)生使用鼠標(biāo)、鍵盤即可在虛擬場(chǎng)景中模擬安裝計(jì)算機(jī)硬件的過(guò)程。系統(tǒng)初步實(shí)現(xiàn)后,為了測(cè)試可行性,將其安裝在大學(xué)計(jì)算機(jī)教學(xué)部實(shí)驗(yàn)機(jī)房,通過(guò)一段時(shí)間測(cè)試,學(xué)生反映在虛擬環(huán)境下操作簡(jiǎn)便、實(shí)用,能夠反復(fù)操作。對(duì)以前那些抽象的硬件,一目了然,非常便于學(xué)習(xí)。由此可見(jiàn),三維虛擬現(xiàn)實(shí)系統(tǒng)的開(kāi)發(fā)在學(xué)生課程實(shí)驗(yàn)中大有作為。
三維模型;虛擬現(xiàn)實(shí);B/S網(wǎng)絡(luò);世界坐標(biāo)系;虛擬互動(dòng)
該校大學(xué)計(jì)算機(jī)公共課,面對(duì)全校所有非計(jì)算機(jī)專業(yè)4 000多學(xué)生,對(duì)其進(jìn)行計(jì)算機(jī)通識(shí)教育。課程內(nèi)容面對(duì)不同專業(yè)的學(xué)生(如理工類、經(jīng)管類、文科類及藝術(shù)類)而有所取舍,以適應(yīng)不同專業(yè)需求。但是,無(wú)論如何總有一個(gè)模塊無(wú)法跨越,那就是晦澀難懂又非常重要的計(jì)算機(jī)硬件知識(shí)點(diǎn)。每次講到這部分內(nèi)容時(shí),老師只能在投影上展現(xiàn)有限的圖片,進(jìn)行抽象講解,大部分學(xué)生很難理解,其重要原因就是無(wú)法動(dòng)手拆裝計(jì)算機(jī)硬件。雖然在省級(jí)示范實(shí)驗(yàn)中心建設(shè)項(xiàng)目中建立了一個(gè)硬件組裝實(shí)驗(yàn)室,但由于場(chǎng)地、設(shè)備、經(jīng)費(fèi)限制,只能滿足少量學(xué)生使用。秉承計(jì)算思維方式,對(duì)問(wèn)題抽象、模型建立、算法設(shè)計(jì)和實(shí)現(xiàn)以及問(wèn)題引申[1],考慮使用三維建模和虛擬現(xiàn)實(shí)軟件方法來(lái)解決[2]。
虛擬現(xiàn)實(shí)技術(shù)是仿真技術(shù)的一個(gè)重要分支,它是仿真技術(shù)與計(jì)算機(jī)圖形學(xué)、人機(jī)接口技術(shù)、多媒體技術(shù)、傳感技術(shù)、網(wǎng)絡(luò)技術(shù)等多種技術(shù)的有機(jī)結(jié)合。虛擬現(xiàn)實(shí)技術(shù)(VR)主要包括模擬環(huán)境、感知、自然技能和傳感設(shè)備等方面數(shù)據(jù),由計(jì)算機(jī)模擬生成三維立體逼真模型和三維場(chǎng)景,再通過(guò)建立交互功能,實(shí)現(xiàn)實(shí)時(shí)動(dòng)態(tài)互動(dòng)。一個(gè)完整的虛擬現(xiàn)實(shí)系統(tǒng)應(yīng)用開(kāi)發(fā)平臺(tái)由兩部分組成:硬件開(kāi)發(fā)平臺(tái),即具有一定圖像處理功能的系統(tǒng);軟件開(kāi)發(fā)平臺(tái),即面向應(yīng)用對(duì)象的虛擬現(xiàn)實(shí)應(yīng)用軟件開(kāi)發(fā)平臺(tái)。這個(gè)虛擬現(xiàn)實(shí)系統(tǒng),負(fù)責(zé)整個(gè)VR(虛擬)場(chǎng)景的建立、開(kāi)發(fā)、運(yùn)算、生成,是整個(gè)虛擬現(xiàn)實(shí)系統(tǒng)的核心基礎(chǔ),它連接和協(xié)調(diào)整個(gè)系統(tǒng)硬件和網(wǎng)絡(luò)的工作和運(yùn)轉(zhuǎn),與它們共同組成一個(gè)完整的虛擬現(xiàn)實(shí)系統(tǒng)[3]。
文中討論了如何將三維建模和虛擬現(xiàn)實(shí)技術(shù)進(jìn)行融合,構(gòu)建基于網(wǎng)絡(luò)和單機(jī)版仿真硬件實(shí)驗(yàn)平臺(tái),使學(xué)生在虛擬實(shí)驗(yàn)環(huán)境中進(jìn)行操作,培養(yǎng)學(xué)生勇于創(chuàng)新、善于動(dòng)手的能力[4]。
平臺(tái)框架圖如圖1所示。
圖1 平臺(tái)框架圖
1.1 硬件結(jié)構(gòu)
根據(jù)大學(xué)計(jì)算機(jī)公共教學(xué)的實(shí)際環(huán)境,該平臺(tái)基于的硬件應(yīng)該是學(xué)生平時(shí)實(shí)驗(yàn)用機(jī),這樣的平臺(tái)才有真正的實(shí)際意義。
1.2 軟件結(jié)構(gòu)
三維模型制作,包括主板、CPU、內(nèi)存、風(fēng)扇等的制作,材質(zhì)/貼圖,輸出。虛擬現(xiàn)實(shí)制作,設(shè)置攝像機(jī)、燈光以及編程控制,實(shí)現(xiàn)硬件組裝互動(dòng)功能[5]。
2.1 三維模型制作
三維模型制作軟件3ds Max是Autodesk公司發(fā)布,基于PC系統(tǒng)的三維動(dòng)畫渲染和制作軟件。文中使用3ds Max 2012-32位系統(tǒng),以華碩M5A78L-M LX主板為參照。
由于要制作的模型如CPU、主板、內(nèi)存等多為規(guī)整形狀,所以可利用max系統(tǒng)提供的2D基本樣條線、3D標(biāo)準(zhǔn)基本體、復(fù)合對(duì)象等元素建立基本模型,按比例設(shè)置尺寸單位,轉(zhuǎn)換為可編輯類型,就可以在物體“點(diǎn)”、“邊”、“面”、“元素”等層級(jí),對(duì)基本樣線條和三維模型進(jìn)行擠出、倒角、輪廓、翻轉(zhuǎn)等變換,根據(jù)需要還可添加FFD、彎曲、殼、平滑等修改器,便可以制作出硬件模型。
但是,對(duì)風(fēng)扇一類曲面模型,則可采用NURBS曲線建模方法,以產(chǎn)生不規(guī)整模型,比如扇葉(見(jiàn)圖2(a))。先繪制出如圖2(b)所示的三條NURBS曲線,注意上、下曲線要不在一個(gè)平面中,制作出來(lái)的扇葉才有曲面感。然后再對(duì)其中一條NURBS曲線在其余兩個(gè)方向上進(jìn)行單軌放樣,形成如圖2(c)所示的曲面。這樣生成的曲面是沒(méi)有厚度的,須添加“殼”、“渦輪平滑”修改器,最終形成如圖2(a)的扇葉模型。
圖2 制作曲面模型
材質(zhì)/貼圖采用max標(biāo)準(zhǔn)方式,為了表達(dá)模型的真實(shí)性,對(duì)每個(gè)配件進(jìn)行拍照,然后用PS采集圖片顏色、圖案元素,以JPG格式保存,使用位圖方式貼在模型漫反射和凹凸通道上,制作出真實(shí)感更好的主板三維模型圖[6],如圖3所示。
圖3 PC主板的三圍模型圖
2.2 虛擬實(shí)驗(yàn)場(chǎng)景的建立
三維場(chǎng)景和互動(dòng)制作軟件Virtools,是法國(guó)達(dá)索(Dassault Systmes)公司的一套整合軟件,可以將3D模型、2D圖形等進(jìn)行整合,利用其提供的豐富互動(dòng)行為模塊快速制作出不同用途的3D環(huán)境虛擬實(shí)境產(chǎn)品。上海世博會(huì)組委曾選擇3DVIA Virtools作為世博會(huì)158年以來(lái)第一次網(wǎng)絡(luò)博覽會(huì)的獨(dú)家技術(shù)支持平臺(tái),給觀眾提供一個(gè)逼真的虛擬3D體驗(yàn)和實(shí)時(shí)互動(dòng)的全球化平臺(tái)。
對(duì)于虛擬現(xiàn)實(shí)技術(shù)來(lái)說(shuō),了解一些3D數(shù)學(xué)是不可缺少的。向量是3D算法的基礎(chǔ),設(shè)計(jì)中必須熟悉向量基本概念:向量位移、長(zhǎng)度和歸一化;向量運(yùn)算:加減、乘法、點(diǎn)積和差積等。在Virtools中有2D和3D兩種向量,2D向量用Vector2D類表示,類似一個(gè)結(jié)構(gòu)體數(shù)據(jù)類型(X,Y),表示一個(gè)屏幕二維坐標(biāo);3D向量用Vector類表示,它的結(jié)構(gòu)體數(shù)據(jù)類型為(X,Y,Z),用來(lái)表示三維世界坐標(biāo)[7]。
這里討論的是將上面3dsmax建立的模型導(dǎo)入Virtools中。首先建立一個(gè)虛擬場(chǎng)景,再利用系統(tǒng)提供的封裝行為模塊(腳本BB),編程VSL腳本程序,實(shí)現(xiàn)在GUI界面通過(guò)鼠標(biāo)和鍵盤操控?cái)z像機(jī)從不同方位觀測(cè)場(chǎng)景,并使用鼠標(biāo)拖動(dòng)安裝各個(gè)配件,實(shí)現(xiàn)即時(shí)互動(dòng)。
2.2.1 導(dǎo)出模型
3dsmax系統(tǒng)須安裝MaxToVirtools插件,這樣從max導(dǎo)出的模型文件可以保存為(.NMO.CMO.VMO)格式,方可導(dǎo)入Virtools軟件(目前該插件為5.0版,對(duì)應(yīng)3dsMax2012-32位)。
2.2.2 導(dǎo)入模型
在Virtools場(chǎng)景導(dǎo)入三維模型后,場(chǎng)景默認(rèn)沒(méi)有燈光,整個(gè)虛擬場(chǎng)景是黑暗的,因此首要設(shè)置燈光。為場(chǎng)景設(shè)置了七盞燈光,分別照射場(chǎng)景不同位置,調(diào)節(jié)3D坐標(biāo)以達(dá)到最佳效果,如圖4所示。
圖4 導(dǎo)入模型
2.2.3 攝像機(jī)設(shè)置
攝像機(jī)為觀察者的眼睛,從不同方位觀察場(chǎng)景可看成是攝像機(jī)角度和坐標(biāo)的變化。設(shè)置一架主攝像機(jī),使用互動(dòng)行為模塊控制攝像機(jī)隨鼠標(biāo)和鍵盤而變換角度和世界坐標(biāo):在場(chǎng)景中創(chuàng)建三維幀作為參考點(diǎn),設(shè)置主板世界坐標(biāo)與該幀相符;接著在三維幀上創(chuàng)建Scrip腳本,拖入行為BB“MouseWaiter”設(shè)置鼠標(biāo)滾輪產(chǎn)生每30°旋轉(zhuǎn),并將旋轉(zhuǎn)參數(shù)傳送給“MouseCameraOrbit”,就可實(shí)現(xiàn)鼠標(biāo)滾輪控制攝像機(jī)圍繞三維幀(也即是主板)來(lái)旋轉(zhuǎn)。鍵盤控制則是用“SwitchOnKey”來(lái)確定“Up”、“Down”、“Left”、“Right”四鍵對(duì)應(yīng)“上”、“前”、“左”、“右”方向,由“SwitchOnMessage”接受鍵值,用“SetPosition”按鍵值設(shè)置攝像機(jī)坐標(biāo)。這樣從不同角度可觀察虛擬場(chǎng)景和模型,體現(xiàn)了三維虛擬場(chǎng)景的真實(shí)感。
注意:場(chǎng)景中各個(gè)模型、燈光、攝像機(jī)設(shè)置初始位置后,必須使用“SetICForSelected”保存,如圖4所示。
2.2.4 互動(dòng)設(shè)計(jì)
文中設(shè)計(jì)的互動(dòng)流程是主板配件在鍵盤控制下首先自動(dòng)分離,然后由鼠標(biāo)拖曳安裝至相應(yīng)位置。場(chǎng)景中同時(shí)包含2D、3D對(duì)象,鼠標(biāo)對(duì)2D對(duì)象拾取相對(duì)簡(jiǎn)單,即如果鼠標(biāo)屏幕坐標(biāo)Vector2D(X,Y)在2D對(duì)象屏幕矩形的范圍內(nèi),則可視為選取了該對(duì)象。3D場(chǎng)景中鼠標(biāo)拾取算法較復(fù)雜,必須首先獲取鼠標(biāo)屏幕坐標(biāo),通過(guò)投影矩陣和觀察矩陣把這個(gè)坐標(biāo)換算成攝像機(jī)與鼠標(biāo)單擊點(diǎn)的一條射入場(chǎng)景的射線,如果射線與3D場(chǎng)景中的物體相交,則獲得相交物體信息:點(diǎn)選的3D物體、交點(diǎn)位置、方向以及交點(diǎn)到攝像機(jī)的距離等。
圖5為行為模塊和移動(dòng)VSL腳本連接圖[8]。
圖5 腳本連接圖
2.2.5 互動(dòng)設(shè)計(jì)的曲線移動(dòng)
3D場(chǎng)景中,風(fēng)扇電源線是柔性線纜,移動(dòng)特性與上面所提剛性物體不同,有彎曲和扭曲等變化,移動(dòng)時(shí)各部分是非線性漸進(jìn)式。因此這種情況下必須采取編輯曲線(Curve)節(jié)點(diǎn)(CurvePoint)的方法,如圖6中的“Ropc_Point0000(X,Y,Z)”至“Ropc_Point000i(X,Y,Z)”,0至i是創(chuàng)建曲線的各節(jié)點(diǎn),控制著整個(gè)曲線的走向。編程時(shí)根據(jù)節(jié)點(diǎn)移動(dòng)情況加上一個(gè)△3D坐標(biāo)參數(shù),腳本編程設(shè)計(jì)思路是每個(gè)節(jié)點(diǎn)移動(dòng)總是在前一個(gè)節(jié)點(diǎn)移動(dòng)3D坐標(biāo)上的正負(fù)增量上的變化[9]。
2.2.6 打包發(fā)布
虛擬場(chǎng)景制作完成后,使用Virtools菜單“ExporttoVirtoolsplayer”制作EXE文件,使用系統(tǒng)自帶播放器“3DVIA_player”播放?;蚴怯谩癈reateWebpage”制作網(wǎng)頁(yè),在瀏覽器中瀏覽,目前版本支持32位瀏覽器[10-11],如圖7所示。
圖6 空間坐標(biāo)圖
圖7 打包發(fā)布
文中討論使用3dsMax與Virtools結(jié)合,制作出基于網(wǎng)絡(luò)或單機(jī)版計(jì)算機(jī)硬件組裝虛擬實(shí)驗(yàn)場(chǎng)景,可以使用鍵盤、鼠標(biāo)完成組裝基本任務(wù)。此系統(tǒng)初步完成,需進(jìn)一步完善推廣,便能夠惠及更多學(xué)生。在此過(guò)程中或可以考慮嘗試其他方式實(shí)現(xiàn)同樣功能,如:Maya、unity3D等軟件[12-13],以取長(zhǎng)補(bǔ)短,將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用到各種教學(xué)工作中,充分享受其帶來(lái)的便利。
[1] 吳 蕾,欽明皖,楊 勇.基于計(jì)算思維能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)新模式[J].計(jì)算機(jī)教育,2015(7):1-3.
[2] 龔沛曾,楊志強(qiáng).大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)中的計(jì)算思維培養(yǎng)[J].中國(guó)大學(xué)教學(xué),2012(5):51-54.
[3] 許 鋒,單大國(guó).基于虛擬現(xiàn)實(shí)技術(shù)的刑事影像教學(xué)平臺(tái)研究[J].計(jì)算機(jī)教育,2014(19):57-59.
[4] 安維華.虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用[M].北京:清華大學(xué)出版社,2014.
[5] 張?chǎng)╇?,?娟,劉華艷,等.計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].實(shí)驗(yàn)室研究與探索,2014,33(5):62-66.
[6] 王盼盼,張 宏.基于Virtools的虛擬測(cè)繪系統(tǒng)的設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(3):148-151.
[7] 李 濤,趙志剛.3dsMax2012案例教學(xué)[M].北京:高等教育出版社,2013.
[8] 覃伯明.Virtools引擎3D游戲程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2013.
[9] 楊 琳,朱元昌,邸彥強(qiáng).基于Virtools的柔性線纜建模及其運(yùn)動(dòng)仿真[J].微電子學(xué)與計(jì)算機(jī),2009,26(9):153-156.
[10] 張占軍,程行甫,柳 平,等.電臺(tái)三維虛擬維修仿真系統(tǒng)的研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(2):250-252.
[11] 蔡 偉,李龍華.水電站機(jī)電設(shè)備運(yùn)行檢修3D仿真培訓(xùn)界面設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(11):170-172.
[12] 張朝陽(yáng),竇俊霞.基于三維交互式服裝設(shè)計(jì)系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2014,33(12):117-120.
[13] 魏迎梅,王 涌,吳泉源,等.手術(shù)仿真中的碰撞檢測(cè)研究[J].計(jì)算機(jī)研究與發(fā)展,2002,39(1):114-119.
3D Virtual Computer Hardware Assembly Based on Virtools Platform
SHU Jian,YANG Yong,WU Fu-hu
(Computer Studies Department,Anhui University,Hefei 230601,China)
College Basic Computer is a required course of nonprofessional undergraduate compulsory in school,in which the hardware knowledge is abstract and difficult,and with money,venues and equipment reasons,most of the students can’t do the experiments themselves,making the hardware is hard to get good teaching effect.The problem has long plagued the teachers and students.Because of this,focused on the software perspective,using 3ds Max to make 3d model of computer hardware and importing Virtools to virtual reality software,the virtual interactive scenario in World Coordinate System is set up.Development of running standalone or network virtual platform based on B/S,all students can simulate the installation process of computer hardware in virtual scene by using mouse and keyboard.After the initial system implementation,in order to test the feasibility,it is installed in the University Department of Computer Teaching Experiment room.Through a period of testing,students reflect operating in a virtual environment is simple and practical,and able to repeat.Those previous hardware abstraction is clear and easy to learn.It follows that 3D virtual reality system developing can give great contribution to students’ experiment courses.
3D model;virtual reality;B/S network;World Coordinate System;virtual interaction
2015-11-13
2016-03-16
時(shí)間:2017-01-04
安徽省2014年本科教育質(zhì)量提升計(jì)劃項(xiàng)目(xjjyxm14020)
舒 堅(jiān)(1965-),男,高級(jí)實(shí)驗(yàn)師,研究方向?yàn)橛?jì)算機(jī)應(yīng)用技術(shù)。
http://www.cnki.net/kcms/detail/61.1450.TP.20170104.1023.026.html
TP302
A
1673-629X(2017)01-0156-04
10.3969/j.issn.1673-629X.2017.01.035