吳世勇,汪 洋,楊 睿,張勁松
(1.合肥學(xué)院建管處,安徽合肥 230601;2.合肥學(xué)院城建學(xué)院,安徽合肥 230601)
在現(xiàn)代教育技術(shù)的發(fā)展史上,教學(xué)手段的革新從未停止。經(jīng)歷了基于廣播電視的遠程學(xué)習(xí) D-Learning、基于電腦和互聯(lián)網(wǎng)的電子學(xué)習(xí) E-Learning,以及利用手機等進行移動學(xué)習(xí)的 M-Learning 階段。而基于虛擬現(xiàn)實技術(shù)的 V-Learning 必將帶來教育界新革命[1],虛擬教學(xué)使得教學(xué)手段獲得了飛躍式發(fā)展。
虛擬現(xiàn)實技術(shù)具有較強的研究意義,經(jīng)過多年的發(fā)展,近年來已經(jīng)進入了一個新的階段,在較多領(lǐng)域得到了應(yīng)用。如用于能源動力工程分析,水資源處理,軍事訓(xùn)練模擬[2],等等。在教育培訓(xùn)領(lǐng)域行業(yè)同樣應(yīng)用廣泛,其中的土木工程教育對虛擬仿真的應(yīng)用也變得越來越充分,如城市規(guī)劃、工程實驗[3]等。但是國內(nèi)外主流期刊信息中,目前未見有關(guān)于建筑工程模塊化虛擬仿真資源的研究。
《土木工程材料》在建筑教學(xué)體系中占有重要地位,但傳統(tǒng)教學(xué)方式具有頗多缺陷。如內(nèi)容體系單一,課程的能力輸出效果差,實驗和理論課內(nèi)容不連貫,理論和應(yīng)用聯(lián)系不緊密。等等。而模塊化教學(xué)有效克服了這些弊端,其核心是界定任務(wù)模塊。
本文以《土木工程材料》模塊化課程為例,通過其中的核心任務(wù)模塊,嘗試如何有針對性地構(gòu)建符合模塊化特色的虛擬現(xiàn)實資源,將桌面式-沉浸式虛擬技術(shù)融入現(xiàn)代課堂和課后實驗實踐,對現(xiàn)有教學(xué)媒體和方法進行補充,提供更加個性化的學(xué)習(xí)資源和空間。
這里選擇了任務(wù)模塊“裝飾裝修材料應(yīng)用設(shè)計和效果分析”,本模塊要求熟悉倉儲式建材市場各類琳瑯滿目的裝飾裝修材料,通過合理選擇應(yīng)用到家庭裝飾工程中,主場景是建材大市場和住宅內(nèi)部裝修。
交互功能的實現(xiàn)。在每個場景中,系統(tǒng)不僅很好地展示了各種琳瑯滿目的產(chǎn)品,而且提供了良好的交互性,學(xué)生可以自由選擇虛擬場景、自由選擇中意的裝飾材料,全方位觀察和對比實際應(yīng)用效果,漫游于虛擬場景中,在這部分模塊內(nèi)容上,交互功能的實現(xiàn)是整個系統(tǒng)的核心和亮點所在。
交互功能入手角度,可以是從低檔和高檔材料所對應(yīng)的不同技術(shù)經(jīng)濟性能,也可以是不同的裝飾設(shè)計風(fēng)格,等等。學(xué)生在素材數(shù)據(jù)庫中選擇材料不同的技術(shù)性能指標(biāo),獲得不同的材質(zhì),檢驗對應(yīng)的裝飾效果。比如可調(diào)用的素材庫中所用到的地面裝飾材料,有地板、地磚、地毯等,而其中的地板,又可細分為實木地板、強化地板、復(fù)合地板、塑料地板、地板革等不同品種(圖1)。
圖1 系統(tǒng)交互功能需求模塊
豐富的交互性被作為虛擬現(xiàn)實開發(fā)平臺的首要標(biāo)準(zhǔn)。三維引擎軟件Quest3d支持VR大多數(shù)虛擬外設(shè),提供了圖形化的模塊開發(fā)功能;支持多層次貼圖,還可以收集項目的所有貼圖;擁有對大規(guī)模場景的渲染能力,結(jié)合光照貼圖實現(xiàn)細致的場景渲染效果;支持高效的碰撞檢測,能精確地進行物體約束;支持 GUI 界面,通過可視化設(shè)計豐富交互功能;支持場景導(dǎo)航,通過平面圖的鏈接,進而跳轉(zhuǎn)到三維場景的任意位置;可實現(xiàn)網(wǎng)絡(luò)發(fā)布,方便多人在線互動,分享體驗,共享資源。本項目主要是利用了Quest3D這些優(yōu)勢實現(xiàn)技術(shù)開發(fā)。
本系統(tǒng)的前期三維制作主要使用 3DS MAX。此軟件常用來配合游戲引擎制作三維場景和角色,在教育教學(xué)領(lǐng)域,一般被用來設(shè)計三維教學(xué)動畫和虛擬現(xiàn)實場景。
此外還需要用到圖像處理軟件Fireworks和Photo shop,動畫制作軟件Flash,WEB開發(fā)腳本語言C#和Javascript,數(shù)據(jù)庫MySQL,矢量繪圖軟件AutoCAD,三維建模軟件 3D Coat。
項目的首要任務(wù)是需要詳盡的素材收集。因為本任務(wù)虛擬現(xiàn)實需要展示的內(nèi)容是重現(xiàn)在真實世界中存在的場景或物品,并不是表現(xiàn)在真實世界中并不存在的場景或物品。所以在動手進行三維建模之前應(yīng)當(dāng)盡可能地收集第一手資料。通常需要收集的素材包括:設(shè)計圖紙或測繪圖紙、參考照片、紋理照片、視頻資料等。
資源素材數(shù)據(jù)庫建設(shè)包括:技術(shù)標(biāo)準(zhǔn)、工程案例等文本素材;倉儲式建材裝飾市場全景圖、局部圖;各種裝飾裝修材料及其不同的顏色質(zhì)感等圖片素材,等等。
構(gòu)建虛擬場景總體任務(wù),首先要對整個場景的布局安排進行設(shè)計,接著畫出指導(dǎo)建模的草圖并建立出初步模型,然后給建模出的物體賦上材質(zhì)和貼圖,再將這部分模型整合到主體建筑的場景中,最后給場景布置燈光,從而完成整個場景的設(shè)計。
模塊中裝飾材料品種很多,但是VR 場景的模型個數(shù)過多也會直接影響到場景的導(dǎo)出和打開速度,這里采用的是實時渲染,即更改品種后無須任何等待時間即可看到結(jié)果,所以只需要事先設(shè)置好材料的顏色、外形模型和鍵盤模型,就可以“所見即所得”地嘗試各種不同組合方案,哪怕品種數(shù)量再多也可從容應(yīng)對。模塊中主場景是裝飾大市場全景和住宅建筑室內(nèi)裝飾效果(圖2、圖3)。
圖2 3D Coat 對裝飾材料大市場建模 圖3 Ds Max對室內(nèi)裝修效果渲染
Quest3D中一個逼真的三維場景需包含相機、燈光和模型三要素。相機用來定義觀察場景的視角,裝飾設(shè)計需要設(shè)置不同的相機模式;裝飾效果設(shè)計是室內(nèi)場景,需要定義燈光在不同角度觀察下的明暗程度;除了相機和燈光,還可以通過對模型表面的發(fā)光處理來使模型呈現(xiàn)更自然的效果,如果虛擬場景中只有模型則會顯得單調(diào),因此需要通過貼圖的制作來實現(xiàn)系統(tǒng)背景的生成和處理,同時貼圖技術(shù)還可以對模型的材質(zhì)進行處理,使其更加逼真[4]。本系統(tǒng)中涉及到大量需要具備良好裝飾效果的瓷磚涂料等部件,需要用到貼圖,因此需要 Photoshop 對這些圖片進行處理,以使其有更好的視覺效果。
為了實現(xiàn)素材的擴充和更新功能,支持數(shù)據(jù)擴展,數(shù)據(jù)庫是最好的選擇。利用數(shù)據(jù)庫管理系統(tǒng)素材庫中的各種裝飾裝修材料圖片,連接數(shù)據(jù)庫的虛擬現(xiàn)實場景可以進行信息定位,Quest3D中可以通過ODBC創(chuàng)建數(shù)據(jù)庫連接,豐富了裝飾材料素材庫內(nèi)容。
可以實現(xiàn)素材數(shù)據(jù)庫查詢。My SQL 對應(yīng)的是 DB Driver My SQL 模塊,數(shù)據(jù)庫連接成功后,DB Query 模塊的屬性面板中輸入查詢代碼,例如,在裝飾材料品種表格里查找黑色大理石地磚代碼是:SELECT stone FROM table1 WHERE name=marble AND color=black。
易于擴展而將視圖與邏輯控制分離是開發(fā)過程中的重要且必須要做的工作[5]。在開發(fā)過程中,如果需求變更頻繁,有時面臨大規(guī)模的內(nèi)容刪改,此時開發(fā)人員可將內(nèi)容抽象、分離為功能單一的模塊,降低系統(tǒng)的耦合性,使系統(tǒng)靈活性提高。
通過上述幾點關(guān)鍵技術(shù)使用,基本實現(xiàn)了系統(tǒng)中交互性需求。
根據(jù)本系統(tǒng)關(guān)于三維封閉式室內(nèi)裝飾效果的虛擬仿真,采用效率最髙的適用于立方體對象之間的碰撞器Box Collider,基于 OBB方向包圍盒技術(shù)[6],關(guān)鍵在于確定一個最佳方向,來建立該方向上的最小包圍盒尺寸。
模塊中室內(nèi)裝飾空間移步等,需要位移矩陣在鍵盤的作用下實現(xiàn)變化,進而形成平移和旋轉(zhuǎn)動作,平移旋轉(zhuǎn)矩陣為四維變換矩陣,是以矩陣相加的方式實現(xiàn)的[7]。設(shè)模型空間的齊次坐標(biāo)為[x0,y0,z0,1],坐標(biāo)平移變換后的空間坐標(biāo)[x1,y1,z1,1],各坐標(biāo)軸的平移量vx,vy,vz,可得平移算法的變量計算表達式見式(1)。
(1)
設(shè)物體繞x軸旋轉(zhuǎn)θ角度從坐標(biāo)(x0,y0,z0)旋轉(zhuǎn)至(x1,y1,z1),則坐標(biāo)變換表達式見式(2)。
(2)
Quest3D支持C#、javascript 或Lua等腳本語言的功能開發(fā),本系統(tǒng)相關(guān)需求通過編程實現(xiàn),如場景連接,材料品種名稱顯示,結(jié)構(gòu)構(gòu)件鼠標(biāo)拖動等。
(1)裝飾市場各場景的連接通過點擊按鈕觸發(fā)功能實現(xiàn)[8],也可用 public 聲明一個 Button 按鈕,點擊實現(xiàn)場景切換,C#語言腳本代碼如下:
public class Connect Mode :Mono Behaviour {
public void On Button (string scene Name)
{Application.Load Level(scene Name);}}
(2)改變裝飾材料(內(nèi)墻涂料、壁紙、窗簾、內(nèi)墻磚等)的顏色。
if(is Change)
{ for(int i=0;i change Color painting[i].positon= painting[i].position; painting[i].game Object.Set Active(false); change Color painting[i].game Object.Set Active(true);} } else { for(int i=0;i { change Color painting[i].positon= painting[i].position; painting[i].game Object.Set Active(true); change Color painting[i].game Object.Set Active(false);} } (3)裝飾材料品種打包文件“Create Asset Bundles”實現(xiàn)在線更新。 public class Create Asses Bundles { [Menu Item("Assets/Build Asset Bundles")] static void Build All Asset Bundles() { string dir = "Asset Bundles"; if (Directory.Exists(dir)==false) {Directory.Create Directory(dir);} Build Pipeline.Build Asset Bundles(dir,Build Asset Bundle Options.None,Build Target.Standalone Windows64);}} 該模塊只是實現(xiàn)對裝飾材料的應(yīng)用認知,則只需要展示操作設(shè)備或儀器的三維立體全景圖。可以以不同的角度對該物體進行 360 °觀察,觀察可以通過鼠標(biāo)來操作虛擬對象的角度轉(zhuǎn)動即可,這對虛擬現(xiàn)實系統(tǒng)的沉浸性要求不高,通過桌面虛擬現(xiàn)實系統(tǒng)就可以實現(xiàn)(當(dāng)然也可以在虛擬仿真實驗室做沉浸式體驗);同時適合用于大屏幕投影,使用于課堂上,用于裝飾材料內(nèi)容教學(xué);也可實現(xiàn)桌面式互動交互,選配材料。重點適用于建筑學(xué)專業(yè),可擴展各種綠色建材的內(nèi)容。既能在普通計算機上獨立運行,也可以在課堂上通過投影播放,可戴上VR眼鏡或不戴,具有較強的可操作性。 以Quest3D作為主要工具軟件,可以有效構(gòu)建“裝飾裝修材料設(shè)計與應(yīng)用”教學(xué)模塊的虛擬仿真資源,實現(xiàn)了裝飾材料任意替換的實時性和可視化,具有很強的實際應(yīng)用仿真效果,符合模塊化教學(xué)的指導(dǎo)思路。4 系統(tǒng)實施
5 結(jié) 論