蔡洪濤,王巧玲,黃 和
早在20 世紀(jì)80 年代美國的Jaron Lanier 就提出了虛擬現(xiàn)實(shí)技術(shù)(也稱為VR),這是一種綜合的信息技術(shù),它結(jié)合了多媒體技術(shù),數(shù)字圖像處理技術(shù),計(jì)算機(jī)圖形學(xué),并在人工智能領(lǐng)域也在逐步應(yīng)用。當(dāng)前,虛擬現(xiàn)實(shí)技術(shù)廣泛應(yīng)用到醫(yī)學(xué)領(lǐng)域,從合成藥物的分子建模,到解剖學(xué)及外科手術(shù)教學(xué)的醫(yī)學(xué)虛擬現(xiàn)實(shí)系統(tǒng)。虛擬現(xiàn)實(shí)技術(shù)也應(yīng)用在醫(yī)學(xué)教育領(lǐng)域,尤其是在醫(yī)學(xué)課程教學(xué)中,應(yīng)用了虛擬現(xiàn)實(shí)技術(shù)開發(fā)的實(shí)驗(yàn)課程虛擬仿真軟件,大大提高了課程的可視性。
在解剖學(xué)實(shí)驗(yàn)課程教學(xué)中,對于器官的講解,胃部解剖的教學(xué)一直是教學(xué)的重點(diǎn)和難點(diǎn)。由于胃部解剖結(jié)構(gòu)抽象復(fù)雜、專業(yè)性強(qiáng),再加上很多知識(shí)點(diǎn)需要通過實(shí)物進(jìn)行講授,因此,傳統(tǒng)的胃部教學(xué)方式是以教師在課堂上口述講解、掛圖及使用實(shí)物模型示范為主,但學(xué)生的理解力有限,再加上教室空間有限,學(xué)生全憑借想象而沒有直觀的認(rèn)識(shí),有的學(xué)生甚至在老師講過一遍后,還不能完全理解老師講授的內(nèi)容,影響了學(xué)生的學(xué)習(xí)效果。當(dāng)前,但伴隨著日新月異的現(xiàn)代計(jì)算機(jī)技術(shù),先進(jìn)的多媒體輔助教學(xué)都在逐步的引入課堂,使得原本抽象復(fù)雜的專業(yè)術(shù)語、概念或者某些意識(shí)領(lǐng)域內(nèi)的、微觀的事物都可以通過逼真的視頻和栩栩如生的3D 動(dòng)畫演示出來,讓學(xué)生更加容易理解和掌握。這些逼真的視頻和栩栩如生的3D 動(dòng)畫功能的實(shí)現(xiàn)很大程度上依賴于虛擬現(xiàn)實(shí)技術(shù)的發(fā)展。一般情況下,用于解剖學(xué)實(shí)驗(yàn)課的虛擬仿真軟件是按照這樣的流程進(jìn)行開發(fā)的:首先,開發(fā)者對軟件功能進(jìn)行深入分析,通過對實(shí)驗(yàn)對象(主要是采集器官的各項(xiàng)數(shù)據(jù))建模,利用三維軟件生成對象模型,用于后期制作;之后,再將對象模型具有寫真實(shí)物品相匹配的屬性;最后,再利用虛擬現(xiàn)實(shí)制作軟件生成對象模型的交互式控制。再加上利用各種多媒體信息對場景的美化,制作出所需要的效果,提供給用戶使用。這樣一來,學(xué)生就可以有真實(shí)的學(xué)習(xí)體驗(yàn)。
3ds Max 是一款基于個(gè)人計(jì)算機(jī)系統(tǒng)開發(fā)和制作3D 動(dòng)畫的軟件。在進(jìn)行開發(fā)時(shí),設(shè)計(jì)者可以通過軟件提供的各種基本元素構(gòu)建三維模型,并在此基礎(chǔ)上利用多個(gè)攝像機(jī)鏡頭、使用材質(zhì)進(jìn)行貼圖、關(guān)鍵幀動(dòng)畫制作及動(dòng)態(tài)或靜態(tài)物體渲染等功能,最終將產(chǎn)品導(dǎo)出某種類型的文件供其它軟件使用。3ds Max 還有一個(gè)重要的功能,它可以使用一些基本的幾何類型(如立方體和球體)來構(gòu)建相應(yīng)的幾何場景,例如場景的平移,旋轉(zhuǎn)和復(fù)合操作。
三維模型的建立是通過點(diǎn)、線和面這3 個(gè)基本要素完成的。對象構(gòu)建模型的設(shè)計(jì)是對設(shè)計(jì)師造型能力和整體把握的考驗(yàn),又能夠?qū)ο蟮哪P瓦M(jìn)行整體優(yōu)化設(shè)計(jì)。在3D 建模中,基本應(yīng)用多邊形建模,Nurbs 建模和細(xì)分曲面建模等方式。下面以解剖學(xué)實(shí)驗(yàn)仿真軟件中構(gòu)建胃部主體模型為例,介紹3ds Max 建模的方法。
啟動(dòng)3ds Max 軟件后會(huì)自動(dòng)創(chuàng)建一個(gè)工程文件,在4個(gè)視圖中,選擇前視圖繪制所需要的球體。然后,單擊“菜單欄”|“創(chuàng)建”命令,在面板“標(biāo)準(zhǔn)基本體”中,選擇“球體”,修改命令面板球體參數(shù),在“分段值”一項(xiàng)輸入32。這里要注意,參數(shù)“半徑”自定,分段數(shù)值不得小于20。單擊“修改欄”∣“彎曲”命令,沿 Y 軸將“球體”進(jìn)行彎曲,彎曲軸選擇“Y 軸”,設(shè)定“彎曲”參數(shù)值,角度為60,方向?yàn)?0。單擊“修改欄”∣“ FFD 圓柱體”命令,按鍵盤上數(shù)字“1”鍵激活錨點(diǎn),框選錨點(diǎn)或按住 Ctrl鍵,點(diǎn)選相應(yīng)錨點(diǎn),參照采集的胃部形態(tài)數(shù)據(jù),對各個(gè)錨點(diǎn)進(jìn)行移動(dòng)、旋轉(zhuǎn)或縮放進(jìn)行調(diào)整,,擠壓該球形來塑造胃部三維模,使其更加形似胃部。最后再給胃部模型貼上相應(yīng)的圖片,使其更加逼真。
建模完成后,渲染場景中的胃部模型,如果效果不理想,再對其進(jìn)行調(diào)整,直到滿足要求,再將此場景導(dǎo)出一個(gè)名為wei.fbx 的項(xiàng)目文件。下一步是將其導(dǎo)入到Unity3D 軟件中,進(jìn)行編輯、開發(fā),來完成交互式漫游控制。設(shè)計(jì)者也可以在軟件開發(fā)過程中根據(jù)需要適當(dāng)添加文本和音頻等多媒體信息。
Unity3D 由美國一家軟件公司 Unity Technologies 開發(fā),這個(gè)軟件開發(fā)的產(chǎn)品,可使設(shè)計(jì)者輕松創(chuàng)建3D 視頻游戲。這個(gè)軟件問世以來,多用于開發(fā)交互式內(nèi)容的多平臺(tái)、實(shí)時(shí)3D 動(dòng)畫集成的游戲開發(fā),現(xiàn)已成為一個(gè)全面整合的專業(yè)游戲引擎。它是一種利用交互的圖型化開發(fā)環(huán)境,被廣泛應(yīng)用于虛擬仿真軟件開發(fā),已成為醫(yī)學(xué)實(shí)驗(yàn)虛擬仿真教學(xué)軟件的最佳工具。
漫游動(dòng)畫的重點(diǎn)是交互設(shè)計(jì),它實(shí)現(xiàn)了在虛擬場景中完成對象的移動(dòng),旋轉(zhuǎn),縮放等功能。漫游操作一般情況下常由使用鍵盤或鼠標(biāo)操作的用戶操作和控制。設(shè)計(jì)者構(gòu)建的三維虛擬環(huán)境中,是通過不斷移動(dòng)視點(diǎn),以及改變視線方向而實(shí)現(xiàn)交互漫游過程。也就是說,用戶的視點(diǎn)的位置就是視線的方向,即系統(tǒng)通過不斷改變視點(diǎn)的位置來實(shí)現(xiàn)不同的動(dòng)畫效果。這種效果主要是根據(jù)在虛擬環(huán)境中,被操控者(用戶),在位置上的坐標(biāo)移動(dòng)來改變控制參數(shù),例如向前、向后,所有方向上旋轉(zhuǎn),向下看、向上看等。設(shè)計(jì)者也可以通過鼠標(biāo)的移動(dòng)來替換視點(diǎn)方向的變化。當(dāng)系統(tǒng)接收到用戶鼠標(biāo)位置數(shù)據(jù)或者得到用戶鍵盤輸入命令后,系統(tǒng)將及時(shí)進(jìn)行反饋運(yùn)算,根據(jù)獲得的相關(guān)數(shù)據(jù)對場景進(jìn)行重新布置。漫游的觀點(diǎn)就好像是人的眼睛,其功能類似于相機(jī)。它似乎提供了一個(gè)虛擬攝像頭,可以在視覺環(huán)境中自動(dòng)選擇路徑和計(jì)算。在這樣的交互環(huán)境中,不需要預(yù)處理,只需要在漫游過程期間執(zhí)行場景分析和實(shí)時(shí)的路徑計(jì)算。
胃部漫游交互式動(dòng)畫是利用鼠標(biāo)進(jìn)行控制,主要包括:1)拖動(dòng)鼠標(biāo)控制胃部旋轉(zhuǎn);2)鼠標(biāo)靠近胃部時(shí)放大,遠(yuǎn)離時(shí)恢復(fù);3)通過鼠標(biāo)滾輪調(diào)整攝像機(jī)位置的遠(yuǎn)近,實(shí)現(xiàn)對胃部細(xì)節(jié)進(jìn)行觀察。具體步驟如下:
啟動(dòng)Unity3D 軟件,創(chuàng)建一個(gè)新的項(xiàng)目文件,然后將上文創(chuàng)建好的文件“wei.fbx”,也就是胃部三維模型導(dǎo)入到場景。然后,選擇“scripts”文件夾,新建一個(gè)腳本文件“control.c#”,在場景中選擇胃部模型,將下面的腳本插入其中“Inspector”面板添加腳本組件,完成漫游對象(即胃部模型)與程序代碼的綁定。當(dāng)軟件進(jìn)行時(shí),就用戶就可以通過鼠標(biāo)完成對胃部模型的交互式控制。
3.3.1 胃部模型控制旋轉(zhuǎn)
通過拖動(dòng)鼠標(biāo)來旋轉(zhuǎn)胃部模型,變量rotate_Speed 定義旋轉(zhuǎn)速度,Input.GetMouseButton(0)為按下鼠標(biāo)左鍵時(shí)觸發(fā)操作,主要代碼如下。
3.3.2 放大與還原
當(dāng)鼠標(biāo)進(jìn)入胃部模型,胃部模型執(zhí)行放大三倍,遠(yuǎn)離胃部模型時(shí),恢復(fù)胃部模型恢復(fù)原樣。變量this.transform.localScale 決定胃部的大小,主要代碼如下。
3.3.3 使用滾輪調(diào)整攝像機(jī)遠(yuǎn)近
當(dāng)用戶使用滾輪調(diào)整攝像機(jī)與胃部模型距離遠(yuǎn)近時(shí),鼠標(biāo)滾輪向上滾動(dòng)為拉近攝像機(jī),鼠標(biāo)滾輪向下滾動(dòng)為推遠(yuǎn)攝像機(jī)。其中,攝像機(jī)遠(yuǎn)近值由變量 Camera.main.fieldofview 決定攝像機(jī)視野,另外一個(gè)變量Camera.main.orthographicsSize 決定攝像機(jī)鏡頭大小,主要代碼如下。
目前,虛擬現(xiàn)實(shí)技術(shù)在醫(yī)學(xué)教育軟件的應(yīng)用前景廣闊,而且優(yōu)勢突出,這種方式突破了時(shí)空限制,創(chuàng)造了一個(gè)生動(dòng)逼真的實(shí)驗(yàn)環(huán)境。在項(xiàng)目開發(fā)過程中,用于創(chuàng)建胃的三維模型的軟件是3ds Max,用于創(chuàng)建胃的交互式漫游部分軟件是Unity3D。通過類似的方法,可以舉一反三,制作相應(yīng)的人體器官模型進(jìn)行交互漫游,從而增加學(xué)生學(xué)習(xí)的趣味性,調(diào)動(dòng)學(xué)習(xí)主動(dòng)性的同時(shí),還可以在一定程度上培養(yǎng)學(xué)生的實(shí)踐技能。