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