劉民 萬江
摘 要: 對(duì)目前虛擬漫游系統(tǒng)的瓶頸進(jìn)行分析,提出并實(shí)現(xiàn)了一個(gè)基于Flash 3D的、優(yōu)化了的在線虛擬旅游系統(tǒng)。系統(tǒng)對(duì)三維場景文件包括模型文件、材質(zhì)文件及其構(gòu)建步驟進(jìn)行優(yōu)化,并在實(shí)現(xiàn)了對(duì)多種媒體元素支持的基礎(chǔ)上,設(shè)計(jì)了獨(dú)創(chuàng)的熱點(diǎn)系統(tǒng),實(shí)現(xiàn)對(duì)三維場景按需進(jìn)行加載和展示,以及游客在場景中的互動(dòng)漫游。系統(tǒng)測試結(jié)果表明,該設(shè)計(jì)方案優(yōu)化效果顯著,系統(tǒng)性能得到了極大的提升。
關(guān)鍵詞: 在線虛擬漫游; 三維場景優(yōu)化; 熱點(diǎn); 互動(dòng)漫游; Flash 3D
中圖分類號(hào):TP391.9 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2014)05-36-03
Abstract: Through the research on virtual roaming system's bottleneck, an optimized online virtual roaming system based flash three-dimensional is designed and implemented. The system optimizes the files of three-dimensional scenes including model files and material files and the building process. Based on the support of a variety media, an original hotspot system is designed to realize three-dimensional scenes' on-demand loading and displaying, and tourist's interactive roaming in the scene. The testing results show that the system is significantly optimized and its performance has been greatly improved.
Key words: online virtual roaming; three-dimensional scene optimization; hotspot; interaction roaming; Flash 3D
0 引言
作為一種軟件技術(shù)創(chuàng)新,3D的應(yīng)用和發(fā)展給用戶體驗(yàn)帶來顯著的提升。虛擬漫游游將給旅游行業(yè)帶來沖擊和革命,促使旅游業(yè)的服務(wù)水平和質(zhì)量實(shí)現(xiàn)質(zhì)的提升[1]?,F(xiàn)階段,用戶體驗(yàn)的好壞已經(jīng)成為當(dāng)今產(chǎn)品成功的最重要的因素之一[2]。
在線虛擬漫游是指采用多媒體技術(shù)將真實(shí)景區(qū)數(shù)字化處理后,借助計(jì)算機(jī)網(wǎng)絡(luò)終端設(shè)備,可使漫游者如身臨其境般地在虛擬世界中漫游,并具有與景區(qū)環(huán)境交互的功能。本文基于需求分析和功能分析,提出并實(shí)現(xiàn)了一個(gè)高效、擴(kuò)展性強(qiáng)、移植性高并且性能顯著優(yōu)化的在線虛漫旅游系統(tǒng)。
1 系統(tǒng)分析
1.1 發(fā)展現(xiàn)狀
目前我國在線虛擬漫游產(chǎn)品以專業(yè)的虛擬旅游網(wǎng)站為主,如中國全境網(wǎng),上海全境等[3],其大部分都是基于全景圖片的模擬漫游,而不是真正意義上的漫游。用戶與虛擬場景的交互性差,界面不夠完美,用戶體驗(yàn)差[4]。因此,建立一個(gè)基于用戶體驗(yàn)理論,在系統(tǒng)架構(gòu)、功能、性能及其應(yīng)用方面都有明顯突破的在線虛擬旅游系統(tǒng)具有重要的意義。
1.2 功能需求
根據(jù)系統(tǒng)的目標(biāo)和用戶體驗(yàn)設(shè)計(jì)的原則,結(jié)合3D網(wǎng)站質(zhì)量評(píng)估的相關(guān)理論,虛擬旅游系統(tǒng)應(yīng)具備以下功能[5]。①交互式三維場景虛擬漫游:用戶可通過鼠標(biāo)鍵盤等設(shè)備對(duì)三維景區(qū)進(jìn)行漫游參觀。②用戶和景區(qū)的互動(dòng):用戶可以與景區(qū)內(nèi)對(duì)象進(jìn)行互動(dòng)。③全媒體技術(shù)的支持:系支持3D模型、Flash、音頻、視頻、圖片等常用多媒體元素。④三維場景全過程優(yōu)化:對(duì)三維場景文件、材質(zhì)和場景模型及構(gòu)建過程進(jìn)行優(yōu)化,材質(zhì)庫文件應(yīng)可能實(shí)現(xiàn)重用。⑤用戶地圖:實(shí)時(shí)確定用戶的相對(duì)位置,并對(duì)經(jīng)過的路線進(jìn)行標(biāo)記。
結(jié)合以上分析,系統(tǒng)主要分為以下幾個(gè)功能模塊。①三維場景的加載和解析模塊:三維場景的管理,包括三維場景數(shù)據(jù)和模型的導(dǎo)入、優(yōu)化處理和管理,場景的構(gòu)建、優(yōu)化及顯示的全過程管理。②熱點(diǎn)管理模塊:熱點(diǎn)的加載、刪除、編輯及熱點(diǎn)的可視化管理。③互動(dòng)漫游模塊:三維場景漫游的控制。④地圖模塊:用戶地圖的實(shí)現(xiàn)。
2 系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)
2.1 系統(tǒng)構(gòu)建方法
目前用于構(gòu)建在線虛擬漫游系統(tǒng)的Web3D技術(shù),主要包括VRML、X3D、Java3D、Cult3D及其重要的分支Flash 3D等。由于具Web3D每一種標(biāo)準(zhǔn)都有自己的插件,各個(gè)標(biāo)準(zhǔn)之間的支持和互動(dòng)成為了Web3D圖形在互聯(lián)網(wǎng)應(yīng)用上另外一個(gè)關(guān)鍵點(diǎn)[6]。Flash 3D是指基于網(wǎng)頁Flash播放器播放并且可以實(shí)時(shí)交互三維場景信息的一系列應(yīng)用技術(shù)的總稱。其中用于實(shí)時(shí)渲染和制作三維畫面信息的工具,稱為Flash 3D引擎[7]。
如今Flash Player的安裝率超過了90%,并且Flash 3D引擎集成了對(duì)三維模型的燈光照射、地面反射等效果處理,加載速度快并且展示流暢,用戶體驗(yàn)顯著提高。系統(tǒng)使用Flash 3D引擎,采用事件驅(qū)動(dòng)機(jī)制的流程控制方法,通過配置文件實(shí)現(xiàn)系統(tǒng)各個(gè)模塊間的集成和動(dòng)態(tài)加載。
2.2 系統(tǒng)總體流程設(shè)計(jì)
依據(jù)系統(tǒng)的需求分析和功能分析,設(shè)計(jì)出系統(tǒng)的整體開發(fā)流程:①搜集資料,對(duì)場景采用烘焙貼圖的方式進(jìn)行建模,生成各模型的ASE文件和貼圖文件;②對(duì)模型文件和材質(zhì)文件進(jìn)行優(yōu)化處理,并對(duì)熱點(diǎn)進(jìn)行配置;③基于Flash 3D引擎,利用Flash腳本對(duì)在線虛擬漫游系統(tǒng)進(jìn)行集成開發(fā)。3 核心模塊的設(shè)計(jì)
3.1 三維場景系統(tǒng)的優(yōu)化設(shè)計(jì)
三維場景模型完成基本的貼圖和燈光處理后,首先進(jìn)行烘焙貼圖,將三維場景中不需要?jiǎng)討B(tài)渲染實(shí)現(xiàn)的各種燈光以及其他效果轉(zhuǎn)變成貼圖材質(zhì),即節(jié)省實(shí)時(shí)渲染時(shí)費(fèi)時(shí)的計(jì)算,又避免光能傳遞時(shí)可能出現(xiàn)的動(dòng)畫抖動(dòng)。
3dsMax導(dǎo)出的模型文件包括模型信息文件和基礎(chǔ)紋理圖片及烘焙貼圖等材質(zhì)文件。首先通過對(duì)ASE文件結(jié)構(gòu)及其內(nèi)容的分析,提取出跟模型有關(guān)的關(guān)鍵位置,包括點(diǎn)、面、UV坐標(biāo)和關(guān)鍵屬性等,丟棄光照,反射等在烘焙貼圖處理過或者對(duì)三維場景性能影響不大的信息;其次將提取的信息,按照本下面定義的數(shù)據(jù)結(jié)構(gòu)保存為二進(jìn)制文件。
⑴ 三維場景中對(duì)象的總個(gè)數(shù)、總面數(shù)。
⑵ 依次存儲(chǔ)每個(gè)對(duì)象在文件中的起始位置、材質(zhì)文件在文件中的起始位置。對(duì)每個(gè)對(duì)象的信息,從第一個(gè)對(duì)象開始,依次按如下順序進(jìn)行存儲(chǔ)。
⑶ 屬性信息,按照是否有倒影、材質(zhì)類型、圖片類型、材質(zhì)透明度、是否自動(dòng)播放、播放速度、頂點(diǎn)個(gè)數(shù)、面的個(gè)數(shù)和貼圖坐標(biāo)數(shù)、物體名稱順序來存儲(chǔ)。
⑷ 頂點(diǎn)坐標(biāo)信息,按照格式X、Y、Z組織并依次存儲(chǔ)。
⑸ 面片信息,按組成每個(gè)面片上三個(gè)點(diǎn)在上述點(diǎn)中的索引值,參照三維中右手坐標(biāo)系的原則,按面片順序依次存儲(chǔ)。
⑹ UV貼圖坐標(biāo)點(diǎn)信息,按照U、V的格式來組織并按點(diǎn)的順序依次存儲(chǔ)。
⑺ 貼圖面信息,按照貼圖面的三個(gè)點(diǎn)在上述UV點(diǎn)數(shù)中的索引值來存儲(chǔ)。
⑻ 對(duì)象的名稱,根據(jù)對(duì)象的個(gè)數(shù),對(duì)每個(gè)對(duì)象按照步驟⑶至步驟⑻的順序依次進(jìn)行保存。
⑼ 材質(zhì)相關(guān)信息按照每個(gè)材質(zhì)的類型、名稱,根據(jù)材質(zhì)順序依次存儲(chǔ)。
基于上述數(shù)據(jù)格式生成的二進(jìn)制XML三維場景模型文件,即對(duì)模型文件進(jìn)行顯著壓縮,降低系統(tǒng)的數(shù)據(jù)量,同時(shí)又提升了數(shù)據(jù)的安全性。對(duì)于材質(zhì)文件,通過Flash文件格式進(jìn)行壓縮處理,以Flash文件作為系統(tǒng)共享材質(zhì)庫,充分降低材質(zhì)庫的大小。
在系統(tǒng)重構(gòu)階段,根據(jù)三維場景的配置文件設(shè)置其基本參數(shù),包括控制器焦距、初始位置坐標(biāo)、旋轉(zhuǎn)角度、場景XML文件和材質(zhì)Flash文件等場景相關(guān)信息,加載場景模型文件和材質(zhì)文件,并進(jìn)一步進(jìn)行場景文件的解析和構(gòu)建以及材質(zhì)的構(gòu)建,完成材質(zhì)貼圖。最后根據(jù)需要,將經(jīng)過優(yōu)化處理的場景實(shí)時(shí)渲染輸出。
3.2 熱點(diǎn)系統(tǒng)模塊的設(shè)計(jì)
熱點(diǎn)即可以進(jìn)一步互動(dòng)展示的區(qū)域。熱點(diǎn)的內(nèi)容可以是Flash、三維模型等。通過熱點(diǎn)系統(tǒng),基于事件響應(yīng)機(jī)制,實(shí)現(xiàn)了用戶與景區(qū)熱點(diǎn)之間的精確互動(dòng)和按需展示。熱點(diǎn)系統(tǒng)主要由熱點(diǎn)平面、熱點(diǎn)內(nèi)容和配置文件組成。其基本原理是:首先參考熱點(diǎn)的位置坐標(biāo)在場景中創(chuàng)建熱點(diǎn)平面;然后定義熱點(diǎn)內(nèi)容及其操作,實(shí)現(xiàn)熱點(diǎn)內(nèi)容的三維透視操作;最后將熱點(diǎn)內(nèi)容作為材質(zhì)貼圖貼到熱點(diǎn)平面上,并在用戶互動(dòng)時(shí)實(shí)現(xiàn)熱點(diǎn)的加載和顯示。
熱點(diǎn)管理是基于配置文件來實(shí)現(xiàn)的。配置文件為每一個(gè)熱點(diǎn)創(chuàng)造一個(gè)節(jié)點(diǎn),包含了熱點(diǎn)的主要屬性信息。①position:熱點(diǎn)坐標(biāo),用于確定熱點(diǎn)在場景中的位置。②rotate:熱點(diǎn)所在平面的方向。③name:熱點(diǎn)名稱。④wide:熱點(diǎn)所在平面的寬度。⑤height:熱點(diǎn)所在平面的高度。⑥name:熱點(diǎn)內(nèi)容類名稱。⑦content:熱點(diǎn)對(duì)應(yīng)的外部鏈接。⑧material:熱點(diǎn)內(nèi)容的材質(zhì)類型。⑨scale:熱點(diǎn)的縮放比例。⑩speed:播放速度。[⒒] priority:熱點(diǎn)加載的優(yōu)先級(jí),可以根據(jù)場景的需要,實(shí)現(xiàn)邊漫游邊加載的過程。
4 系統(tǒng)具體實(shí)現(xiàn)及其測試
4.1 三維場景系統(tǒng)的主要類說明
類的說明如下。
Animate3d類:用于對(duì)三維系統(tǒng)的管理。主要功能包括初始化控制器、場景初始化配置、控制器的狀態(tài)管理、用戶事件響應(yīng)管理、動(dòng)畫狀態(tài)判斷及三維模塊參數(shù)的配置。
SceneObject類:該類用于三維場景的管理。主要功能包括場景配置文件的解析、場景初始化、場景模型文件解析、熱點(diǎn)加載管理、場景的構(gòu)建和優(yōu)化以及場景的清理等功能。
MyAnimateObj類:該類用于場景中材質(zhì)管理,主要功能包括場景材質(zhì)的載入控制、熱點(diǎn)載入控制、特殊材質(zhì)創(chuàng)建和材質(zhì)的解析等。
MeshObject類:該類用于三維場景的構(gòu)建過程管理,主要功能包括場景文件中的三維點(diǎn)、面片、UV坐標(biāo)和表面創(chuàng)建過程,材質(zhì)的設(shè)置,材質(zhì)的貼圖管理等。
MyPlane類:該類用于熱點(diǎn)的加載管理,主要功能包括確定熱點(diǎn)的坐標(biāo)、設(shè)定熱點(diǎn)的角度以及使熱點(diǎn)的方向控制。
MyTenPlane類:該類用于場景中特殊對(duì)象的管理,包括對(duì)象構(gòu)建過程管理、對(duì)象的初始化、確定對(duì)象的位置、旋轉(zhuǎn)以及朝向。
4.2 系統(tǒng)測試
本文針對(duì)“在線虛擬游白云山系統(tǒng)”,對(duì)系統(tǒng)三維虛擬場景的優(yōu)化效果進(jìn)行測試和分析。
4.2.1 三維場景構(gòu)建的優(yōu)化測試
選取“在線虛擬游白云山系統(tǒng)”建模的兩個(gè)場景,其輸出的ASE文件大小為945K,經(jīng)系統(tǒng)優(yōu)化處理后生成的有效場景文件只有36.6K,優(yōu)化后的文件大小只有原文件的3.87%,優(yōu)化效果顯著。特別是制作大規(guī)模三維場景時(shí),系統(tǒng)的加載速度和用戶體驗(yàn)都有顯著提升。
4.2.2 材質(zhì)文件的優(yōu)化測試
系統(tǒng)利用Flash軟件的壓縮算法對(duì)材質(zhì)文件進(jìn)行壓縮后生成Flash文件,并通過應(yīng)用程序域?qū)崿F(xiàn)對(duì)材質(zhì)文件的控制和材質(zhì)文件的共享。下面以兩個(gè)場景為例對(duì)其說明。fMaterial、sMaterial文件分別用于存放第一個(gè)場景和第二個(gè)場景所獨(dú)有的材質(zhì),shMaterial文件用于存放系統(tǒng)共用材質(zhì)。5 結(jié)束語
本文設(shè)計(jì)了一個(gè)性能得到顯著優(yōu)化的在線虛擬漫游系統(tǒng),為我國虛擬漫游應(yīng)用的大規(guī)模推廣提供了借鑒。系統(tǒng)基于常見的Flash播放器,不需要單獨(dú)的插件,并通過對(duì)三維場景構(gòu)建的模型文件和材質(zhì)文件,以及構(gòu)建步驟的優(yōu)化設(shè)計(jì),實(shí)現(xiàn)了性能的顯著提高。通過獨(dú)創(chuàng)的熱點(diǎn)系統(tǒng),實(shí)現(xiàn)了場景內(nèi)容的按需加載和展示,進(jìn)一步提升了用戶與系統(tǒng)的互動(dòng),使用戶體驗(yàn)得到了極大的提高。測試結(jié)果表明,系統(tǒng)性能得到顯著提升。接下來的研究方向是:多人同時(shí)在線虛擬漫游;漫游者相互之間進(jìn)行社交娛樂;漫游者與場景進(jìn)行更深層次的互動(dòng)。
參考文獻(xiàn):
[1] 何萬銀.古典園林虛擬旅游系統(tǒng)的設(shè)計(jì)與研究[D].河南大學(xué),2007.
[2] 劉靜,孫向紅.什么決定著用戶對(duì)產(chǎn)品的完整體驗(yàn)[J].心理科學(xué)進(jìn)步,
2011.19:64-69
[3] 路遙.虛擬旅游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)研究[D].西北工業(yè)大學(xué),2006.
[4] 張軍.地址公園虛擬旅游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].河南大學(xué),2007.
[5] Jiangping Wan, Hui Zhang, Research on Influencing Factors of
Web 3D User Experience with Grounded Theory [J].iBusiness,2011.3:237-243
[6] 文杰.基于Flex的網(wǎng)絡(luò)三維實(shí)景模擬技術(shù)的研究與實(shí)現(xiàn)[D].上海交
通大學(xué),2008.
[7] 姚波.基于Papervision3D引擎下的室內(nèi)虛擬漫游研究與探索[J].計(jì)
算機(jī)與信息技術(shù),2011.149(4):145-146