?

一種場景內容分布的交互式渲染系統

2019-03-02 01:58柳有權張彩榮陳彥云
圖學學報 2019年1期
關鍵詞:客戶端分布式節點

孫 昭,柳有權,張彩榮,石 劍,陳彥云

?

一種場景內容分布的交互式渲染系統

孫 昭1,柳有權1,張彩榮1,石 劍2,陳彥云3

(1. 長安大學信息工程學院,陜西 西安 710064; 2. 中國科學院自動化研究所模式識別國家重點實驗室,北京 100190; 3. 中國科學院軟件研究所計算機科學國家重點實驗室,北京 100190)

近年來,三維虛擬場景的規模和復雜程度不斷提高,受到硬件的限制,一些應用中的超大規模場景(如建筑群,城市等)很難在單機上進行渲染或滿足可交互的需求。針對該問題,提出了一種分布式渲染框架,將大規模場景在內容上進行劃分,得到單一節點可渲染的子場景。這些子場景被分布到集群中不同的渲染節點進行處理,其渲染結果根據深度信息進行合成得到整個場景的最終渲染結果。為了降低交互響應時間,需對子場景的渲染結果進行壓縮傳輸。實驗充分驗證了提出的分布式渲染系統能夠高效處理超大規模場景的渲染和交互,并且具有良好的可擴展性,能夠滿足很多領域中對大規模場景交互式渲染的需求。

渲染;分布式系統;場景分布;交互式

近年來,計算機輔助設計在制造、建筑、機械設計和軟件開發等行業得到了廣泛地應用,其模型對象通常具有規模大、精度高等特征。如,一套完整的建筑信息模型(building information modeling,BIM),通常包含多個建筑模型、鋼架結構模型、管線模型等,其中每個模型都包含復雜的幾何信息。由于需要處理龐大的幾何數據,所以對于此類場景的渲染是一個極具挑戰的問題。

由于渲染是一類計算密集型任務,針對大規模場景,目前主流的方法是對其進行簡化。通過模型簡化,可以得到“可渲染”的場景或提升場景的渲染效率,但是也會帶來一定的質量損失。此外,對于大規模場景超過內存限制的情況,也可以使用out-of-core渲染來進行處理。在離線渲染中,人們通常使用集群(渲染農場),通過增加計算資源來減少所需要的渲染時間,而該種集群渲染通常是基于幀或圖像區域進行任務劃分,單一渲染節點上仍然需要完整的場景內容數據。

如何提高渲染效率以滿足具體應用的交互需求是渲染大規模場景所面臨的主要挑戰。對此,本文提出了一種分布式渲染框架來處理大規模場景的渲染和交互。首先,需將大規模場景在內容上劃分為單一節點可渲染的子場景,并將其調度到渲染集群中的渲染節點上進行處理。子場景的渲染結果將發送到客戶端,并根據場景深度信息進行合成得到最終渲染結果。在整個過程中,客戶端產生的交互動作通過網絡消息通知渲染節點進行處理,更新渲染結果。在網絡帶寬的限制下,為了降低交互響應時間,可選擇一個高效的實時壓縮算法對渲染結果進行壓縮傳輸,實驗表明本文提出的分布式渲染系統能夠達到可交互的性能,可以滿足實際應用對大規模場景交互式渲染的需求。

1 相關工作

渲染可分為實時渲染和離線渲染。實時渲染是圖形數據的實時計算和輸出,主要應用于3D游戲和交互式的可視化等[1]。由于對響應時間有較高的要求,為了提升渲染性能,實時渲染在結果的真實感上會有所妥協。離線渲染針對動畫、電影等應用,通過長時間的大量計算來模擬光線的物理傳播以獲得較高真實感的圖像。近年來,實時渲染和離線渲染得到了不斷發展,而隨著硬件性能的不斷提升,實時渲染的真實感也得到了很大的進步。例如游戲畫面的分辨率和幀率越來越高(2048×1080,120 fps),效果也越來越真實。

大規模場景的渲染任務繁重且耗時長。針對大規模場景,LUEBKE[2]提出了一種幾何圖元刪減的方法,能夠在一定程度上降低場景的復雜程度。但是,該方法容易造成模型結構的形變。除此之外,一些基于圖像的處理算法[3-4],嘗試使用自適應分辨率紋理或使用圖像代替幾何圖元的方法來降低渲染的數據總量。但是與幾何圖元裁剪類似,此類渲染方法都是以犧牲視覺質量為代價來換取場景繪制效率的提升。本文所提出的系統不依賴于模型簡化,但是可以使用模型簡化對場景進行預處理來進一步提升效率。

分布式渲染是將圖像渲染分布到多臺計算機上進行處理的一種技術。MOLNAR等[5]提出了將分布式渲染架構按照排序發生的順序和位置分為Sort-First、Sort-Middle及Sort-Last 3類,并分析了各自的計算、傳輸性能以及優缺點。鄭利平等[6]針對地貌的渲染提出了基于Sort-Last的分布式渲染架構,其具有一定的靈活性和可擴展性,適合于更一般的渲染服務,如幾何體渲染。高官濤等[7]提出了一套基于Spark MapReduce的分布式渲染系統,能夠顯著提高渲染速度,減輕開發所需的工作量。隨著移動設備的快速發展,遠程渲染系統帶來了諸多便利,如CHEN等[8]提出了一種客戶端GPU加速的場景扭曲技術,將渲染任務分布到客戶端和服務端共同渲染,最終進行融合,可以大幅減少交互延遲并能提高用戶體驗。

