国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于云繪制技術(shù)的VR移動端全景展現(xiàn)研究

2017-12-14 03:38:57
福建質(zhì)量管理 2017年22期
關(guān)鍵詞:服務(wù)端全景隊列

(1.國防科技大學(xué)信息系統(tǒng)與管理學(xué)院控制科學(xué)與工程學(xué)科 湖南 長沙 410073; 2.國防科技大學(xué)信息系統(tǒng)與管理學(xué)院軍信系 湖南 長沙 410073)

基于云繪制技術(shù)的VR移動端全景展現(xiàn)研究

胡少雄1蔣杰2

(1.國防科技大學(xué)信息系統(tǒng)與管理學(xué)院控制科學(xué)與工程學(xué)科湖南長沙410073; 2.國防科技大學(xué)信息系統(tǒng)與管理學(xué)院軍信系湖南長沙410073)

隨著虛擬現(xiàn)實技術(shù)的發(fā)展,面向手機(jī)、頭盔等用戶移動終端設(shè)備的VR技術(shù)漸漸步入到人們的生活當(dāng)中,廣泛應(yīng)用在教學(xué)、訓(xùn)練、醫(yī)學(xué)以及工程設(shè)計等各個領(lǐng)域。目前廣泛使用的Oculus、HTC ViVi等VR頭盔都需要連接數(shù)據(jù)線,對于用戶來說是一個累贅,降低了用戶體驗,而面向手機(jī)、無線頭盔等終端的VR設(shè)備更加方便,是未來的發(fā)展趨勢,然而移動端的設(shè)備性能限制著處理更加復(fù)雜的場景情況,因此,本文采用面向VR移動端的云繪制渲染框架,將全景圖像傳送給移動端進(jìn)行展現(xiàn),不僅能解決移動端性能不足問題,同時實時性和幀率較好,能滿足用戶的大部分需求。

三維虛擬場景;云繪制框架;VR移動端

引言

隨著虛擬現(xiàn)實、增強(qiáng)現(xiàn)實和實時渲染技術(shù)的快速發(fā)展,面向移動終端的VR/AR頭盔能夠提供移動式、交互式的場景模型渲染,具有良好的發(fā)展前景。實時渲染較高的計算復(fù)雜度與較大的數(shù)據(jù)處理規(guī)模,影響了面向移動終端的三維展示渲染質(zhì)量和實時性。為此本文建立面向服務(wù)端與移動終端的云繪制渲染模型,設(shè)計了面向移動終端的渲染任務(wù)分布方法,利用基于RabbitMQ消息隊列的任務(wù)分布調(diào)度加速三維模型的實時渲染處理,并采集全息圖像傳送給移動端進(jìn)行展現(xiàn)。本文主要研究以現(xiàn)有分布式渲染方法為基礎(chǔ),合理調(diào)度渲染節(jié)點的任務(wù)分布問題,提高渲染速度;將虛擬三維場景的全景圖像捕捉,提高渲染速度,生成高質(zhì)量的全景圖;將全景圖像還原成三維虛擬場景,減少了信息的丟失,提高場景的真實感。

一、云繪制框架相關(guān)研究

云繪制實質(zhì)也是分布式并行繪制技術(shù)的一種實現(xiàn)形式,云計算繪制模式是在傳統(tǒng)渲染農(nóng)場的基礎(chǔ)上,將復(fù)雜耗時的場景繪制問題放在云環(huán)境中來完成的圖形處理方式。

