本發(fā)明屬于云渲染和應(yīng)用軟件體系結(jié)構(gòu)設(shè)計(jì)相結(jié)合的領(lǐng)域,涉及虛擬現(xiàn)實(shí)在移動(dòng)智能終端的應(yīng)用,具體涉及一種移動(dòng)終端用戶與遠(yuǎn)程3D場(chǎng)景進(jìn)行實(shí)時(shí)交互訪問的方法。
背景技術(shù):
隨著計(jì)算機(jī)視覺、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、增強(qiáng)虛擬環(huán)境等技術(shù)日新月異的發(fā)展,各種規(guī)模的三維場(chǎng)景隨之走進(jìn)了人們的生活,如:大規(guī)模的3D網(wǎng)絡(luò)游戲,支持多人同時(shí)在線對(duì)自己逝去的親人進(jìn)行祭祀活動(dòng)的網(wǎng)絡(luò)虛擬祭祀平臺(tái)、虛擬試衣平臺(tái)、場(chǎng)景展示平臺(tái)、虛擬測(cè)試平臺(tái)等。毫無疑問,當(dāng)前主流PC機(jī)可以直接對(duì)各種規(guī)模的遠(yuǎn)程場(chǎng)景進(jìn)行漫游和相關(guān)的交互操作;而當(dāng)前的移動(dòng)終端用戶對(duì)遠(yuǎn)程3D場(chǎng)景的訪問和交互則受到了諸多方面因素的限制:
1、硬件的限制:當(dāng)前移動(dòng)端為了解決渲染性能不足的問題,已經(jīng)從原先的CPU承擔(dān)渲染工作轉(zhuǎn)化為了由專門的GPU芯片承擔(dān)渲染工作。但是由于在移動(dòng)設(shè)備領(lǐng)域并沒有形成類似PC界的統(tǒng)一標(biāo)準(zhǔn),各個(gè)廠商推出的產(chǎn)品實(shí)現(xiàn)各不相同,因此一套渲染程序在不同的移動(dòng)設(shè)備上運(yùn)行效果差別可能會(huì)比較大。并且渲染性能好一些的移動(dòng)設(shè)備價(jià)格又比較高,想要讓一般手機(jī)用戶也能感受到比較好的虛擬場(chǎng)景交互體驗(yàn)很難做到。除此之外,就算是目前頂級(jí)的一些移動(dòng)設(shè)備,在面對(duì)三角形數(shù)目多、渲染算法復(fù)雜的場(chǎng)景時(shí),依然會(huì)出現(xiàn)卡頓、硬件不支持的情況;
2、第三方插件的依賴:目前在移動(dòng)端運(yùn)行3D場(chǎng)景,大多都需要安裝由第三方開發(fā)的軟件才能夠運(yùn)行,這樣的要求對(duì)于一些項(xiàng)目來說并不方便,部分用戶有可能會(huì)拒絕安裝這些第三方插件,從而阻礙了相關(guān)產(chǎn)品的推廣;
3、瀏覽器技術(shù)的限制:當(dāng)前主流移動(dòng)端瀏覽器在渲染3D場(chǎng)景普遍采用WebGL的技術(shù),但該技術(shù)在移動(dòng)設(shè)備瀏覽器上還不成熟,并且主流瀏覽器在對(duì)該技術(shù)的支持上也是各不相同。在這種情況下,渲染程序在不同的瀏覽器上運(yùn)行得到的效果不僅可能會(huì)不一致,還有可能在運(yùn)行過程中出現(xiàn)效率低、渲染錯(cuò)誤的情況;
4、網(wǎng)絡(luò)傳輸速度的限制:當(dāng)移動(dòng)終端本地需要渲染3D場(chǎng)景時(shí),需要從服務(wù)器下載相關(guān)的素材文件,而當(dāng)前移動(dòng)終端的網(wǎng)絡(luò)傳輸速度在應(yīng)對(duì)這些素材有些困難,如果通過WIFI或者是4G網(wǎng)絡(luò)進(jìn)行下載,單個(gè)素材文件大小達(dá)到10M的量級(jí)時(shí),僅僅下載素材就要耗費(fèi)許多時(shí)間,這將會(huì)影響到用戶的體驗(yàn)。如果預(yù)先將渲染所需的素材文件保存在移動(dòng)設(shè)備中,也很難避免到后期素材文件更新的問題,并且占用用戶過多的存儲(chǔ)空間也可能會(huì)導(dǎo)致用戶拒絕使用。
當(dāng)前主流移動(dòng)終端設(shè)備都存在的瓶頸問題:移動(dòng)端瀏覽器不能流暢的漫游、瀏覽遠(yuǎn)程3維場(chǎng)景,如何能夠讓更多的移動(dòng)終端用戶體驗(yàn)到近似PC端的3D場(chǎng)景交互,是一個(gè)需要解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了克服現(xiàn)有技術(shù)不支持移動(dòng)端用戶對(duì)遠(yuǎn)程三維場(chǎng)景瀏覽和相關(guān)的交互操作技術(shù)瓶頸,使得移動(dòng)終端用戶和PC端用戶達(dá)到相似的用戶體驗(yàn),提供了一種移動(dòng)終端用戶實(shí)時(shí)與遠(yuǎn)程虛擬3D場(chǎng)景交互的方法。
本發(fā)明提供的基于云的移動(dòng)終端用戶實(shí)時(shí)訪問遠(yuǎn)程3D場(chǎng)景的渲染交互方法,基于三層渲染交互框架,三層渲染交互架構(gòu)從上而下依次為通信層、渲染層和資源管理層。實(shí)現(xiàn)移動(dòng)終端用戶實(shí)時(shí)訪問遠(yuǎn)程3D場(chǎng)景的渲染交互方法的步驟包括三個(gè),如下:
步驟1,在通信層建立移動(dòng)終端與云渲染集群的通信通道。
在通信層,通過負(fù)載均衡服務(wù)器將用戶的訪問請(qǐng)求進(jìn)行分流,發(fā)送到不同的服務(wù)器鏡像區(qū);每個(gè)服務(wù)器鏡像區(qū)對(duì)應(yīng)有一個(gè)任務(wù)調(diào)度服務(wù)器和一個(gè)渲染集群;服務(wù)器鏡像區(qū)內(nèi)的任務(wù)調(diào)度服務(wù)器將用戶的操作請(qǐng)求,轉(zhuǎn)換成渲染機(jī)可識(shí)別的操作指令,分配給服務(wù)器鏡像區(qū)所屬的渲染集群中的渲染機(jī)進(jìn)行處理。
負(fù)載均衡服務(wù)器緩存用戶的訪問請(qǐng)求、訪問路徑和操作。任務(wù)調(diào)度服務(wù)器負(fù)責(zé)跟渲染機(jī)通信,將用戶的操起請(qǐng)求分配給低負(fù)荷的渲染機(jī),以便該用戶下次訪問的時(shí)候能在上次的基礎(chǔ)上進(jìn)行訪問。
步驟2,渲染層中的渲染機(jī),向資源管理層請(qǐng)求資源文件,構(gòu)造虛擬場(chǎng)景,根據(jù)操作指令調(diào)整虛擬場(chǎng)景中的攝像頭進(jìn)行渲染,將渲染結(jié)果以圖片的形式傳送回文件服務(wù)器保存,并傳輸給移動(dòng)終端用戶。
用戶訪問時(shí),將加載用戶虛擬場(chǎng)景配置信息,根據(jù)用戶虛擬場(chǎng)景配置信息從異構(gòu)場(chǎng)景素材資源管理層中獲取所需要的場(chǎng)景素材。
渲染層中的渲染機(jī)構(gòu)造虛擬場(chǎng)景的方法具體是:由云服務(wù)器運(yùn)行U3D.EXE可執(zhí)行程序,每個(gè)U3D.EXE通過外部用戶指令啟動(dòng)1個(gè)線程,生成1個(gè)獨(dú)立的用戶虛擬場(chǎng)景單元;用戶虛擬場(chǎng)景單元通過Socket套接字與任務(wù)調(diào)度服務(wù)器進(jìn)行通信,有用戶請(qǐng)求訪問時(shí)任務(wù)調(diào)度服務(wù)器通過Socket啟動(dòng)一個(gè)U3D.EXE程序并傳遞用戶指令。
步驟3,資源管理層管理渲染所需的各種資源文件,向渲染機(jī)提供異構(gòu)資源調(diào)度管理服務(wù),通過異步資源下載、異步資源解包和委托方法確保資源調(diào)度和處理的性能。
本發(fā)明的優(yōu)點(diǎn)與積極效果在于:
(1)本發(fā)明將移動(dòng)終端用戶的操作自動(dòng)轉(zhuǎn)換為操作指令,并由云渲染集群實(shí)際完成執(zhí)行過程并將渲染結(jié)果以高質(zhì)量圖片的方式傳輸給移動(dòng)終端用戶。對(duì)于用戶來說,體驗(yàn)到的是近似于本地場(chǎng)景的交互操作,通過本發(fā)明方法提供給用戶易上手的遠(yuǎn)程沉浸式的交互方式,其體驗(yàn)效果也達(dá)到了與PC端用戶效果近似的水平。
(2)本發(fā)明避免了三維場(chǎng)景生成是時(shí)所采用的引擎差異、移動(dòng)端瀏覽器的差異,同時(shí)也解決了實(shí)時(shí)場(chǎng)景交互受限于移動(dòng)終端硬件配置及其計(jì)算能力、移動(dòng)網(wǎng)絡(luò)速度的限制和移動(dòng)終端處理速度等問題的限制,通過以云服務(wù)和連續(xù)間隔圖片的方式,使移動(dòng)終端用戶和PC端用戶有近似的3D場(chǎng)景沉浸式互效果,取得了良好的用戶體驗(yàn)。
(3)本發(fā)明還提出以異步下載異步加載定期回寫的實(shí)時(shí)云渲染方案和實(shí)時(shí)數(shù)據(jù)傳輸?shù)钠胶獠呗?,以支持移?dòng)終端對(duì)遠(yuǎn)程3D場(chǎng)景的高并發(fā)訪問。
附圖說明
圖1為本發(fā)明的渲染交互方法的應(yīng)用示意圖;
圖2為本發(fā)明移動(dòng)終端用戶實(shí)時(shí)訪問遠(yuǎn)程3D場(chǎng)景的渲染交互框架的層次結(jié)構(gòu)圖;
圖3為本發(fā)明方法中實(shí)現(xiàn)用戶虛擬場(chǎng)景的單元模塊示意圖。
具體實(shí)施方式
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
本發(fā)明方法采用基于云概念的移動(dòng)終端實(shí)時(shí)遠(yuǎn)程交互3D場(chǎng)景的渲染架構(gòu),來使移動(dòng)終端用戶體驗(yàn)到近似PC端的3D場(chǎng)景交互。方法的核心思想是:
1)將渲染工作轉(zhuǎn)移到具有大規(guī)模渲染計(jì)算能力的云渲染集群避開移動(dòng)設(shè)備的性能缺陷;
2)移動(dòng)設(shè)備通過指令的方式與云渲染集群進(jìn)行溝通,并通過接收渲染圖片來展示3D場(chǎng)景,這種采用離散的渲染圖片逼近3D場(chǎng)景瀏覽的方式選取了通信代價(jià)和用戶體驗(yàn)的平衡點(diǎn),在盡可能實(shí)現(xiàn)近似于PC端3D場(chǎng)景交互的用戶體驗(yàn)的同時(shí)避開網(wǎng)絡(luò)傳輸速度的限制;
3)用圖片的方式來展示3D場(chǎng)景有助于擺脫第三方插件的依賴,因?yàn)橐苿?dòng)設(shè)備本身自帶的瀏覽器即可完成此工作;
4)通過異構(gòu)場(chǎng)景素材資源管理器提供對(duì)渲染場(chǎng)景所需的資源,屏蔽了用戶直接接觸這些復(fù)雜且較大的資源文件。
通過以上幾個(gè)關(guān)鍵設(shè)計(jì)思想實(shí)現(xiàn)的渲染架構(gòu),實(shí)現(xiàn)了移動(dòng)終端設(shè)備上通過瀏覽器作為訪問平臺(tái),跟PC端近似的對(duì)遠(yuǎn)程3D虛擬場(chǎng)景的交互訪問體驗(yàn)。總體實(shí)現(xiàn)了移動(dòng)終端設(shè)備用戶實(shí)時(shí)交互訪問遠(yuǎn)程3D場(chǎng)景的一種方法。
如圖1所示,本發(fā)明方法在用戶訪問系統(tǒng)的入口處通過負(fù)載均衡服務(wù)器對(duì)用戶的訪問請(qǐng)求任務(wù)進(jìn)行分流,并將用戶的需求以等效指令流的方式發(fā)送給云服務(wù)端,云服務(wù)端接到用戶的指令流后,在云端完成用戶全部的交互操作,并將交互過程進(jìn)行高質(zhì)量的實(shí)時(shí)渲染并以圖片的形式發(fā)送給移動(dòng)終端用戶。本發(fā)明方法以用戶只發(fā)送指令和相關(guān)的操作,由云服務(wù)端實(shí)際完成用戶操作過程并將這個(gè)過程以實(shí)時(shí)連續(xù)幀的方式傳送給移動(dòng)終端用戶。對(duì)于用戶來說,體驗(yàn)到的只是最自然最真實(shí)的本地場(chǎng)景的交互操作,實(shí)際是對(duì)云端計(jì)算完結(jié)果的渲染圖片的虛擬化操作,本發(fā)明提供的渲染交互框架屏蔽了這個(gè)過程,最終提供給用戶逼真的、遠(yuǎn)程沉浸式的交互方式。
如圖2所示,渲染交互框架包括三層,自上而下依次為通信層、渲染層和資源管理層。
下面結(jié)合圖1和圖2來說明本發(fā)明的基于云的移動(dòng)終端用戶實(shí)時(shí)訪問遠(yuǎn)程3D場(chǎng)景的渲染交互方法。
步驟1,在通信層建立移動(dòng)終端與云渲染集群的通信通道。
通信層內(nèi)設(shè)置有負(fù)載均衡服務(wù)器,通過負(fù)載均衡服務(wù)器對(duì)移動(dòng)終端用戶的訪問請(qǐng)求進(jìn)行分流,將用戶的訪問請(qǐng)求、訪問路徑和操作進(jìn)行緩存,將用戶的訪問請(qǐng)求分流發(fā)送給不同的服務(wù)器鏡像區(qū),也就是圖1所示的渲染任務(wù)調(diào)度層,由其內(nèi)的任務(wù)調(diào)度服務(wù)器讀取渲染服務(wù)器信息管理程序,將用戶的訪問請(qǐng)求傳輸給渲染服務(wù)器。渲染服務(wù)器也就是渲染機(jī)。如圖1所示,在進(jìn)行渲染前,需要根據(jù)用戶的訪問請(qǐng)求進(jìn)行渲染有效性檢查。
考慮到當(dāng)前移動(dòng)終端的硬件配置、存儲(chǔ)限制和當(dāng)前前沿技術(shù)不能解決移動(dòng)終端漫游、交互訪問遠(yuǎn)程3D場(chǎng)景的技術(shù)瓶頸限制,本發(fā)明將場(chǎng)景的渲染處理過程轉(zhuǎn)移到云渲染集群進(jìn)行處理,因此需要通過通信層建立移動(dòng)終端與云渲染集群的通信通道。具體來說是將移動(dòng)終端用戶的訪問請(qǐng)求進(jìn)行負(fù)載均衡,將這些請(qǐng)求分配到不同的服務(wù)器鏡像區(qū)域以保證云端服務(wù)器的壓力均衡。另一方面每個(gè)鏡像區(qū)域內(nèi)部都維持著一個(gè)獨(dú)立的云渲染服務(wù)器集群,即圖2中所示的云渲染集群,該集群由鏡像區(qū)域內(nèi)唯一存在的任務(wù)調(diào)度服務(wù)器統(tǒng)一管理,當(dāng)收到用戶的操作請(qǐng)求后,任務(wù)調(diào)度服務(wù)器會(huì)將其轉(zhuǎn)化為渲染機(jī)可識(shí)別的操作指令,再根據(jù)渲染集群中各渲染機(jī)的占用率和之前的用戶訪問緩存決定目標(biāo)渲染機(jī)。在通過負(fù)載均衡服務(wù)器和任務(wù)調(diào)度服務(wù)器的分配以后,渲染層即可對(duì)用戶虛擬場(chǎng)景進(jìn)行渲染,由渲染層上的渲染服務(wù)器完成用戶的交互,并將交互過程以渲染的高質(zhì)量圖片的方式存入數(shù)據(jù)庫緩存池,并進(jìn)行渲染的有效性檢測(cè),最終發(fā)送給移動(dòng)終端最終呈現(xiàn)給用戶。
步驟2,渲染層中的渲染服務(wù)器,向資源管理層請(qǐng)求資源文件,構(gòu)造虛擬場(chǎng)景,根據(jù)操作指令調(diào)整虛擬場(chǎng)景中的攝像頭進(jìn)行渲染。
渲染層包含了許多臺(tái)渲染服務(wù)器,它們根據(jù)服務(wù)器鏡像區(qū)域數(shù)量被均勻劃分歸屬,由所屬服務(wù)器鏡像區(qū)域的任務(wù)調(diào)度服務(wù)器統(tǒng)一管理。渲染層的主要功能是動(dòng)態(tài)地管理用戶的虛擬場(chǎng)景并解析運(yùn)行用戶的操作指令,這些指令包含了交互操作、渲染場(chǎng)景等功能。每一臺(tái)渲染機(jī)都會(huì)運(yùn)行一定數(shù)量的渲染進(jìn)程,每一個(gè)進(jìn)程都包含了一個(gè)場(chǎng)景,該場(chǎng)景被這個(gè)渲染進(jìn)程上的虛擬場(chǎng)景共享,也就是說場(chǎng)景被劃分成多個(gè)場(chǎng)景單元,每個(gè)場(chǎng)景單元對(duì)應(yīng)著一個(gè)用戶的虛擬場(chǎng)景。用戶訪問時(shí),將加載用戶虛擬場(chǎng)景配置信息,根據(jù)用戶虛擬場(chǎng)景配置信息從異構(gòu)場(chǎng)景素材資源管理層中獲取所需要的場(chǎng)景素材。通過這樣的方式就把大規(guī)模的計(jì)算集中到了高性能的云渲染集群來完成,在移動(dòng)終端只發(fā)送指令和接收?qǐng)D片,這種充分利用云渲染集群高計(jì)算能力的方法減小了移動(dòng)終端計(jì)算負(fù)荷和對(duì)軟硬件兼容性的依賴,有效的提高了移動(dòng)終端用戶與遠(yuǎn)程3D場(chǎng)景交互的用戶體驗(yàn)。
本發(fā)明采用云渲染服務(wù)器來完成移動(dòng)終端用戶的訪問請(qǐng)求,由云服務(wù)器運(yùn)行U3D.EXE可執(zhí)行程序,每個(gè)U3D.EXE可通過外部用戶操作指令啟動(dòng)1個(gè)線程,生成1個(gè)獨(dú)立的用戶虛擬場(chǎng)景單元,同時(shí)在用戶虛擬場(chǎng)景單元內(nèi)生成一個(gè)攝像頭、指令收發(fā)器以及其他的各功能模塊。用戶虛擬場(chǎng)景單元通過Socket套接字與任務(wù)調(diào)度服務(wù)器進(jìn)行通信,當(dāng)有用戶需要訪問時(shí)任務(wù)調(diào)度服務(wù)器便通過Socket啟動(dòng)一個(gè)U3D.EXE程序并傳遞用戶操作指令,并開始工作。
用戶虛擬場(chǎng)景單元中各功能模塊如圖3所示,包括數(shù)據(jù)庫交互模塊、鏡頭捕捉模塊、Debug(調(diào)試)模塊、動(dòng)態(tài)加載場(chǎng)景模塊、服務(wù)器信息管理模塊、程序配置庫、基礎(chǔ)類庫/外部DLL庫(動(dòng)態(tài)鏈接庫)、AssetsBundle加載/同步/管理模塊以及U3D指令收發(fā)服務(wù)器。
鏡頭捕捉模塊就是生成的攝像頭,這個(gè)虛擬場(chǎng)景內(nèi)部的攝像頭在功能上等效于當(dāng)前用戶自己的眼睛,用戶可通過自己生成的攝像頭觀看到自己在虛擬場(chǎng)景內(nèi)的一切交互操作;U3D指令收發(fā)服務(wù)器在接收到用戶的指令后觸發(fā)其它模塊完成交互操作,如:進(jìn)行各方向上的漫游、旋轉(zhuǎn)等操作,并把這個(gè)交互操作過程以連續(xù)間隔的渲染幀的形式發(fā)給移動(dòng)終端用戶,這樣就把大規(guī)模的計(jì)算集中到了高性能分布式的云服務(wù)端來完成,在移動(dòng)終端只發(fā)送指令和接受圖片,這種最大程度利用服務(wù)器的高計(jì)算性能并最大程度地減小移動(dòng)終端的計(jì)算負(fù)荷的方式,極大地提高了移動(dòng)終端用戶與遠(yuǎn)程3D場(chǎng)景的交互效率。
進(jìn)一步的,本發(fā)明由基于Socket套接字通信連接、松耦合的3層架構(gòu)實(shí)現(xiàn)。最頂層是通信層,這一層主要是由負(fù)載均衡服務(wù)器對(duì)用戶的訪問進(jìn)行分流,保存用戶路徑,保存用戶交互文件數(shù)據(jù),啟動(dòng)一個(gè)線程將用戶的訪問請(qǐng)求發(fā)送給分布式任務(wù)調(diào)度模塊,由分布式任務(wù)調(diào)度模塊讀取渲染機(jī)性能監(jiān)測(cè)程序,將用戶的訪問請(qǐng)求分配給負(fù)荷較小的渲染集群。圖3所示的模型中,分布式任務(wù)調(diào)度模塊對(duì)應(yīng)各任務(wù)調(diào)度服務(wù)器,U3D渲染服務(wù)器即云渲染機(jī)。對(duì)不同的用戶,由渲染層提供不同的交互策略,在接到移動(dòng)終端用戶對(duì)場(chǎng)景的訪問請(qǐng)求后,渲染層將用戶的訪問請(qǐng)求再分配給負(fù)荷較小的U3D渲染服務(wù)器,在較空閑的渲染預(yù)設(shè)區(qū)啟動(dòng)一個(gè)U3D.EXE并生成一個(gè)用戶基本場(chǎng)景,以及攝像頭,渲染機(jī)等模塊,由U3D指令收發(fā)服務(wù)器接收用戶的交互操作指令并調(diào)用其他模塊完成用戶指令包含的全部操作,并將這個(gè)操作過程以連續(xù)渲染幀圖片的方式發(fā)送給終端用戶。
本發(fā)明首次最大限度地對(duì)云服務(wù)器和移動(dòng)終端的處理任務(wù)進(jìn)行了合理分配,將繁瑣復(fù)雜的高運(yùn)算部分交給具有強(qiáng)大運(yùn)算能力的云服務(wù)器,移動(dòng)終端以只發(fā)送指令集和接受圖片的方式實(shí)現(xiàn)了對(duì)遠(yuǎn)程3D場(chǎng)景的實(shí)時(shí)交互訪問;并且,本發(fā)明方法對(duì)用戶虛擬場(chǎng)景的設(shè)計(jì)由U3D指令收發(fā)服務(wù)器調(diào)用其他模塊實(shí)現(xiàn),對(duì)內(nèi)部資源采用占用資源較小的動(dòng)態(tài)調(diào)度,實(shí)時(shí)加載的方式,如對(duì)3維模型、貼圖、紋理、燈光等資源的基本加載、交互過程中動(dòng)態(tài)實(shí)時(shí)加載等。
步驟3,最底層是資源管理層,包括文件服務(wù)器和異構(gòu)場(chǎng)景素材資源管理器等,管理場(chǎng)景的數(shù)據(jù)資源,渲染機(jī)可以從本層更新資源文件,并將用戶的交互結(jié)果寫回配置文件。資源管理層管理渲染所需的各種資源文件,向渲染機(jī)提供異構(gòu)資源調(diào)度管理服務(wù),通過異步資源下載、異步資源解包和委托方法確保資源調(diào)度和處理的性能。
由于渲染層使用的場(chǎng)景素材是通用的,因此將場(chǎng)景素材進(jìn)行統(tǒng)一管理對(duì)于整個(gè)系統(tǒng)來說意義很重要。場(chǎng)景素材的獨(dú)立方便了系統(tǒng)之后的變更,減輕了渲染層的存儲(chǔ)壓力,渲染層通過異構(gòu)場(chǎng)景素材資源管理器提供的接口便可以獲取素材。另外,異構(gòu)場(chǎng)景素材資源管理層采用了松耦合、中間件的設(shè)計(jì)理念,確保了該系統(tǒng)底層數(shù)據(jù)操作過程的穩(wěn)定性、可拓展性。具體來說,異構(gòu)場(chǎng)景素材資源管理層由文件服務(wù)器和異構(gòu)場(chǎng)景素材資源管理器組成,文件服務(wù)器提供了相關(guān)場(chǎng)景素材的存儲(chǔ),資源管理器用于屏蔽文件服務(wù)器中的資源存儲(chǔ)和素材類別,渲染層通過訪問資源管理器的接口就能夠獲取所需的資源。并且,考慮到數(shù)據(jù)交互過程可能帶來的系統(tǒng)性能下降,該層設(shè)計(jì)采用了異步下載、異步解壓和委托回調(diào)的設(shè)計(jì)機(jī)制,保證了渲染層的資源請(qǐng)求過程與渲染層的主循環(huán)并行運(yùn)行。
本發(fā)明中,用戶通過指令啟動(dòng)自己場(chǎng)景單元只是根據(jù)基本的場(chǎng)景配置文件信息創(chuàng)建一個(gè)基本的場(chǎng)景,這個(gè)配置文件是記錄了場(chǎng)景中基本物品的位置、旋轉(zhuǎn)角度和朝向信息的文件。同時(shí)在這個(gè)基本的虛擬場(chǎng)景內(nèi)部會(huì)生成一個(gè)指令收發(fā)器,用戶在移動(dòng)終端設(shè)備的外部虛擬的操作等效地傳遞到用戶虛擬場(chǎng)景單元內(nèi)部的指令收發(fā)器,由指令收發(fā)器觸發(fā)相關(guān)模塊進(jìn)行場(chǎng)景內(nèi)的進(jìn)一步操作,如:調(diào)用資源服務(wù)器進(jìn)行加載模型資源,調(diào)用文件路徑數(shù)據(jù)庫加載紋理、貼圖、聲音、動(dòng)畫等資源。
本發(fā)明方法還采用了如下的調(diào)度策略來提高效率:
(1)有效渲染幀的復(fù)用。在攝像頭屬性沒有發(fā)生變化,場(chǎng)景沒有修改的時(shí)候,即時(shí)將數(shù)據(jù)庫中經(jīng)過有效性檢測(cè)和加入標(biāo)志位的云端渲染結(jié)果發(fā)送給移動(dòng)終端用戶,實(shí)現(xiàn)了結(jié)果的高效復(fù)用。
(2)根據(jù)云服務(wù)端的使用頻率,將場(chǎng)景中的大規(guī)模渲染放在服務(wù)器使用率低的時(shí)候進(jìn)行集中渲染,減少使用高峰期用戶的等待時(shí)間,提高用戶的真實(shí)體驗(yàn)。
(3)云端渲染服務(wù)器與資源管理層之間采用異步下載、異步加載和定期回寫的方式進(jìn)行資源下載。本發(fā)明采用AssetBundle將場(chǎng)景中模型GameObject對(duì)應(yīng)的預(yù)設(shè)體Prefeb進(jìn)行打包,這樣在用戶下載到的資源中帶有資源的一切屬性,包括移動(dòng)、旋轉(zhuǎn)等,同時(shí)利用AssetBundle將界面、模型、材質(zhì)、聲音、音效等內(nèi)容分開打包的方式解決了一次更新所需要下載資源的問題,以提高渲染效率,減少?gòu)馁Y源服務(wù)器請(qǐng)求資源的次數(shù),在渲染服務(wù)器本地采用AssetBundle完成資源的加載。移動(dòng)終端用戶是在云服務(wù)端完成交互的,為了減少渲染服務(wù)器與文件服務(wù)器產(chǎn)生的通信延遲,本發(fā)明專利采用Thread和WWW來實(shí)現(xiàn)異步資源下載的方式,當(dāng)渲染服務(wù)器檢測(cè)到文件服務(wù)器資源有更新時(shí)進(jìn)行更新下載操作,以便渲染服務(wù)器在需要資源時(shí)就能從渲染服務(wù)器本地申請(qǐng)到資源,在渲染服務(wù)器本地采用按需加載的異步加載方式,并定期將結(jié)果寫回到配置文件。