摘要:主要討論了如何利用虛擬現實建模語言VRML來設計網絡三維游戲。首先介紹了VRML的工作方式及特性,然后通過VRML與3D MAX的結合闡述了在設計網絡三維游戲過程中三維建模的相關技術,如:VRML的重要節點,三維游戲中虛擬場景模型的表示,碰撞檢測以及三維角色模型的建立。最后簡要概括了VRML文件的優化及VRML的優缺點。
關鍵詞:網絡三維游戲;VRML;三維建模;虛擬場景;碰撞檢測
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)34-1735-02
The Application of VRML in the Design of Web 3D Game
YANG Jun1,DIAO Yong-feng2
(1.Computer Science Academy, China West Normal University, Nanchong 637000, China; 2.The Teaching Department, China West Normal University, Nanchong 637000, China)
Abstract: How to use the Virtual Reality Modeling Language(VRML) to design the web 3d game is mainly discussed. Firstly, it introduced the mode of working and some features of VRML. Then, expatiated the correlated technique of 3d modeling in the process of designing web 3d game by VRML and 3D MAX. Such as: the important nodes of VRML, the expression of virtual scene models in web 3d game, the collision detection and the building of 3d character models. Finaly, it briefly summarized the majorization of VRML files and the excellent feature and weak side of VRML.
Key words: web 3d game; VRML; 3d modeling; virtual scene; collision detection
1 引言
網絡三維游戲是虛擬現實應用的最高端。三維建模是虛擬現實技術中最重要的技術領域,也是虛擬現實技術中的關鍵技術之一。目前市場上的虛擬現實技術已經發展到幾十種之多,如VRML、Atmosphere、Cult3D、Java3D、Viewpoint等。這些技術各有特點,主要應用于電子商務、游戲娛樂、遠程教育、城市規劃、遠程醫療、藝術創作等領域。其中VRML是一項與多媒體通信、Internet、虛擬現實等領域密切相關的新技術,它定義了當今3D應用中的絕大多數常見概念,諸如變換層級、光源、視點、幾何、動畫、霧、材質屬性和紋理映射等。在三維游戲中,考慮到場景及角色時實互動的特點,建立虛擬模型時VRML作為一種虛擬現實建模語言具有比較大的優勢。接下來主要討論VRML在設計基于PC平臺的虛擬現實網絡三維游戲過程中的應用并介紹其相關的關鍵技術。
2 VRML工作方式及其特性
VRML是以因特網作為應用平臺的,VRML的訪問方式是基于客戶/服務器模式。其中服務器提供了VRML文件以及支持資源(如圖像、視頻、聲音等),而客戶端則通過網絡下載所希望訪問的文件,并且通過本地平臺上的VRML瀏覽器交互式地訪問該文件所描述的虛擬境界。由于瀏覽器是本地平臺提供的,從而實現了平臺無關性。見圖1所示的VRML的工作方式。
從概念上講,每個VRML文件都是一個基于時間的三維空間,VRML文件的一個重要特性是能夠通過包含關系把文件組織在一起,并能夠通過超鏈接把文件聯系在一起。VRML的另一個特性是用在分布式環境中,支持多個分布式文件的多種對象和機制,包含內聯式嵌入其它VRML文件,通過超鏈接指向其它文件。傳統的VR中使用的實時3D渲染引擎在VRML這里得到了更好的體現,這一特性使VR的建模與實時訪問更明確的隔離開來,這也是VRML不同于三維建模和動畫的特點。同時VRML像HTML一樣,用ASCII文本格式描述世界和鏈接。這保證了各種平臺通用的同時,降低了數據量,從而在低帶寬的網絡上也可以實現。
3 VRML與3D MAX在游戲設計過程中的結合
使用3D MAX軟件創建模型,進行材質、紋理等方面的處理后,利用VRML插件轉化為VRML(.wrl)文件導出,然后再進行場景圖重建,從而達到所需要的場景。其中又可以分為:幾何建模、物理建模及虛擬環境的建立等幾個部分。在幾何建模過程中,要按照樹狀層次結構圖將整個模型分為幾部分分別制作,再在3D MAX中組合在一起,將任務化整為零,提高細節制作效果。而物理建模則要通過幾何建模,物體的表面顏色、材質、紋理、光滑度、燈光、陰影效果及物理約束、碰撞等效應也是表現物體的重要因素。虛擬環境的建立是通過VRML自身的功能,綜合運用Transform、Inline等場景節點實現造型,最后利用VRML可視化編輯器Cosmo Worlds來進行場景合成。
4 網絡三維游戲設計中的關鍵技術
4.1 利用VRML設計的關鍵技術
在設計游戲過程中非常重要而且常用的節點可以作為關鍵技術加以重視。①TimeSensor時間傳感器節點:TimeSensor時間傳感器節點的作用是創建一個虛擬時鐘,并對其他節點發送時間值,控制VRML立體空間動態對象的開始、變化和結束過程的時間,實現空間物體造型的移動、變色、變形等自動變化。②TouchSensor觸摸傳感器節點:TouchSensor觸摸傳感器節點是瀏覽者與虛擬對象之間相接觸型傳感器節點。該節點可以為任何成組節點的子節點,并感知用戶對該組節點的動作。通過使用這些檢測器節點,使瀏覽器感知用戶和各種操作,比如旋轉、移動、飛行等,這樣用戶就可以和VRML虛擬世界中的三維對象直接進行交互。③PROTO創建用戶新節點:PROTO也可以說是VRML的精髓,用PROTO包裝代碼,將腳本中的事件關聯到PROTO定義的事件聲明,將程序中含有鏈接的部分也關聯到PROTO定義中,這樣當在另外一個文件中生成一個PROTO的實例的時候,這些鏈接將會以那個實例所在的文件為基礎去尋找,這樣能夠確保文件被引用。
4.2 場景模型的表示
未來的虛擬現實游戲將結合3S技術發展。對于虛擬現實游戲來說,一個重要的問題是如何表示各種各樣的場景模型。虛擬游戲的場景模型主要是用于表示、瀏覽、分析和管理與地理相關的數據,一般包括自然景物模型,各種游戲建筑模型以及道路和交通系統模型,它們集成了2D和3D地理數據。Grass提出了由地形表面特征決定其局部的細節層次的算法。該算法通過小波變換分解原始數據集,然后分析變換所得的系數,即首先定義一個小波空間濾波器,然后通過對局部譜的估計,來控制局部表面細節層次的近似程度。這個局部的譜特性是由地形表面數據的小波表達式決定的,且地形任何區域的細節層次可以自適應地實時優化。在山脊、山谷等曲率高的區域用高細層次表示;在那些近似于平面的區域,只需用較少的三角形就完全可以滿足要求,如圖2所示的虛擬場景。這種方法不僅對地形有效,而且對其它定義在規則柵格上的數據集均很有效。
4.3 碰撞檢測
游戲中,經常要用到各種碰撞檢測。游戲中碰撞檢測相對來說比較簡單,可以采用判斷兩個對象之間,所占用屏幕坐標區域是否有交點來進行碰撞檢測。判斷兩個對象所占用屏幕坐標區域是否有交點實際上就是獲取要判斷的兩個對象所在屏幕(X,Y)坐標,然后將這個X和Y坐標加上該對象圖片的寬和高,形成一個矩形區域,再計算這兩個矩形是否有交點。如有交點,表示這兩個對象有碰撞。
4.4 網絡三維游戲中角色模型的設計
考慮到網絡三維游戲中虛擬角色模型設計的復雜性,如圖3所示的人體3D模型,可以基于3D MAX來設計基本的虛擬人體模型,在此基礎上加以渲染。同時,在3D MAX中Bitmanagement為我們提供了非常好的BS的導出插件(BS Exporter for 3D MAX),可以很方便的將多重紋理烘焙等很多信息導出為符合BS瀏覽器格式的.wrl文件,當然也包括骨骼系統,安裝好BS Exporter之后只要在導出.wrl文件的時候鉤選“Bone amimation H-Anim support ”項,即可將制作好的骨骼、蒙皮以及角色的動作輸出為.wrl文件。多重紋理導出插件就是用BS導出插件修改的,功能完全一致!當從3D MAX中輸出了一個角色動作的.wrl文件后,可以看到即使是角色動作動畫,也是通過插補器驅動各骨骼來實現的。對比角色行走與奔跑即walk.wrl和run.wrl兩個文件可以發現,同一個角色的兩個文件中角色骨骼、蒙皮等代碼都是相同的,而不同的只有動作插補器部分數據。因此,不同的動作可以共用同一個骨骼和蒙皮,然后將不同的動作相關的事件傳感器、插補器以及路由正確的組織起來,并對不同的動作相關的TimeSensor進行控制,便可以實現在不同的動作之間進行切換控制。
5 VRML文件的優化
為了減小文件規模,提高運行速度和執行性能,可以使用一些優化工具對模型進行優化。利用3D MAX提供的模型優化器,采用一種“合并相鄰平面”的算法將相鄰平面之間夾角小于某一指定值的面合并,從而減少總平面數,減少文件規模。為進一步提高VRML文件的傳輸速率,常常對其進行壓縮。在最終的VRML場景編輯完成后,還可使用GZIP對其進行壓縮,VRML瀏覽器會自動識別和解壓GZIP格式的壓縮文件。使用文件壓縮可以明顯減少傳輸時間。
6 結束語
從文章前面部分可以看出在網絡三維游戲設計中,特別是在虛擬模型的建立過程中,VRML以其獨特的性能可以發揮很大的優勢,但必須看到VRML自身也有一些局限性,在一定程度上限制了VRML在開發商業化游戲過程中的應用。其中一個非常嚴重的問題就是,客戶端從Internet上下載了網絡三維游戲后可以看到其原代碼,這對商業化游戲來說是不可接受的。當然這個問題在用JAVA來替代Script節點中嵌套的JavaScript語言時會得到一定緩解,而且也能提高商業安全性。另一個VRML的不利之處就是其限制用鍵盤輸入,僅在通過VRML的瀏覽器進行視點導航時被支持。諸如此類問題還有很多,因此我們期待隨著虛擬現實技術的發展,VRML的性能也會起來越好,編譯執行速度能更進一步提高,并且可以嵌套更多的腳本語言,開發出商業化的游戲引擎等,從而在網絡三維游戲開發領域占有重要的一席之地。
參考文獻:
[1] 汪志達,葉偉.VRML虛擬現實網頁設計[M].北京:清華大學出版社,2006:138-145.
[2] 張金釗,張金鏑,張金銳.虛擬現實三維立體網絡程序設計語言VRML[M].北京:清華大學出版社,北京交通大學出版社,2004:83-98.
[3] 陳俊華.VRML-第二代WWW技術核心[J].情報科學,2001(6):33-36.
[4] 陽化冰,劉忠麗.虛擬現實構造語言VRML[M].北京:航空航天大學出版社,2000:114-132.
[5] 李文鋒,王琦,陳定方.虛擬設計環境建立與OPENGL和VRML的研究開發[J].工程圖學學報,2000(2):1-5.
[6] 劉明昆.三維游戲設計師寶典[M].成都:四川出版集團,2005:197-200.
[7] 申蔚,夏立文.虛擬現實技術[M].北京:希望電子出版社,2002:56-90.
[8] 楊長水,王兆其.個性化虛擬人體模型骨架生成[J].輔助設計與圖形學學報,2004(1).