Miao等[1]提出了一種針對移動端的基于自由視點視頻的云繪制協(xié)同框架。在該框架中,在確定視點時使用云渲染方式,可以獲得高質(zhì)量的渲染效果,而在選擇視點時使用本地渲染方式,以降低交互延遲。Wang等[2]提出了一種自適應(yīng)渲染方式,其比特率隨著動態(tài)渲染參數(shù)的變化而進(jìn)行自適應(yīng)調(diào)整。Chua等[3]提出了一種面向移動云游戲的分層編碼方法。游戲圖像幀被分為基礎(chǔ)層和增強(qiáng)層,在客戶端渲染基礎(chǔ)層的圖像,而云服務(wù)器上進(jìn)行增強(qiáng)層圖像和信息的編碼和傳輸。Eisert等[4]提出了一種在局域網(wǎng)中進(jìn)行遠(yuǎn)程游戲的圖形流框架。Huang等[5]提出了一個開源的云游戲系統(tǒng),提供云服務(wù)器渲染和發(fā)送流編碼的游戲幀給客戶端。Xiaoming Nan[6]等提出了一種新的協(xié)同渲染框架,該框架通過在遠(yuǎn)程渲染端內(nèi)置一個客戶端渲染模擬器,自適應(yīng)調(diào)整遠(yuǎn)程渲染和本地渲染。YaoLu等[7]提出了一種聯(lián)合非對稱圖像渲染和視頻編碼的方法(JAVRE),其左視圖和右視圖的渲染復(fù)雜度與編碼質(zhì)量都可能是非對稱的。首先,通過主觀和客觀的測試,開發(fā)兩個數(shù)學(xué)模型(用戶體驗?zāi)P秃鸵曨l比特率模型)。然后,提出了一個優(yōu)化算法,可以自動選擇視頻編碼設(shè)置和圖形渲染設(shè)置的左視圖和右視圖,在給定的網(wǎng)絡(luò)條件下以確保最佳的用戶體驗。

二、基于云繪制的全景展現(xiàn)總體框架

在服務(wù)端的虛擬三維場景中,本文采用任務(wù)分布繪制的方法進(jìn)行場景渲染,運用rabbitmq消息隊列的方法實現(xiàn)任務(wù)的調(diào)度,提高渲染的速度。采用360度全景攝像機(jī)來采集(已經(jīng)渲染好的虛景)全景圖像視頻,通過socket網(wǎng)絡(luò)將采集的全景圖像傳送給客戶端,從而移動端實現(xiàn)虛景的全景展現(xiàn)。當(dāng)移動端場景用戶移動到另一地點時,綁定移動端虛擬場景攝像機(jī)與服務(wù)端虛擬場景攝像機(jī),使移動端場景與服務(wù)端場景同步,將變換的場景依然變成全景圖像傳送給移動端。同時,移動端VR在場景中設(shè)置一些標(biāo)簽,當(dāng)某個帶標(biāo)簽的物體需要改變或置換時,通過將控制標(biāo)簽的指令傳給服務(wù)端,在服務(wù)端的虛擬場景中將其進(jìn)行物體改變或置換,并生成全景圖像傳送給移動端。

圖1 基于云繪制的全景展現(xiàn)總體框架

(一)虛擬場景的全景圖像采集

對于全景展現(xiàn),一般是采用全景相機(jī)拍攝制作成全景圖像,再將全景圖像進(jìn)行全景展現(xiàn)。本文主要針對虛景的全景展現(xiàn),這是采用全景相機(jī)無法拍攝的,只能通過在虛擬場景中進(jìn)行全景圖像捕捉,進(jìn)而獲取全景圖像并進(jìn)行全景展現(xiàn)。

在一些游戲引擎中(如UE4、unity 3D等),直接從游戲中截取視頻幀不難辦到。然而,在獲取游戲視頻幀時,往往占用很大的計算資源,對整個場景的繪制渲染將會有影響。對于開發(fā)VR內(nèi)容并希望提供良好用戶體驗的人們來說,保持良好的性能是關(guān)鍵所在,也是在進(jìn)行全景展現(xiàn)時幀率的保證。在場景中使用全息攝像機(jī),捕捉360度的全息圖像,并將其進(jìn)行存儲。

在場景中捕捉幀緩沖區(qū)需要獲取整個當(dāng)前場景的360°的全景信息,并將其轉(zhuǎn)化為全景圖像,之后復(fù)制像素很容易,但這種做法在VR體驗中不可行,該過程運行慢的基本原因如下:

