亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        三維虛擬數(shù)字校園系統(tǒng)的資源封包設(shè)計

        2014-12-03 05:05:00馬瑞安徽電子信息職業(yè)技術(shù)學(xué)院軟件學(xué)院安徽蚌埠233030
        關(guān)鍵詞:封包預(yù)置腳本

        馬瑞 (安徽電子信息職業(yè)技術(shù)學(xué)院軟件學(xué)院,安徽 蚌埠233030)

        三維虛擬技術(shù)的應(yīng)用將會越來越廣泛,其中采用Unity3D技術(shù)開發(fā)的三維虛擬系統(tǒng)具有模型可視化、虛擬與現(xiàn)實(shí)交互、實(shí)時更新虛擬模型和支持多平臺等優(yōu)點(diǎn),是目前眾多三維虛擬設(shè)計軟件中開源代碼及功能應(yīng)用全面的三維虛擬引擎[1-2]。通常情況下,虛擬系統(tǒng)在Web服務(wù)器端發(fā)布,設(shè)計人員將系統(tǒng)中所有資源存放在Web服務(wù)器供用戶使用。用戶在使用系統(tǒng)時將所需要的系統(tǒng)資源文件全部下載完畢后,軟件才能動態(tài)的加載并創(chuàng)建系統(tǒng)里的場景和角色等對象,然后才能動態(tài)的將腳本綁定在虛擬數(shù)字對象上,動態(tài)地將貼圖賦予虛擬數(shù)字對象,必須動態(tài)地完成各種加載操作之后系統(tǒng)才能有效的運(yùn)行,這樣會大大影響用戶從系統(tǒng)服務(wù)器中得到響應(yīng)的時間以及在用戶端系統(tǒng)動態(tài)運(yùn)行的效率。為此,筆者利用Unity3D提供的Prefab和Assetbundle功能對系統(tǒng)里的模型資源、UI資源進(jìn)行預(yù)置、封包和解包,當(dāng)從服務(wù)器上將先預(yù)置后封包的Assetbundle文件下載后直接實(shí)例化,再放入到三維虛擬數(shù)字校園系統(tǒng)中,這樣可以有效提高系統(tǒng)在Web用戶端的運(yùn)行效率。

        1 移動平臺封包

        預(yù)置是Unity3D中提供給設(shè)計人員的一種資源類型,其是存儲在項目視圖中的一種可重復(fù)使用的三維模型資源對象[3]。預(yù)置可以重復(fù)多次地載入到多個不同場景中,當(dāng)場景中載入了一個預(yù)置對象,系統(tǒng)就會自動創(chuàng)建對應(yīng)的實(shí)例,且所有預(yù)置實(shí)例都鏈接到原始預(yù)置本身,也就是說預(yù)置實(shí)例都是預(yù)置本身的克隆。不管項目存在多少實(shí)例,當(dāng)對預(yù)置進(jìn)行任何更改,將會看到這些更改都會被應(yīng)用到該預(yù)置對象的所有實(shí)例中。一般情況下,預(yù)置封包時占用很少的存儲空間(不超過1KB)。在實(shí)際開發(fā)過程中,預(yù)置對象會關(guān)聯(lián)模型、特效、界面、聲音、場景和腳本等資源,關(guān)聯(lián)上述資源后,預(yù)置對象的存儲就會隨著變大,因而在系統(tǒng)設(shè)計過程中應(yīng)盡量減少預(yù)置對象的重復(fù)關(guān)聯(lián),由此減少系統(tǒng)消耗的內(nèi)存資源[4]。

        一般情況下,設(shè)計人員會把腳本文件綁定到預(yù)置對象上,然后再進(jìn)行資源封包,但是移動平臺不支持腳本更新,如將JumpTest.js這條測試腳本綁定在預(yù)置中,系統(tǒng)移動平臺通過服務(wù)器下載該封包,再載入到工程中會發(fā)生JumpTest.js測試腳本不能被正常加載和執(zhí)行的現(xiàn)象[5]。在實(shí)際系統(tǒng)中,存在需要大量的動態(tài)加載和執(zhí)行腳本文件的需求,為了滿足上述需要,可以在腳本中添加Public變量,通過Inspector腳本中的Public參數(shù)實(shí)現(xiàn)腳本更新。如果本地包含JumpTest.js腳本,系統(tǒng)將把該腳本綁定在從服務(wù)器端下載的預(yù)置中并且被執(zhí)行,但是當(dāng)本地工程文件中沒有JumpTest.js腳本文件時,那么從服務(wù)器端下載的預(yù)置中的腳本文件將永遠(yuǎn)不被執(zhí)行。因此,應(yīng)通過在腳本文件中添加Public變量,以及對Public變量參數(shù)的修改來實(shí)現(xiàn)移動平臺的腳本更新。

        2 場景資源封包

        場景需要保存模型及該模型文件的相關(guān)文件和坐標(biāo)信息,并且烘培該場景的光信。由于烘培不能被重新加載,因此只能烘焙場景特有模型,被多場景共用的模型必須動態(tài)加載。由于場景中存在很多公用模型,因而如何設(shè)計封裝規(guī)則封包場景資源就顯得尤為重要[6]。封包場景資源占用內(nèi)存的大小=公用模型的大小×場景的個數(shù)的大小,這表明場景資源封包會重復(fù)占用大量的內(nèi)存資源。通過研究場景封包的策略,首先烘培整個場景,然后丟掉其中的公共模型,只保留特有的模型。采用XML文件記錄被丟掉的公共模型在場景中的坐標(biāo)數(shù)據(jù),最后將其封包在不同的封包文件中(見圖1)。

        由于系統(tǒng)中公共資源的封包被加載的次數(shù)更多,因此該封包被設(shè)計成在內(nèi)存中常駐。系統(tǒng)場景封包的執(zhí)行過程設(shè)計為,首先系統(tǒng)下載場景的封包,然后依據(jù)場景封包文件中的XML文檔的坐標(biāo)信息,從內(nèi)存中調(diào)用常駐的公共資源封包動態(tài)地再加載到場景中,最終實(shí)現(xiàn)整個場景的加載。

        圖1 公共資源與多場景封包架構(gòu)圖

        3 自動封包設(shè)計

        通常情況下,系統(tǒng)封包都是由設(shè)計人員根據(jù)系統(tǒng)規(guī)劃,人工判斷每個場景中哪些是其特有資源,哪些是和其他場景共用資源,上述處理方式效率低且容易出錯。為此,設(shè)計一種自動封包方法,設(shè)計程序?qū)λ袌鼍斑M(jìn)行遍歷,記錄資源的被使用信息,判斷哪些資源被場景封包,哪些資源獨(dú)立封包,最終完成系統(tǒng)資源的封包工作。

        4 讀取封包

        由于Assetbundle封包可以同時放在服務(wù)器或者本地,并且下載讀取的方式完全一樣,因而設(shè)計人員可以在系統(tǒng)開發(fā)階段把資源封包建設(shè)在本地,當(dāng)系統(tǒng)完成前期測試后再把資源封包上傳到服務(wù)器上進(jìn)行公共測試,這樣有利于系統(tǒng)在公共測試和發(fā)布后的不斷更新[7]。

        讀取封包(WWW bundle=new WWW(path);WWW.LoadFromCacheOrDownload(path,5))分為2種方式:方式1是bundle只能保存在內(nèi)存中,一旦退出系統(tǒng)再進(jìn)入還得重新下載,因而該方式不適用;方式2是將Unity3D下載Assetbundle到本地中,其原理是通過版本號和下載地址在本地尋找是否有該Assetbundle,如果有則直接返回對象,如果沒有則根據(jù)下載地址重新從服務(wù)器或者本地下載。

        5 測試效果

        利用專業(yè)Unity3D性能測試工具Profiler測試系統(tǒng),得到未采用封包策略的系統(tǒng)運(yùn)行內(nèi)存測試數(shù)據(jù)如圖2所示,而采用封包策略后的系統(tǒng)運(yùn)行內(nèi)存測試數(shù)據(jù)如圖3所示。比較圖2和圖3可知,未來用封包策略占用的內(nèi)存資源數(shù)據(jù)為0.52GB,而采用封包策略占用的內(nèi)存資源數(shù)據(jù)為386.5MB,表明采用封包策略后系統(tǒng)占內(nèi)存空間明顯減少,因而系統(tǒng)在客戶端的運(yùn)行效率更高。

        6 結(jié)語

        采用Unity3D提供的Prafab及Assetbundle對三維虛擬數(shù)字校園系統(tǒng)的模型文件進(jìn)行預(yù)置和封包,并采用公共模型Assetbundle單獨(dú)封包,這樣可以有效減少常駐內(nèi)存的模型文件數(shù)量,從而起到提高系統(tǒng)運(yùn)行及數(shù)據(jù)再次加載的效率。今后,對基于Unity3D的三維虛擬數(shù)字校園系統(tǒng)來說,如何提高客戶端的下載速度、場景在客戶端加載的效率及系統(tǒng)在客戶端運(yùn)行的效率和穩(wěn)定性,需要進(jìn)一步加以研究并使之完善。

        圖2 未采用封包策略的內(nèi)存測試數(shù)據(jù)圖

        圖3 采用封包策略的內(nèi)存測試數(shù)據(jù)圖

        [1] 王星捷,李春花 .基于Unity3D平臺的三維虛擬城市研究與應(yīng)用 [J].計算機(jī)技術(shù)與發(fā)展,2013(4):241-244.

        [2] 李保杰,于法展,李戰(zhàn)成 .基于OpenGL虛擬校園漫游系統(tǒng)的設(shè)計與實(shí)現(xiàn) [J].蘇州科技學(xué)院學(xué)報,2006,22(19):45-48.

        [3] 朱慧娟 .基于Unity3D的虛擬漫游系統(tǒng) [J].計算機(jī)系統(tǒng)應(yīng)用,2012,21(10):36-39,65.

        [4] 宣雨松.Unity3D游戲開發(fā) [M].北京:人民郵電出版社,2012.

        [5] 鄒靜 .迎接互聯(lián)網(wǎng)的明天——玩轉(zhuǎn)3Dweb[M].北京:電子工業(yè)出版社,2011.

        [6] Ramasundaram V,Grunwald S,Mangeot A,et al.Development of an environmental virtual field laboratory [J].Computers &Education,2005,45(1):21-34.

        [7] Mac E,Cai G,Sharma R.Enabling collaborative geoinformation access and decision-making through a natura,multimodal interface [J].International Journal of Geographical Information Science,2005,19(3):267-292.

        猜你喜歡
        封包預(yù)置腳本
        酒駕
        中藥封包在急診老年急性胃腸炎患者中的臨床應(yīng)用
        基于排隊論的水下預(yù)置反艦導(dǎo)彈部署優(yōu)化
        安奇奇與小cool 龍(第二回)
        護(hù)膚 巧用保鮮膜
        無沖突規(guī)則校園網(wǎng)絡(luò)安全系統(tǒng)的設(shè)計
        門窗(2019年12期)2019-04-20 16:06:52
        用友U8軟件預(yù)置會計科目的維護(hù)
        電子測試(2018年22期)2018-12-19 05:12:56
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        快樂假期
        混料設(shè)計在6061鋁合金激光焊預(yù)置Al-Si-Ni粉末中的應(yīng)用
        焊接(2016年8期)2016-02-27 13:05:12
        中文字幕av素人专区| av片在线观看免费| 亚洲av成人一区二区三区av| 国产在线欧美日韩精品一区二区| 日韩精品一二区在线视频| 好看的中文字幕中文在线| 精品国产中文字幕久久久| 午夜视频福利一区二区三区| 亚洲av毛片在线播放| 国产让女高潮的av毛片| 国产片精品av在线观看夜色| 人妻少妇av中文字幕乱码| 日韩女人毛片在线播放| 初尝人妻少妇中文字幕在线| 久久99国产综合精品女同| 99久久精品免费看国产一区二区三区| 西西大胆午夜人体视频| 久久国产亚洲AV无码麻豆| 国产黄色污一区二区三区| 亚洲精品国产av日韩专区| 久久国产人妻一区二区| 久久精品麻豆日日躁夜夜躁| 久久半精品国产99精品国产| 99久久免费中文字幕精品| 91精品国产91综合久久蜜臀 | 亚洲 暴爽 AV人人爽日日碰| 免费人成网站在线播放| 日韩人妻精品中文字幕专区| 夜夜揉揉日日人人青青| 精品综合久久久久久97超人| 特级毛片全部免费播放a一级| 亚洲av天堂在线免费观看| 浓毛老太交欧美老妇热爱乱| 少妇无码av无码一区| 国产主播在线 | 中文| 一本大道加勒比东京热| 五月综合丁香婷婷久久| 亚洲av无码专区国产乱码4se| 天天夜碰日日摸日日澡| 日韩成人无码v清免费| 麻豆成人久久精品二区三区91|