胡 偉,李 兵
(湖南第一師范學院,湖南長沙 410205)
基于Web3D的虛擬現實技術的對比研究與分析
胡 偉,李 兵
(湖南第一師范學院,湖南長沙 410205)
隨著計算機網絡技術的發展,虛擬現實技術應用越來越普及。目前,基于Web3D技術的虛擬現實開發平臺有很多種,通過對常用的技術進行對比分析,提出了Web3D開發平臺的選取原則,為網絡虛擬現實開發的平臺選擇提供參考。
web3D;虛擬現實;對比研究
虛擬現實技術是將數字圖像處理、計算機圖形學、多媒體技術、傳感器技術等多個信息技術融合為一體的一門嶄新的綜合性信息技術。虛擬現實技術是目前計算機領域比較受關注的一項新技術,國家中長期科學和技術發展規劃綱要(2006—2020年)中,明確地將其作為前沿技術重點研究[1]。虛擬現實技術已經應用在電子商務商品的3D展示、科技與工程的科普和工程演示、教育培訓和軍事訓練的可視化仿真和虛擬實驗、導游和交通運輸以及地圖等地理信息系統數據的可視化等等多方面。
隨著網絡技術的不斷發展,三維虛擬現實在網絡中的應用愈來愈普及。網絡三維虛擬現實技術主要是通過Web3D技術予以實現的。Web3D技術是一種桌面級的網絡虛擬現實技術,通過Web3D技術,用戶可以瀏覽網頁中的三維圖像,通過交互操作,可以使瀏覽者產生身臨其境的感覺。Web3D技術在教育培訓、電子商務和游戲開發中受到越來越多的關注,許多公司都提出了基于網絡的3D技術解決方案。目前,Web3D技術有幾十種之多,使得用戶在選擇上眼花繚亂,不知如何決定。本文擬通過對幾種常用的Web3D技術進行對比分析,為網絡三維虛擬技術的開發和實現提供一些參考。
(一)Viewpoint
Viewpoint是由metacreation和Intel提出的一種Web3D技術,通過在XML語言的基礎上進行構建,Viewpoint可以很容易地與瀏覽器和數據庫進行數據交換,由于可將其內嵌于多種軟件中使用,使得它的應用范圍非常廣泛。在瀏覽時只需在客戶端安裝插件便可顯示出以流方式傳輸的3D模型。通過鼠標或瀏覽器事件進行觸發,能動態地進行交互演示或與用戶進行交互操作,如對象的縮放和平移等,此技術貫通于網絡三維虛擬技術的各個環節。但與其他的Web3D技術相比較,ViewPnint需要通過自己的軟件制作和處理三維圖形對象,而不是通過其他方式導入三維圖像,因此是真正的3D模型,可創建出照片級真實的3D影像。
Viewpoint在結構上可分為兩個部分,一個是儲存三維數據和貼圖數據的mts文件,另一個是對場景參數和交互進行描述的基于XML的mtx文件。通過采用獨特的壓縮技術,將復雜的3D信息壓縮成很小的數字格式,因此非常適合在網絡傳輸。當文件傳輸至本機后,通過高質量的實時渲染引擎,在不需要任何硬件加速的情況下可將對象非常真實地進行三維渲染和顯示。正是因為以上特點,Viewpoint主要運用在電子商務的產品宣傳和商品展示等商業領域,一些商業網站和在線廣告均采用了該技術[2]。
(二)Cult3D
瑞典的Cycore公司所研發的一種跨平臺流式Web3D技術——Cult3D,通過利用現有的網絡技術和三維渲染引擎來進行3D模型的建構,具有很高的壓縮率,能在網絡中快速地傳輸,應用在主流操作系統和應用程序中。Cult3D具有跨平臺性,能在Windows、Unix和Linux等各種操作系統中運行,不需要硬件支持。
Cult3D和Viewpoint雖然在3D顯示和三維交互中具有一定的相似性,但Cult3D是基于Java語言構建的,提供了更多樣化的擴展功能。更為重要的是,Cult3D能作為對象元素導入到常用的軟件中,如 Office、Director和 Acrobat等。Cult3D需要利用3DMAX等三維建模軟件進行建模后導入,但其開發環境更具人性化和條理化,有利于提高開發效率。因此在商務網站或博物館的站點的物品展示以及三維游戲動畫的制作和開發均采用此Web3D技術。
(三)Java 3D
Java 3D其實質是將Java語言與三維技術結合,使Java語言的功能在三維圖形領域中得到擴展。Sun公司將Java 3D作為應用程序(API)接口推出,它把OpenGL和DirectX等底層的3D技術包含進來,作為底層的三維顯示技術封裝。因此,Java 3D就是一個提供基于Java語言的上層接口的API。它為用戶提供了利用高層工具進行三維實體創建、操作和著色并渲染的組織結構。正因如此,使得3D技術開發變得簡單,同時還可加入到J2EE等整體框架中,便于功能擴展。
Java語言具有“一次編寫,隨處運行”的優點,因此Java 3D所三維圖形程序也具有能在各種平臺廣泛運行的特點。在編寫Java 3D程序時,我們只需調用API進行編程,在客戶端使用標準的Java虛擬機就可以瀏覽而并不需要安裝任何插件,這是Java 3D所具有的最大優越性。由于Java 3D已將底層的渲染代碼等三維顯示技術封裝,技術開發者只需關注場景和組織等這些形體本身,而不需考慮組成這些三維實體的三角面。我們常用Java 3D來制作一些計算機教學輔助軟件和三維游戲等等[3]。
(四)X3D
VRML(虛擬現實建模語言)作為最初的虛擬現實開發語言,雖然具有低帶寬和靈活高效的優點,但隨著計算機技術的發展,它的不足也顯現出來了,如代碼重用率低,性能表現不佳,插件安裝時間長且占用系統資源過多等。因此,Web3D協會制定了Extensible 3D(X3D)新標準。X3D集成了Java、流媒體技術等最新先進技術,是最新的面向網絡的交互式性三維圖形規范。它具有更加高效的3D計算能力、三維渲染能力以及更快的網絡傳輸能力。X3D采用了構件化的程序設計思想并與XML集成,因此具有很強的功能擴展能力。
X3D采用了面向對象理論的構件化模式,這不但使得X3D程序編寫難度降低,而且增加了其擴展性以及與其他語言的交互性。與其前身VRML相比,X3D具有先進應有程序界面、高度的兼容性、允許多種編碼模式、安全性可靠性高等諸多優點,常用于虛擬交互實驗室和虛擬儀器等的開發。
面對眾多的Web3D技術,我們該如何選擇適合的開發工具呢?一個良好的開發平臺,不但能在用戶面前呈現出一個具有良好交互性的逼真虛擬環境,而且便于軟件開發者對軟件的研制、維護和功能擴展。所以,Web3D技術開發平臺的選取要從使用者和軟件開發者綜合考慮。
對于虛擬現實的終端用戶來說,都希望能得到高顯示質量具有真實感的虛擬現實軟件。首先,我們要考察開發平臺的模型顯示質量,尤其是三維模型的渲染質量。這項指標將影響用戶的第一印象,是開發平臺好壞與否的最重要指標。其次,我們要考察開發平臺的交互性。交互功能是影響虛擬現實軟件真實感的關鍵因素,強大的交互功能能大大增加用戶在使用過程中的真實感。最后,我們要考察開發平臺的遲滯性。要使軟件使用者具有真實感,軟件的交互過程的反饋必須及時,要有實時性。其中實時性包括兩個方面:一是軟件下載和插件安裝的等待時間;二是交互的延遲,雖然每種開發平臺都有一定的交互延遲,但是延遲時間需控制在容忍時間范圍內。遲滯性主要由開發平臺的文件壓縮性和渲染器的性能所決定。
對于虛擬現實軟件的開發者來說,則希望開發過程簡便,且軟件易于維護和功能擴展。虛擬現實開發的一個重要環境就是三維建模,能否方便快捷地導入利用各種建模軟件建好的三維模型是一個重要指標。另外,能否很方便地利用開發平臺進行軟件的維護以及功能擴展,不斷更新和完善軟件也是極其重要的。故虛擬現實平臺的選擇并不是隨意任選,必須對根據開發內容和使用對象,綜合各種因素進行考慮。
根據前述開發平臺選取原則的分析,常用的Web3D開發軟件平臺有各自的優勢,同時也有一些缺陷和不足,下面從瀏覽要求、建模方式以及各自特點進行縱向的技術對比和分析。
(一)瀏覽要求對比
這幾種Web3D開發平臺并不能利用瀏覽器直接瀏覽,而需要按照相應的插件或程序。Java3D需要按照Java虛擬機和應用程序接口,而利用X3D技術開發的軟件則需要按照對應的程序或插件。
(二)運行平臺對比
作為運用普及最廣泛的Windows操作系統,各種Web3D技術均予以支持,但相對來說,基于Cult3D和X3D所開發的軟件能適應更多的操作系統。
(三)三維建模方式對比
三維交互技術當然離不開三維模型的制作,三維模型的制作也直接決定了軟件開發的難易程度。能制作三維模型的方式和途徑越多,那么我們開發就更加靈活方便。ViewPoint的三維模型只能依靠其本身來制作和處理,不能從其他途徑導入3D模型,但ViewPoint所創建的3D屬于照片級的高質量影像。相反,Cult3D本身不具備三維建模能力,只能通過3D MAX等其他建模工具生成.c3d文件格式,然后導入。Java3D則有兩種建模方式,一種是通過Java API本身所提供的一些類編程方式;另外一種是,使用Java3D的模型載入器導入利用其他軟件生成的三維模型。但是,對于導入的模型在讀入Java3D后有可能發會生“坐標偏移”的現象,如果對這樣的模型進行旋轉操作的話,有可能會導致運動偏離對象的軸心。X3D技術是對VRML升級并集成了XML,它不但能利用VRML語言,通過編寫程序代碼構建三維模型,也可通過其他渠道導入三維模型。
(四)開發過程
虛擬現實交互軟件開發過程的難易程度不但取決于三維模型的建立,而且受交互性設置的影響。雖然,Java3D的三維模型創建方式比較靈活,但是添加交互需要對Java語言編寫程序進行控制,實現起來較為困難,雖能實現一些虛擬現實中一些復雜的交互功能,但是開發工程比較緩慢,其整體開發難度較為復雜。在Cult3D平臺中,其交互功能已在Designer中可視化給出,開發者只需進行選擇,使用非常簡便。X3D的交互不但能通過編程實現,也可通過開發軟件進行設定,其開發過程也較為簡單。