GetPixels()阻塞直到 ReadPixels()完成刷新GPU時,ReadPixels()阻塞每次調(diào)用GetPixels()都會分配一個新數(shù)組,垃圾回收器導(dǎo)致卡頓。在ReadPixels()和GetPixels()之間設(shè)置一幀的延遲就可以避免第一個問題,任何類型的傳輸都將在需要訪問這些值之前完成。

當(dāng)向GPU發(fā)出命令/繪制調(diào)用時,這些命令會被批處理到驅(qū)動程序中的批量命令緩沖區(qū)中?!八⑿翯PU”意味著等待當(dāng)前命令緩沖區(qū)中的所有命令執(zhí)行。CPU和GPU可以并行運行,但在GPU刷新時,CPU會保持空閑狀態(tài)并等待GPU空閑,這就是它被稱作“同步點”的原因,比較麻煩的是ReadPixels()會導(dǎo)致GPU刷新。

如果每幀執(zhí)行垃圾回收會產(chǎn)生重大消耗(例如尋找根節(jié)點等),這不僅僅關(guān)乎于垃圾大小,還與分配的內(nèi)存有關(guān)。實際上垃圾回收是線程安全的,但渲染線程分配任何內(nèi)存,都會再次阻塞。Unity引擎是唯一需要分配內(nèi)存的一方,目前不足的地方就是垃圾回收的消耗。

(二)全景圖像合成三維場景及標(biāo)簽使用

在移動端的虛擬場景中設(shè)置一些對象的標(biāo)簽,當(dāng)用戶操作這些帶標(biāo)簽的對象時,將會把操作指令傳回服務(wù)端,在服務(wù)端的場景對該對象進(jìn)行相應(yīng)的操作,并同時生成全息圖像傳送回來。

在設(shè)置標(biāo)簽時,需要將標(biāo)簽添加到場景中相應(yīng)的對象中,當(dāng)移動端場景變化時,服務(wù)端的場景也進(jìn)行了相應(yīng)的變化。在生成全景圖像時,添加了圖像中一些對象的標(biāo)簽,且存儲了標(biāo)簽對象在虛景中的坐標(biāo),當(dāng)移動端對標(biāo)簽對象進(jìn)行置換、移動或其他控制指令時,指令會傳回服務(wù)端,該標(biāo)簽對象在服務(wù)端的虛景中將會做出置換、移動等相應(yīng)的操作,完成這些操作后,服務(wù)端會再次渲染虛景場景,生成全景圖像傳給移動端進(jìn)行全景展現(xiàn)。

(三)移動端與服務(wù)端的場景同步

為保證移動端和服務(wù)端的實時性,需要提高移動端全景展現(xiàn)的幀率,著重從兩個方面進(jìn)行了優(yōu)化:(1)采用基于消息隊列的繪制任務(wù)調(diào)度,加快了渲染速度,從而降低了反應(yīng)時間。(2)對采集的全景圖像進(jìn)行了壓縮解壓,降低數(shù)據(jù)傳輸量。

三、基于RabbitMQ消息隊列的繪制任務(wù)調(diào)度

(一)RabbitMQ消息隊列

RabbitMQ是一款基于AMQP(消息隊列協(xié)議),由Erlang開發(fā)的開源消息隊列組件,由兩部分組成:服務(wù)端和客戶端,客戶端支持多種語言的驅(qū)動,如:.Net、JAVA、Erlang等。

圖2 RabbitMQ結(jié)構(gòu)示意圖

RabbitMQ中間件分為服務(wù)端(RabbitMQ Server)和客戶端(RabbitMQ Client),服務(wù)端可以理解為是一個消息的代理消費者,客戶端又分為消息生產(chǎn)者(Producer)和消息消費者(Consumer)[8]。消息生產(chǎn)者(Producer):主要生產(chǎn)消息并將消息基于TCP協(xié)議,通過建立Connection和Channel,將消息傳輸給RabbitMQ Server,對于Producer而言基本就完成了工作。服務(wù)端(RabbitMQ Server):主要負(fù)責(zé)處理消息路由、分發(fā)、入隊列、緩存和出列,主要由三部分組成:Exchange、RoutingKey、Queue。消息消費者(Consumer):主要負(fù)責(zé)消費Queue的消息,同樣基于TCP協(xié)議,通過建立Connection和Channel與Queue傳輸消息,一個消息可以發(fā)送給多個Consumer消費。