針對大規模場景超過內存限制的情況,VARADHAN和MANOCHA[9]提出了out-of-core渲染技術,通過空間索引結構快速對所需的數據進行檢索,并通過調度算法實現顯存-內存、內存-外存之間的數據交換來進行渲染。SCHEIBLAUER和WIMMER[10]使用out-of-core來渲染大規模點云數據,并提出了點云選擇和交互編輯的算法。本文方法也可以使用out-of-core來渲染超過內存限制的大規模子場景。

2 分布式渲染系統

2.1 系統概述

本文提出的分布式渲染系統架構如圖1所示??蛻舳伺c渲染節點組成Master-Slave結構的分布式系統,渲染客戶端(Master)負責渲染節點、渲染任務和場景資源的管理,并處理最終渲染結果的合成、展示和用戶交互;渲染節點(Slave)持有渲染所需的場景數據并提供計算資源??蛻舳撕弯秩竟濣c之間通過網絡消息進行通信、傳遞任務、交互信息以及渲染中間結果。

圖1 分布式渲染系統架構

2.2 分布式渲染流程

本文所提出的分布式渲染系統在處理渲染任務時,整個流程分為以下步驟:

步驟1.系統初始化,客戶端與渲染節點建立1-to-N的網絡連接。

步驟2.用戶發起渲染請求,客戶端基于渲染任務中場景在渲染節點上的分布,進行子任務分配,并發送消息通知渲染節點。

步驟3.渲染節點接受到渲染任務后,根據內容加載對應的場景,并將結果發送給客戶端。

步驟4.客戶端在全部場景加載成功后通知渲染節點進行渲染;若場景加載失敗則通知用戶,并通知渲染節點釋放資源。

步驟5.渲染節點接到渲染指令后對場景進行渲染,將子場景的渲染結果(圖像及深度)發送給客戶端。

步驟6.客戶端接收到渲染節點的中間結果后,根據深度信息進行合成,得到最終渲染結果。

步驟7.當用戶產生交互行為,需要更新渲染結果時,客戶端發送消息通知渲染節點,回到步驟5進行處理。

分布式渲染整體流程如圖2所示。

圖2 分布式渲染系統流程圖

2.3 渲染結果壓縮

在網絡上,直接傳輸渲染后的中間結果會對分布式渲染中響應時間產生很大影響。所以為了降低交互延遲,需對渲染節點上渲染任務的結果進行壓縮后傳輸。綜合考慮各種壓縮算法的壓縮比以及壓縮/解壓縮效率,可選擇Snappy無損壓縮算法對渲染結果進行壓縮。Snappy是Google基于LZ77用C++語言編寫的快速數據壓縮與解壓程序庫,其目標是有非常高的速度和合理的壓縮率。表1列出了Snappy和其他壓縮算法在性能上的對比[11]。

表1 多種壓縮算法性能對比

3 性能和結果

3.1 實驗環境與對象

本文使用2臺計算機作為渲染節點,以及一臺筆記本作為客戶端??蛻舳伺c渲染節點之間通過千兆以太網絡進行連接。渲染節點的配置為i7 3.40 GHz CPU,8 GB內存以及NVIDIA GeForce GTX 750 Ti GPU。

本實驗對象將使用2個不同小區建筑的真實數據模型(場景A、B)作為測試數據。當進行場景劃分時,將每一棟樓作為一個子場景。場景A,B的大小分別為874 MB,2 215 MB,分別包含6個及14個子場景。圖3為場景B的模型俯視圖,可以看到小區建筑中包含了樓體、公路、湖泊等子場景。圖4分別展示了場景B中幕墻、整棟樓的鋼架結構以及樓體本身等不同子場景的結構模型。

圖3 場景B

圖4 場景B子場景

3.2 單機渲染性能

將場景A,B分別進行加載,完成單機渲染。表2和表3分別列出了2個場景及其子場景在單一渲染節點上的渲染性能。

表2 場景A單機渲染性能

表3 場景B單機渲染性能

3.3 分布式渲染性能及分析

當進行分布式渲染大規模場景時,將場景中的內容按內存大小平均分配到兩臺渲染節點上進行渲染。表4顯示了場景分布式渲染性能結果。

表4 場景分布式渲染性能

表4中各項測試時間結果是在完成相應任務時耗時最長的渲染節點中取得;其他項為網絡通訊和消息處理等時間;總計為交互響應延時,包括渲染時間、壓縮解壓時間、傳輸時間、客戶端發送/接收指令等時間。

實驗結果表明,采用本文提出的分布式渲染系統進行大規模場景繪制,減少了場景加載時間,將渲染結果進行壓縮傳輸,能夠降低系統交互延時,解壓時間可以忽略不計。整個分布式渲染系統交互響應所需時間遠遠小于單機渲染時間,利用分布式渲染框架,極大地提高了渲染效率。

