何 苗
(陜西工業職業技術學院 信息工程學院,咸陽 712000)
隨著信息技術以及互聯網技術的發展,幾乎所有的科技前沿應用都與互聯網密切相關。Web3D即網絡三維圖形技術也在互聯網技術的基礎上得到了延伸。Web3D技術是指在網頁中顯示真實環境高近似度的三維場景,通過在場景中加入互動元素并運用鼠標、鍵盤以及顯示器等設備實現真實場景下無法實現的與場景中物體交互的操作來產生身臨其境的體驗。研究和開發虛擬場景演示系統框架可以使場景開發工作模塊化以及流程化,而這些標準化工作解決了虛擬三維場景的多變以及復雜性。
網絡三維圖形技術即Web3D,它是虛擬現實技術在網絡應用中的一個發展方向,目的是在網頁中展示三維圖形效果。Web3D早起標準為VRML,隨著VRML的使用,其性能以及實現中缺陷的出現使得Web3D組織發布了新的標準Extensible 3D即X3D。
目前Web3D技術主要分為兩部分:商業公司專有的Web3D技術以及Web3D聯盟發布的標準技術。許多商業軟件公司推出一些包含編輯工具以及顯示場景插件的Web3D軟件,這些軟件各具特色,各自擁有優勢。目前比較成熟的Web3D軟件有荷蘭Act-3D公司的 Quest3D、法國的Virtools等。
本系統選擇Turntool工具作為插件,用來搭建基于網絡的虛擬場景演示系統框架。Turntool作為上海世博會網絡世博官方指定技術具有輕巧、便捷的特點。由于Web3D虛擬場景演示系統開發周期過長,因此搭建一個能夠適用于不同項目以及不同場景的通用Web3D虛擬場景演示系統框架將具有積極意義。系統采用XML技術對框架中所涉及的場景分塊、導航以及場景配置信息的屬性配置進行記錄,并通過研究時間,最終構造出符合通用性角度的Web3D演示系統框架圖。如圖1所示。
本系統框架采用B/S三層架構,用戶通過瀏覽器可以在頁面中與三維場景內模型進行對話、移動物體等互動,并可以在場景中播放多媒體文件以及查看全景布局圖,已達到與用戶交互的目的。

圖1 Web3D虛擬場景演示系統框架Fig.1 Web3D virtual scene demonstration system framework
由于http協議不是面向連接的通信,因此在端對端的通信中本系統用戶采用消息服務器與Web服務器交互的方式進行通信,這種通過讀取XML配置信息來對Web服務器進行動態加載指定場景以及場景相關材質的工作,而這種方式對實時Web3D應用開發達到了簡化的目的。在通用性方面,框架系統制定了在程序開發中遵守的技術標準,能夠對Web3D場景進行快速開發。在框架系統的便捷靈活性方面,提供配置管理工具以實現個性化場景配置。
同時,為了保證系統的靈活性,還必須提供相
虛擬場景演示系統框架通過建立模型以及程序編寫兩部分進行開發。首先通過3Ds Max建立模型,通過TurnTool插件將模型導出成能夠發布到網絡中進行查看的.tnt類型文件;接下來進行程序開發,系統主要采用Java語言結合Ajax技術進行開發。根據圖1所示虛擬場景演示系統框架圖通過以下方式創建Web3D場景演示實例。
通過建立場景可以向網絡中發布靜態三維場景,用戶通過瀏覽器在場景中進行移動以及查看信息。使用3Ds Max將已建好的模型通過Turntool導出成test.tnt文件,然后使用Eclipse集成GWT插件的平臺加載系統項目,將導出的.tnt文件放置到項目scenes文件夾下新建的test文件夾中。項目結構如如圖2所示。

圖2 項目構建結構Fig.2 Project construction
修改工程war文件夾下Viewer.html文件中mainScene的參數將其設置為“test”。

運行工程,啟動GWT本地服務器,輸入http://localhost:8080/Viewer.html地址,就能夠在瀏覽器中看到新建的test.tnt三維場景。
在三維場景較大的情況下,創建時可以根據類型對其進行區域劃分,根據需要將完整場景分割成小場景,為了在多場景中進行自由切換,需要在演示場景中建立場景導航。本系統通過XML文件對導航配置信息進行記錄。在項目scenes文件夾中建立XML文件scenmap.xml。假設需要在sc1、sc2和sc3三個場景中進行切換,系統將在項目scenes文件夾中新建與三個場景同名的文件夾,并將已建立好的.tnt模型文件導入各自場景文件夾中,如sc1.tnt、sc2.tnt和sc3.tnt。導入完成后對scenmap.xml進行配置:

配置結束后啟動服務器后,可以觀察到場景頂部導航菜單中新增場景導航菜單,通過點擊導航菜單達到場景切換以及迅速定位的效果。
每個場景中共性操作部分和個性操作部分,例如音頻播放、鼠標或鍵盤步行瀏覽、全景圖等內容屬于共性操作,而開關門、人物角色、不同場景導航有屬于個性操作。為了加以區分使用一套定制腳本文件進行編譯,在加載場景時對這種腳本文件進行加載以達到目的。
新建“js”文件夾用來存放相應場景中用于響應不同事件的腳本文件。以場景sction1為例,將sction1.tnt放在scenes文件夾下,并在該文件夾下新建“js”文件夾用于存放腳本文件,新建sction1OnClick.js用于處理鼠標點擊事件;sction1OnZone.js用于響應區域內事件;sction1OnInit.js用于參數初始化工作;sction1OnMouseEnter.js用于響應鼠標進入事件。在sction1OnInit.js文件處理中,如果sction1中沒有導航菜單,編寫代碼時只需要在js文件中加入如下代碼即可在加載場景時進行參數讀取調用顯示地圖的方法以顯示地圖:

hasMap的值控制頁面中是否顯示地圖,地圖文件可以根據場景情況進行繪制,保存為scmap.jpg并放置于sc1.tnt文件所在目錄下即可。
通過3Ds Max對場景進行建模可以大量減少模型量,同時可以將場景中的不同內容作為材質進行存放,這種情況下也方便了設計人員對場景的修改。將模型導出tnt文件后可以在項目的scenes文件夾中建立存放外部材質的extextures文件夾,只要用來保存場景中使用的圖片、視頻等。開發設計的過程中,只需要更換此文件夾中的源文件即可更換場景中的圖片,極大的提高了項目開發以及后期維護的靈活性以及便捷性。
隨著互聯網與虛擬現實技術的發展,Web3D已成為互聯網發展的必然趨勢,目前已經出現很多基于Web3D的應用,而所有的應用必須在三維場景存在的情況下才能夠實現。因此基于Web3D的虛擬場景演示系統成為了三維應用的基礎。本文通過研究提出了一個虛擬場景演示系統框架,基于這個框架可以迅速、靈活的開發出適用于不同應用、通用且具備獨立個性的演示系統。當然,本框架在通用性上還需加強,并且Web3D技術目前還在發展中,關于虛擬場景演示系統框架的研究也在實際應用中不斷的補充以及修正中。
[1] 陳錦昌,詹偉杰,何正國.虛擬校園中三維景物表面貼圖的研究[J].東華大學學報(自然科學版),2005,(04):57- 62.
[2] 王洪,朱清新. 用 VRML 實現虛擬校園的實時漫游[J].計算機應用,2004,24(Z2):141- 143.
[3] 段新昱.虛擬現實基礎與 VRML 編程[M] .高等教育出版社.2004 年.
[4] 趙沁平.虛擬現實綜述[J]. 中國科學(F 輯:信息科學),2009,(1)