摘要:利用Flash 進行Web3D 內(nèi)容展示時,場景文件的大小直接影響著瀏覽場景的速度,當用戶瀏覽場景時才臨時去下載場景,將大大增加用戶的等待時間,降低用戶體驗。本文提出了一種預下載策略,對場景進行預先下載,當瀏覽場景時,不必臨時去服務器獲取相關(guān)數(shù)據(jù),直接加載預先下載好的場景,這樣可以顯著減少等待下載時間,使瀏覽更加流暢,增強用戶體驗。
關(guān)鍵詞:Flash;Web3D;預下載
中圖分類號:TP391.9 文獻標識碼:A 文章編號:1007-9599 (2012) 09-0000-02
Web3D是Web技術(shù)和3D技術(shù)相結(jié)合的產(chǎn)物,是互聯(lián)網(wǎng)上實現(xiàn)3D圖形技術(shù)的總稱。Web3D技術(shù)源于虛擬現(xiàn)實技術(shù)中的VRML分支,1997年,VRML(VRML Consortium)協(xié)會正式更名為Web3D(Web 3D Consortium)協(xié)會,并制定了VRML97新的國際標準。至此,Web3D的專用縮寫被人們所認識。也正是因為這個原因,Web3D經(jīng)常被放在與虛擬現(xiàn)實(VR)一起討論和研究。
Web3D技術(shù)具有強大的交互性、強烈的真實感及在網(wǎng)絡上易于傳輸?shù)忍攸c,因此,在網(wǎng)絡越來越普及、多媒體應用越來越廣泛、虛擬現(xiàn)實技術(shù)發(fā)揮越來越多作用的今天,Web3D技術(shù)在網(wǎng)絡遠程教育、虛擬展會、廣告展示、網(wǎng)頁游戲等Web和3D緊密結(jié)合的應用領(lǐng)域扮演著重要的角色,為虛擬現(xiàn)實技術(shù)的網(wǎng)絡化、輕量化趨勢打下了鋪墊。
多媒體領(lǐng)域用戶體驗的好壞最為直觀強烈,Web3D也不例外。加載模型的緩慢或者失敗、模型運動的不連貫流暢等不佳用戶體驗在目前較為常見。因此目前在實際應用中,占用帶寬低的多媒體軟件工具對Web3D的實現(xiàn)較為普遍,其中又以Flash最為常見。本文就是以利用Flash 進行Web3D 內(nèi)容展示時,進一步優(yōu)化模型的預下載,使得在有限的網(wǎng)絡資源和本地資源的條件下,獲得盡量好的用戶體驗。
一、Web3D的實現(xiàn)技術(shù)
目前常見的Web3D的實現(xiàn)技術(shù)有如下幾種:
(一)基于編程的實現(xiàn)技術(shù)
開發(fā)Web3D最直接的方法是編程,常見語言有VRML,Java,Java3D等,并且需要基層軟件或者驅(qū)動庫的支持,如ActiveX,COM和DCOM等?;诰幊痰腤eb3D實現(xiàn)技術(shù),普遍存在編程工作量大、較難掌握的缺點。
(二)基于開發(fā)工具的實現(xiàn)技術(shù)
Web3D可視化開發(fā)工具有Cult3D,Viewpoint,Pulse3D,Shout3D,Blaxunn3D等,從而為不熟悉編程的人員開發(fā)Web3D對象提供了方便的實現(xiàn)途徑。通過開發(fā)工具實現(xiàn)Web3D的開發(fā),流程簡單、觀并易掌握。
(三)基于多媒體工具軟件的實現(xiàn)技術(shù)
利用Flash、TVR等多媒體工具軟件,不通過編程就很方便進行Web3D的開發(fā)。
在交互式矢量動畫軟件Flash中,對導入的序列圖像或已拼接的360度的全景圖像,通過ActionScript設置交互而形成的3D對象或全景虛擬環(huán)境,能實現(xiàn)360度視角可見的圖像的控制。由于該技術(shù)具有矢量性,所以,具有畫面清晰度不因縮放而降低、文件小等優(yōu)點。另外,由于采用micromedia的Shockwave技術(shù),從服務器端向瀏覽器端傳輸只是一些繪圖指令,所以能夠?qū)崿F(xiàn)在低帶寬上的高質(zhì)量瀏覽。
(四)基于Web開發(fā)平臺的SDK的實現(xiàn)技術(shù)
通過Web的SDK實現(xiàn)Web3D的技術(shù)近來受到關(guān)注,其中WildTangent和EON技術(shù)成熟,應用廣泛。
WildTangent的應用范圍非常廣泛,但要用WildTangent創(chuàng)造出交互效果,用戶必須具備一定的腳本語言基礎(chǔ)。
通過對以上技術(shù)的比較,基于多媒體工具軟件的實現(xiàn)在實現(xiàn)難度和資源占用上有一定優(yōu)勢,這使得其成為目前應用最為廣泛的Web3D實現(xiàn)技術(shù)(尤其是Flash)。因此下文將對Flash實現(xiàn)的Web3D進行場景模型預下載策略的研究,從而進一步減少資源消耗、提升用戶體驗。
二、預下載策略
(一)預下載策略常見問題
當瀏覽者空閑時,根據(jù)瀏覽者的可見范圍,預下載可見范圍外圍的場景數(shù)據(jù)。當瀏覽模型時,先識別瀏覽模型,跟據(jù)相關(guān)特征信息先在本地緩存中查找,如果找到,直接從緩存中加載模型,如果未找到,訪問服務器,從服務器獲取模型文件,加入緩存并加載渲染。
下圖是一種預下載方式結(jié)構(gòu)圖:
圖 1 圖2
這種策略在C/ S模式下是比較容易實現(xiàn)的,但是要在網(wǎng)頁上實現(xiàn),還有一些問題需要探討研究。
1.緩存位置的選擇問題,是本地磁盤還是內(nèi)存;
2.Flash安全機制問題;
3.緩存中模型的查找識別問題;
4.緩存中模型的替換策略。
第一個問題其實與第二項是密切相關(guān)的,基于Flash的3D必須遵循flash的安全機制,也就間接決定了緩存位置的選擇。
(二)Flash player安全機制
安全機制與SWF(shock wave flash)文件緊密相關(guān),而SWF文件的運行環(huán)境有兩種:本機瀏覽和網(wǎng)頁瀏覽,這兩種情況下的安全機制不盡相同。一般情況下,網(wǎng)頁的SWF文件危險性更高。因為用戶對這些SWF文件一無所知,在界面的后面可能隱藏了破壞性的腳本,用戶無法得知這一情況。
未防止惡意的SWF文件破壞用戶的系統(tǒng),安全機制從源頭著手,他確保Flash內(nèi)容在未經(jīng)用戶知曉的情況下,無法訪問本地計算機上的信息。當Flash Player運行時,它會在播放內(nèi)容前進行兩項主要的檢查。一是確定SWF文件的來源,二是檢查存儲在計算機上的受信任內(nèi)容列表,確認本地系統(tǒng)是否信任該內(nèi)容。如果內(nèi)容未通過這些檢查,則停止該內(nèi)容,并且不能再執(zhí)行任何操作。
要想加載外部內(nèi)容,解除訪問限制,只有在數(shù)據(jù)源上進行許可設置,給予特定域的訪問權(quán)限,而這個設置只能由管理員(用戶)來手動設置。經(jīng)過管理員審核的域才能進入受信任的列表。但是這種方式必須通過人工方式進行,在Web上部署Flash時,大多數(shù)用戶是不會進行設置的,原因有二:
1.用戶擔心安全及隱私,把本地域開放給不了解Flash訪問,大多心有余悸,可能出于安全考慮而放棄瀏覽。
2.設置比較繁瑣,大多人嫌麻煩。
首先考慮將緩存放置于本地磁盤空間,這種方式的優(yōu)點是空間相對較大,能夠長時間保存,下載后的模型數(shù)據(jù)不會因為掉電而丟失,能夠重復多次利用,在C/S模式下是十分合適的,但是在B/S模式下,從上述的Flash的安全機制可以看出,要利用Flash Player 訪問本地空間是比較困難的,但是Flash提供了一個可以存儲訪問的本地Cache的緩存空間,可以利用此空間存放預下載的場景模型數(shù)據(jù)。
再來考慮將緩存放置于內(nèi)存中,這種方式的優(yōu)點在于訪問速度快,不受安全機制的限制,缺點也是很明顯的,內(nèi)存空間有限,緩存容量受限制,而且只要退出瀏覽器相關(guān)頁面緩存中的內(nèi)容就丟失,當下一次重新打開頁面瀏覽三維模型時又需要重新從服務器下載。這種方式的預下載緩存還必須與實際應用相結(jié)合,因緩存容量有限,如果預下載的內(nèi)容不是用戶緊急需要的資源,那么會占據(jù)大量緩存空間,頻繁造成緩存中模型的替換,降低緩存的使用效率,給瀏覽提速的效果也就不太明顯。這就需要提供一個理想的預下載策略來配合。
根據(jù)以上分析,可以利用兩種方式的優(yōu)點,結(jié)合內(nèi)存以及cache組建一個大的緩存空間,根據(jù)模型的訪問頻度來調(diào)整預下載的模型位置。
(三)緩存中模型的查找識別
放在緩存中的模型怎樣才能被正確識別并被正確加載這是一個需要解決的問題,一種解決的方案是建立一張緩存中存在的模型表,建立按名存儲的機制,當需要加載模型文件時,先查找模型表,在表中找到模型記錄即從緩存中加載相應模型文件,若未查找到,從服務器下載模型顯示并加入緩存,將模型文件名等信息加入模型表,如圖2所示。
對應的模型表可以建立起一種映射關(guān)系:
文件名稱訪問頻率存在位置
(四)模型替換策略
模型的替換策略可以根據(jù)訪問頻率選擇最近最少使用方式進行替換,當然也可以根據(jù)其他一些因素來選擇替換策略,這里僅供參考。模型表中記錄數(shù)可以根據(jù)下列方式獲?。?/p>
表中記錄數(shù)=(緩存空間大小/單個模型平均大小)-1
訪問頻率可以按升序排列,每被加載一次頻率+1,在構(gòu)建表時就開始進行升序排序,每次頻率變動的同時調(diào)整排序,替換時直接找到表末尾項即可。
參考文獻:
[1]劉運增.互聯(lián)網(wǎng)上的三維技術(shù):Web3D[J].計算機與網(wǎng)絡,2003(10)
[2]鄧文新.Web3D技術(shù)的教學應用研究[J].現(xiàn)代教育技術(shù),2002(4)
[3]高永惠.3種Web三維交互技術(shù)的分析和比較[J].廣東醫(yī)學院學報,2004(6)
[4]朱春華,葉建華,詹友基,蘇發(fā).產(chǎn)品三維展示網(wǎng)絡平臺的研究[J].重慶科技學院學報(自然科學版),2009(6)
[5]何苗.Web3D技術(shù)初探[J].電腦知識與技術(shù),2011(21)