表1 各種Web3D開發平臺對比
另外,利用不同的Web3D開發平臺所開發的軟件的維護和功能擴展性也有差別。例如,Java 3D提供了圖形API接口,非常便于其功能擴展;同樣,X3D也提供了VRML程序接口,也便于其功能擴展,對于各種Web3D開發平臺的技術特點如表1所示。
對于Web 3D的虛擬現實實現技術遠不止本文所述的幾種,對于如此多的開發技術,基于Web 3D的虛擬現實的開發仍存在著許多困難,這主要是因為各種開發平臺是不同公司自行開發,基于不同的架構,使用不同的格式和方法,沒有統一的標準。各種開發平臺都有各自的有缺點,我們需要從用戶角度和開發角度綜合考慮,選擇適合的基于Web 3D虛擬現實開發平臺。
[1]劉鍇.基于Web3D的虛擬實驗實現技術的比較與分析[J].中國教育信息化,2008,(17):75-77.
[2]蔣燕萍,夏旺盛,黃心淵.幾種Web3D技術的比較[J].北方工業大學學報,2003,(1):21-25.
[3]王維敏.Web3D技術探索及幾種Web3D技術的比較選擇[D].武漢:武漢大學,2004.
[4]李勇帆,李里程.論情感計算和Web技術支持的網絡自主在線學習模式的設計與構建[J].中國電化教育,2011,(8):129-133.
A Comparative Study of VirtualReality Technology Based onWeb3D
HUWei,LIBing
(Hunan FirstNormalUniversity,Changsha,Hunan 410205)
With the developmentof the computernetwork technology,the application ofvirtual reality technology ismore andmore popular.Currently,there are agreat variety of development platforms for virtual reality technology on the basis ofweb3D.After the comparative studieson some commonly used technologies,this paper proposes the principles to select developmentplatforms for future reference.
web3D;virtual reality;comparative study
TP391.9
A
1674-831X(2012)04-0121-04
2012-03-18
全國教育科學“十一五”規劃教育部重點課題(DCA090321);湖南省高校科技創新團隊支持計劃資助(湘教通[2010]212號);湖南省科技廳高新計劃資助項目(2010GK3049);湖南省教育廳科學研究項目(10C0526;11C0280)
胡偉(1978—),男,湖南長沙人,湖南第一師范學院講師,碩士,主要從事計算機仿真研究;李兵(1969—),男,遼寧鳳城人,湖南第一師范學院講師,主要從事計算機應用研究。
[責任編輯:葛春蕃]