(二)基于RabbitMQ消息隊列的繪制任務(wù)調(diào)度

繪制任務(wù)流水線分為幾何處理和光柵化兩部分[9],在幾何處理階段中,主要分為命令處理、幾何變換、光照處理、投影變換、裁剪處理與視窗映射等處理過程。光柵化處理就是把頂點數(shù)據(jù)轉(zhuǎn)換為片元的過程,片元中的每一個元素對應(yīng)于幀緩沖區(qū)中的一個像素,光柵化處理將幾何處理階段產(chǎn)生的幾何圖元變?yōu)槎S圖像。

在云繪制環(huán)境下,將用戶的繪制作業(yè)分割成若干個相應(yīng)的繪制子任務(wù),其中每個繪制子任務(wù)都保留了原本父繪制作業(yè)的參數(shù)信息,因此,用戶所提交的繪制作業(yè)在實際處理時還有繪制子任務(wù),對這批具有相同父作業(yè)的子任務(wù)進(jìn)行分布式并行繪制,然后將繪制結(jié)果進(jìn)行圖像合成處理得到最終場景。云繪制正是通過一個分割與合成的處理達(dá)到大規(guī)模場景的快速繪制效果。由于存在這個分割—執(zhí)行—合成的流程,則在某個作業(yè)最后的圖像合成時,需要等到這批子任務(wù)全部執(zhí)行完才能進(jìn)行合成處理,即只有在這個批次的各個繪制子任務(wù)的全部完成才表示整個作業(yè)繪制的結(jié)束,而在這些子任務(wù)的執(zhí)行過程中,用時最長、完成時間晚的子任務(wù)將對整個作業(yè)的繪制時間起到?jīng)Q定性作用[10]。因此,在一些實時繪制或者對時間要求比較高的情況下,任務(wù)的調(diào)度不僅要滿足大多數(shù)任務(wù)的執(zhí)行時間最短,而且要保證子任務(wù)中執(zhí)行用時最長的任務(wù)盡可能快的被完成,將某批次作業(yè)中完成最晚,所需執(zhí)行時間最多的任務(wù)稱為本次作業(yè)的關(guān)鍵任務(wù),如圖2所示:

圖3 基于rabbitmq消息隊列的繪制任務(wù)調(diào)度

圖3中,關(guān)鍵任務(wù)的完成時間就是t4。采用rabbitmq對繪制任務(wù)進(jìn)行調(diào)度分配,可以實現(xiàn)在集群之間進(jìn)行集群繪制,加快了渲染速度,分布利用了集群之間的資源,能實現(xiàn)對大規(guī)模場景的渲染。

四、結(jié)語及展望

本文針對VR移動端難以負(fù)載大規(guī)模場景的渲染問題,研究面向移動端的云繪制全景展現(xiàn),采用服務(wù)端渲染場景,采集場景全景圖像信息并進(jìn)行全景展現(xiàn),同時針對大規(guī)模場景中繪制任務(wù)的數(shù)據(jù)量大、計算復(fù)雜以及耗時等問題,研究了基于RabbitMQ消息隊列的渲染任務(wù)的分布調(diào)度,并在集群分布式并行繪制中得到實現(xiàn)與應(yīng)用。

目前的VR頭盔通常需要與電腦連接數(shù)據(jù)線,限制了用戶使用VR頭盔的活動范圍,而面向VR移動端的虛擬場景全景展現(xiàn),能解決這一不足,擺脫數(shù)據(jù)線的困擾,同時面向VR移動端的全景展現(xiàn)可以在旅游業(yè)、房源觀看、城市導(dǎo)航等許多方面能得到較好的應(yīng)用。

根據(jù)目前研究工作的分析,下一步主要工作可以在以下幾個方面進(jìn)行深入的研究:

