王丹穎
(浙江省交通規(guī)劃設(shè)計(jì)研究院)
在網(wǎng)絡(luò)上互動(dòng)地建立橋梁的三維模型,并能從任意角度觀察這個(gè)模型,這是單機(jī)版的橋梁虛擬現(xiàn)實(shí)平臺(tái)的升級(jí)。VRML語言具備的script節(jié)點(diǎn)正是來源于javascript,這是vrml能夠與javascript及java接口的先天優(yōu)勢(shì),也正是vrml語言在網(wǎng)絡(luò)功能上區(qū)別于其他虛擬現(xiàn)實(shí)語言如openGL的突出特點(diǎn)與優(yōu)勢(shì)。本文在VRML建模的基礎(chǔ)上,增加從網(wǎng)頁上輸入橋梁基本數(shù)據(jù)作為參數(shù)來建立橋梁三維虛擬現(xiàn)實(shí)模型的功能,從而實(shí)現(xiàn)橋梁虛擬現(xiàn)實(shí)建模從單機(jī)版到網(wǎng)絡(luò)版的提升。
VRML(虛擬現(xiàn)實(shí)建模語言)的特點(diǎn)與網(wǎng)絡(luò)緊密相關(guān),比如它創(chuàng)建的三維場(chǎng)景文件容量小,適合網(wǎng)絡(luò)傳輸。還有它的交互性強(qiáng),支持Java、Javascript語言接口,并有自己專有的vrmlscript腳本語言(javascript的一個(gè)子集),通過這些專門的編程設(shè)計(jì)語言能產(chǎn)生動(dòng)態(tài)網(wǎng)頁,在網(wǎng)頁上輸入?yún)?shù)得到不同的虛擬現(xiàn)實(shí)模型。當(dāng)然還有它最基本的區(qū)別于其他三維虛擬現(xiàn)實(shí)建模軟件的功能,就是能非常方便地在網(wǎng)上運(yùn)行VRML文件觀看虛擬現(xiàn)實(shí)模型。
作者此前已經(jīng)完成了用VRML建立橋梁設(shè)計(jì)的三維虛擬現(xiàn)實(shí)模型,并發(fā)布到網(wǎng)絡(luò)觀察的工作。在本文中,作者進(jìn)一步介紹了如何使用VRML的腳本節(jié)點(diǎn)編程語法,結(jié)合多種網(wǎng)頁設(shè)計(jì)工具,生成動(dòng)態(tài)網(wǎng)頁,即在網(wǎng)頁上輸入基本的橋梁尺寸數(shù)據(jù)(參數(shù)化)獲得相應(yīng)的橋梁虛擬現(xiàn)實(shí)模型的功能。用網(wǎng)頁設(shè)計(jì)工具結(jié)合VRML,實(shí)現(xiàn)VRML橋梁虛擬現(xiàn)實(shí)模型的網(wǎng)絡(luò)設(shè)計(jì)平臺(tái),簡(jiǎn)單說就是做一個(gè)網(wǎng)絡(luò)平臺(tái)輸入?yún)?shù)得到虛擬現(xiàn)實(shí)模型。思路是把數(shù)據(jù)封裝進(jìn)數(shù)據(jù)庫,用asp代碼調(diào)用數(shù)據(jù)庫的接口得到數(shù)據(jù),再通過asp代碼把數(shù)據(jù)通過javascript的腳本語言傳遞到vrml,在vrml中處理建模過程,得到的虛擬現(xiàn)實(shí)結(jié)果通過腳本語言傳遞到asp,輸出到橋梁虛擬現(xiàn)實(shí)模型的網(wǎng)頁上。
按此思路,接下來要針對(duì)平臺(tái)特點(diǎn)選擇合適的網(wǎng)頁設(shè)計(jì)軟件。
網(wǎng)絡(luò)虛擬現(xiàn)實(shí)應(yīng)用中,要考慮兩個(gè)問題,一能夠形成虛擬現(xiàn)實(shí)要求的沉浸感、交互性與想象力,二能夠?qū)崿F(xiàn)多用戶異地共享的虛擬現(xiàn)實(shí)環(huán)境。由于多用戶網(wǎng)絡(luò)系統(tǒng)中,各地用戶所使用的網(wǎng)絡(luò)環(huán)境和帶寬不同,所以必須考慮不同端口的用戶交互產(chǎn)生的延時(shí)問題。為解決這個(gè)問題,與單機(jī)版的虛擬現(xiàn)實(shí)不同,必須盡量壓縮在線文件傳輸容量,這就要求虛擬現(xiàn)實(shí)的實(shí)現(xiàn)工具包必須既能滿足基本的虛擬現(xiàn)實(shí)特征,又能滿足網(wǎng)絡(luò)傳輸容量的最小化要求。但是,通常來說,是無法達(dá)到所謂的最小化,而只能是在滿足基本虛擬現(xiàn)實(shí)特征的基礎(chǔ)上趨近于更小。
因此,本文基于簡(jiǎn)潔高效的要求,選擇Dreamweaver設(shè)計(jì)網(wǎng)頁,選擇Access進(jìn)行數(shù)據(jù)庫管理,選擇ASP的javascript代碼與vrml結(jié)合,實(shí)現(xiàn)在網(wǎng)頁上參數(shù)化輸入基本橋梁數(shù)據(jù),即獲得橋梁虛擬現(xiàn)實(shí)模型的動(dòng)態(tài)效果。
構(gòu)建本網(wǎng)絡(luò)平臺(tái)建模的需求分析應(yīng)注意兩點(diǎn),一能滿足其他單機(jī)版虛擬現(xiàn)實(shí)建模平臺(tái)能夠?qū)崿F(xiàn)的基本功能,二對(duì)于單機(jī)版中不適應(yīng)網(wǎng)絡(luò)傳輸?shù)奶卣鞑挥杓{入。本文的研究工作重點(diǎn)突出在線異地共享虛擬現(xiàn)實(shí),以下詳細(xì)闡述如何針對(duì)橋梁結(jié)構(gòu)交互設(shè)計(jì)的特點(diǎn)建立網(wǎng)絡(luò)協(xié)議與架構(gòu)。
特征一:這是開放的網(wǎng)絡(luò)平臺(tái),可以滿足不同的網(wǎng)絡(luò)端口。
特征二:客戶端不需要安裝專業(yè)的圖形軟件,只需要安裝vrml的相關(guān)瀏覽軟件如cosmoplayer(小軟件,安裝即可用),以便在網(wǎng)頁平臺(tái)上運(yùn)行與使用VRML文件。
根據(jù)以上特點(diǎn),網(wǎng)絡(luò)平臺(tái)構(gòu)架的客戶端必須簡(jiǎn)潔,因此采用服務(wù)器計(jì)算模式即B/S計(jì)算模式。B/S計(jì)算模式中,服務(wù)器承擔(dān)了應(yīng)用邏輯以及業(yè)務(wù)處理規(guī)則,客戶端僅僅承擔(dān)輸入與輸出功能,只是Java虛擬機(jī)。在本平臺(tái)中,客戶端只做兩個(gè)動(dòng)作即輸入設(shè)計(jì)參數(shù)與顯示虛擬現(xiàn)實(shí)模型結(jié)果,而服務(wù)器負(fù)責(zé)計(jì)算運(yùn)行功能,瀏覽器、網(wǎng)頁、數(shù)據(jù)庫則與平臺(tái)無關(guān)。因此原來在單機(jī)版中本地機(jī)做的計(jì)算工作全部由服務(wù)器端承擔(dān),這也是為什么本平臺(tái)所選用的軟件都要求簡(jiǎn)潔,產(chǎn)生的文件容量小的原因了,因?yàn)樾枰W(wǎng)絡(luò)傳輸,必須考慮網(wǎng)絡(luò)帶寬的現(xiàn)實(shí)狀況。
以上所述即為動(dòng)態(tài)網(wǎng)頁,其實(shí)質(zhì)是一個(gè)程序,網(wǎng)絡(luò)的具體內(nèi)容存放在數(shù)據(jù)庫,當(dāng)用戶從客戶端向服務(wù)器發(fā)出請(qǐng)求時(shí),動(dòng)態(tài)網(wǎng)頁從數(shù)據(jù)庫中讀出這個(gè)信息,以HTML的形式發(fā)送到客戶端,或更新數(shù)據(jù)庫信息。
由于是服務(wù)器處理計(jì)算工作,需要選用服務(wù)器腳本語言,因ASP是微軟開發(fā)的語言,用VBScript和Javascript二腳本語言嵌入在HTML中,具備簡(jiǎn)單易用的特點(diǎn),所以本文采用ASP開發(fā)平臺(tái)。采用ASP開發(fā)平臺(tái),勢(shì)必要用到微軟主推的IIS服務(wù)器,IIS與WindowsNTServer完全集成在一起,使用戶能夠利用WindowsNTServer和NTFS(NT文件系統(tǒng))內(nèi)置的安全特性,建立強(qiáng)大安全靈活的Internet站點(diǎn)。
進(jìn)入控制面板,雙擊“添加或刪除程序”,在彈出的對(duì)話框中單擊“添加/刪除Windows組件”,在彈出的“Windows組件向?qū)А睂?duì)話框中選中“Internet信息服務(wù)(IIS)”,安裝IIS。
接下來創(chuàng)建服務(wù)器。通過“開始——程序——維護(hù)人員工具——管理工具——計(jì)算機(jī)管理——服務(wù)和應(yīng)用程序——Internet信息服務(wù)——網(wǎng)站——默認(rèn)網(wǎng)站”點(diǎn)擊右鍵選擇屬性,在跳出的“屬性”窗口選擇“主目錄”,改變“本地路徑”,“應(yīng)用”。
最后采用Dreamweaver軟件新建一個(gè)站點(diǎn),站點(diǎn)根目錄路徑與前述 IIS屬性設(shè)置的“本地路徑”同。
這樣就可以設(shè)計(jì)網(wǎng)頁了,包括輸入橋梁基本數(shù)據(jù)的頁面,以及輸出橋梁虛擬現(xiàn)實(shí)模型的頁面。以下根據(jù)前述思路重點(diǎn)講如何設(shè)計(jì)動(dòng)態(tài)網(wǎng)頁。
動(dòng)態(tài)網(wǎng)頁就是加入代碼使靜態(tài)網(wǎng)頁根據(jù)輸入?yún)?shù)不同而生成不同的頁面,本文采用ASP開發(fā)平臺(tái),使用ASP代碼使輸入的參數(shù)生成動(dòng)態(tài)的頁面。輸入的參數(shù)被asp程序調(diào)用計(jì)算得到需要的結(jié)果數(shù)值并被保存進(jìn)數(shù)據(jù)庫。
輸入的參數(shù)經(jīng)過asp程序后被轉(zhuǎn)換為橋梁空間結(jié)構(gòu)各控制位置的三維坐標(biāo),為了能夠有序多次使用這些坐標(biāo),需要封裝這些數(shù)值。本文采用Access數(shù)據(jù)庫,使用DLL組件將這些坐標(biāo)封裝進(jìn)數(shù)據(jù)庫中。封裝的內(nèi)容有建立、刪除數(shù)據(jù)庫和輸入數(shù)據(jù),用VB程序中的ActiveDLL開發(fā)DLL組件并生成.dll文件封裝以上數(shù)據(jù)操作過程,.dll文件就是數(shù)據(jù)操作的接口,由ASP的Server對(duì)象的CreatObject調(diào)用這個(gè)數(shù)據(jù)操作組件。
封裝虛擬現(xiàn)實(shí)建模過程,是為了 asp程序調(diào)用這一虛擬現(xiàn)實(shí)建模的結(jié)果以輸出到橋梁虛擬現(xiàn)實(shí)模型的頁面上。這就要用到腳本(script)節(jié)點(diǎn),即包含語言程序設(shè)計(jì)的節(jié)點(diǎn),且該程序能被瀏覽器解釋并運(yùn)行。
在本平臺(tái)中需要用到vrmlscript(javascript的一個(gè)子集)的Browser對(duì)象,Browser對(duì)象允許腳本獲取、設(shè)置瀏覽器信息,并能實(shí)現(xiàn)對(duì)場(chǎng)景的動(dòng)態(tài)控制。首先在橋梁虛擬現(xiàn)實(shí)wrl文件里建立一個(gè)空的script節(jié)點(diǎn)和空的模型節(jié)點(diǎn)并定義之,然后在script腳本語言中構(gòu)造Browser對(duì)象,用Browser對(duì)象提供的方法處理網(wǎng)頁輸入的參數(shù)改變虛擬現(xiàn)實(shí)模型。這里,在VRML建模的基礎(chǔ)上需要增加兩點(diǎn),一是建模中使用的空間數(shù)據(jù)是調(diào)用 2.3中數(shù)據(jù)庫中的空間坐標(biāo)點(diǎn),而不是直接輸入,二是網(wǎng)頁中需要輸入的參數(shù)在VRML建模程序中應(yīng)該改成變量。
這樣,就成了在網(wǎng)頁上輸入不同的參數(shù)得到不同的橋梁虛擬現(xiàn)實(shí)模型結(jié)果的工作。
本文是vrml的擴(kuò)展應(yīng)用,充分發(fā)揮了該語言區(qū)別與其他圖像軟件的網(wǎng)絡(luò)特長(zhǎng),以及虛擬現(xiàn)實(shí)交互性強(qiáng)的特征。在dreamweaver、javascript等網(wǎng)絡(luò)語言的支撐下,vrml建立的橋梁模型突破了原有單機(jī)版的虛擬現(xiàn)實(shí)模型的短板,能夠在開放的網(wǎng)絡(luò)環(huán)境中充分發(fā)揮虛擬現(xiàn)實(shí)的交互性特點(diǎn),本文的網(wǎng)絡(luò)平臺(tái)使得互動(dòng)擴(kuò)大至網(wǎng)絡(luò)的無限空間中,只要能上網(wǎng),下載一個(gè)簡(jiǎn)單的cosmoplayer,任何人都可以通過輸入設(shè)計(jì)參數(shù)獲得自己想要的設(shè)計(jì)結(jié)果的虛擬現(xiàn)實(shí)模型,從而在網(wǎng)上設(shè)計(jì)空間模型,設(shè)計(jì)泛平民化由于網(wǎng)絡(luò)科技的發(fā)展成為現(xiàn)實(shí)。
[1] 張玉孔.ASP動(dòng)態(tài)網(wǎng)頁開發(fā)案例教程[M].北京:北京航空航天大學(xué)出版社,2009.
[2] 王愛民,支麗平.Dreamweaver8&ASP動(dòng)態(tài)網(wǎng)站開發(fā)基礎(chǔ)與實(shí)例[M].北京:中國(guó)水利水電出版社,2007.
[3] 劉怡,張洪定,崔欣.虛擬現(xiàn)實(shí)VRML程序設(shè)計(jì)[M].天津:南開大學(xué)出版社,2007.
[4] 朱文偉.軸流泵葉輪網(wǎng)絡(luò)化造型與泵軸虛擬加工的研究[M].成都:西華大學(xué)碩士學(xué)位論文,2008.