4 小 結

本文提出了一種渲染大規模場景的分布式渲染框架。將大規模場景在內容上劃分為單一節點可渲染的子場景,使用多個渲染節點進行分布式處理,各個渲染節點上的子場景渲染結果根據深度信息進行融合得到最終結果,為了降低交互延時,使用一種實時壓縮算法對渲染結果進行壓縮,減少了網絡傳輸的開銷。本文提出的分布式渲染系統能夠在處理超大規模時達到可交互的性能。

[1] AKENINE-M?LLER T, HAINES E, HOFFMAN N. Real-time rendering [M]. Wellesley: A.K.Peters Ltd, 2008: 1-2.

[2] LUEBKE D, WATSON B, COHEN JD, et al. Level of detail for 3D graphics [M]. New York: Elsevier Science Inc., 2002: 219-223.

[3] 杜瑩, 武玉國, 游雄. 全球虛擬地形環境中Mipmap紋理技術研究[J]. 測繪科學技術學報, 2006, 23(5): 355-358.

[4] ANDUJAR C, BRUNET P, CHICA A, et al. Visualization of large-scale urban models through multi-level relief impostors [J]. Computer Graphics Forum, 2010, 29(8): 2456-2468.

[5] MOLNAR S, COX M, ELLSWORTH D, et al. A sorting classification of parallel rendering [J]. IEEE Computer Graphics and Applications, 1994, 14(4): 23-32.

[6] 鄭利平, 陳斌, 王文平, 等. 基于分布式渲染架構的遠程可視化研究[J]. 計算機研究與發展, 2012, 49(7): 1438-1449.

[7] 高官濤, 鄭小盈, 宋應文, 等. 基于Spark MapReduce框架的分布式渲染系統研究[J]. 軟件導刊, 2013(12): 26-29.

[8] CHEN Y J, HUNG C Y, CHIEN S Y. Distributed rendering: Interaction delay reduction in remote rendering with client-end GPU-accelerated scene warping technique [C]//IEEE International Conference on Multimedia and xpo Workshops. New York: IEEE Press, 2017: 67-72.

[9] VARADHAN G, MANOCHA D. Out-of-core rendering of massive geometric environments [EB/OL]. (2002-11-01)[2018-03-18].http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=90A14D277042676F059C400F3BF7066E?doi=10.1.1.298.4890&rep=rep1&type=pdf.

[10] SCHEIBLAUER C, WIMMER M. Out-of-core selection and editing of huge point clouds [J]. Computer and Graphics, 2011, 35(2): 342-351.

[11] GEORGE L. HBase: The definitive guide: random access to your planet-size data [M]. California: O’Reilly Media, Inc., 2011: 424-425.

A Scene-Distributed Interactive Rendering System

SUN Zhao1, LIU You-quan1, ZHANG Cai-rong1, SHI Jian2, CHEN Yan-yun3

(1. School of Information Engineering, Chang’an University, Xi’an Shaanxi 710064, China; 2. State Key Laboratory of Pattern Recognition, Institute of Automation, Chinese Academy of Sciences, Beijing 100190, China; 3. State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China)

With the constant increase in the scale and complexity of three-dimensional virtual scenes in recent years, very large-scale scenes (such as buildings, cities, etc.) can hardly be processed on single rendering node and their interactive performance can also be hard to achieve. Aiming at this shortcoming, the authors present an interactive distributed rendering framework. The authors divide the large scene into a set of renderable sub-scenes, which are distributed to different rendering nodes for processing. Intermediate sub-scene rendering results are merged to the final result based on depth information. To reduce the latency, the rendering results are compressed to accelerate the network transmission. The proposed distributed rendering system can efficiently process rendering and interaction for large-scale scenes. Moreover, the experiment has also confirmed that it is able to provide good scalability. A wide range of applications can benefit from interactive distributed rendering by this system.

rendering;distributed system; scene distribution; interactive

TP 391

10.11996/JG.j.2095-302X.2019010087

A

2095-302X(2019)01-0087-05

2018-07-02;

2018-07-12

中央高?;究蒲袠I務費專項資金項目(310824173401)

孫 昭(1992-),女,陜西咸陽人,碩士研究生。主要研究方向為計算機圖形學。E-mail:2016124012@chd.edu.cn

柳有權(1976-),男,湖北秭歸人,教授,博士,碩士生導師。主要研究方向為計算機圖形學。E-mail:youquan@chd.edu.cn

猜你喜歡
客戶端分布式節點
你的手機安裝了多少個客戶端
你的手機安裝了多少個客戶端
CM節點控制在船舶上的應用
基于RTDS的分布式光伏并網建模研究
基于AutoCAD的門窗節點圖快速構建
概念格的一種并行構造算法
結合概率路由的機會網絡自私節點檢測算法
如何看待傳統媒體新聞客戶端的“斷舍離”?
基于預處理MUSIC算法的分布式陣列DOA估計
基于DDS的分布式三維協同仿真研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合