(1)場景繪制更深層次的研究。云繪制所面臨的是圖形繪制問題,為了實現(xiàn)更好的分布式并行繪制目的,需要對場景的分割算法作進(jìn)一步的研究,對各個繪制任務(wù)之間的依賴關(guān)系進(jìn)行合理的處理。且繪制任務(wù)調(diào)度算法需進(jìn)一步實驗,改進(jìn)分布集群渲染算法,提高渲染速度。

(2)對場景的改變及時作出反應(yīng)。當(dāng)移動端控制場景變化時,服務(wù)端能快速得到這一指令并作出反應(yīng),在提高渲染算法速度時,能有效減少反應(yīng)延遲,讓用戶感覺不到停頓感或切換,保證全景展現(xiàn)的幀率。

(3)添加一定范圍的全景展現(xiàn)移動路徑。

全景展現(xiàn)一般是定點的,可以生成一定范圍內(nèi)的移動路徑的全景圖像,從而可以在一定范圍內(nèi)進(jìn)行全景展現(xiàn),而不僅僅是定點展現(xiàn)。

[1]D.Miao,W.Zhu,C.Luo,and C.Chen,“Resource allocation for cloudbased free viewpoint video rendering for mobile phones,” in Proc.of ACM MM,2011,pp.1237-1240.

[2]S.Wang and S.Dey,“Adaptive mobile cloud computing to enable rich mobile multimedia applications,” IEEE TMM,vol.15,no.4,pp.870- 883,2013.

[3]S.-P.Chuah and N.-M.Cheung,“Layered coding for mobile cloud gaming,” in Proc.of ACM MMVE,2014,pp.1-6.

[4]P.Eisert and P.Fechteler,“Low delay streaming of computer graphics,” in Image Processing,2008.ICIP 2008.15th IEEE International Conference on.IEEE,2008,pp.2704-2707.

[5]C.-Y.Huang,C.-H.Hsu,Y.-C.Chang,and K.-T.Chen,“Gaminganywhere:an open cloud gaming system,” in Proc.of ACM MMSys,2013,pp.36-47.

[6]Xiaoming Nan,Yifeng He,Ling Guan,Delay-rate-distortion Optimization for Cloud-based Collaborative Rendering,Department of Electrical and Computer Engineering Ryerson University,Toronto,Ontario,Canada

[7]Yao Lu,Student Member,IEEE,and Sujit Dey,JAVRE:A Joint Asymmetric Video Rendering and Encoding Approach to Enable Optimized Cloud Mobile 3D Virtual Immersive User Experience,Fellow,IEEE

[8]彭浩宇.基于PC集群機(jī)的并行圖形繪制系統(tǒng)研究[D].浙江大學(xué),2006.

[9]李松.開源云計算平臺管理支撐平臺的研究與實現(xiàn)[D].山東大學(xué),2013.

[10]常運啟.云繪制環(huán)境下實時動態(tài)任務(wù)調(diào)度算法研究[D].浙江工商大學(xué),2015

胡少雄(1993.1-),男,漢族,湖南常寧人,碩士研究生在讀,本科,國防科技大學(xué)信息系統(tǒng)與管理學(xué)院,研究方向多媒體與虛擬現(xiàn)實。

猜你喜歡
服務(wù)端全景隊列
戴上耳機(jī),享受全景聲 JVC EXOFIELD XP-EXT1
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
在隊列里
全景敞視主義與偵探小說中的“看”
云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
在Windows Server 2008上創(chuàng)建應(yīng)用
豐田加速駛?cè)胱詣玉{駛隊列
從5.1到全景聲就這么簡單 FOCAL SIB EVO DOLBY ATMOS
河北省| 井陉县| 马边| 固安县| 农安县| 福贡县| 常宁市| 观塘区| 平塘县| 台安县| 高要市| 彭阳县| 方山县| 东宁县| 合阳县| 朝阳区| 建昌县| 上杭县| 利津县| 淳安县| 依兰县| 固安县| 霸州市| 八宿县| 营山县| 驻马店市| 桐庐县| 丁青县| 县级市| 偃师市| 和田县| 盐山县| 邓州市| 比如县| 东丰县| 炎陵县| 汉源县| 丹凤县| 色达县| 阳江市| 双牌县|