陳衡
(四川旅游學院,四川成都,610100)
研究基于并行渲染的虛擬現實開發平臺設計與實現
陳衡
(四川旅游學院,四川成都,610100)
在設計三維VR場景時需要依賴可視化的開發平臺,設計開發平臺時應注重提高軟件運行速度,確保硬件接口與軟件接口相互匹配,維持虛擬環境共享的一致性,能夠及時更新網絡協議與升級軟件功能,保證VR系統具有兼容性的特點。
開發平臺;并行渲染;設計;實現;虛擬現實
虛擬現實(VR)也稱人工環境、虛擬實境、靈境技術,利用VR技術虛構的人工環境能夠讓使用者產生逼真的觸覺、聽覺與視覺等感官體驗,如體驗虛擬場景中的物體溫度、位置、形狀、大小及重量等。VR技術的實質為運用模型構建、空間跟蹤、聲音跟蹤、視點感應、視覺跟蹤等技術實現虛擬交互,交互設備包括VR引擎、解釋器、傳感器等,傳感器可將原始數據轉化成交互信息,解釋器可根據交互信息生成行為數據。
并行渲染結構包括Sort-Last結構、Sort-Middle結構、Sort-first結構三大類。Sort-Last結構的應用領域包括Parallel-Mesa系統、Pixel-Flow系統等,Sort-Last結構在像素化過程中發生歸屬判斷,應用Sort-Last結構時需要傳輸大量像素,因此傳輸時占用的帶寬較大,這就會延緩虛擬VR圖像的合成速度,還容易對負載平衡產生影響。Sort-Middle結構的應用領域包括Chromium框架、PGL系統及Infinite Reality系統等。在Sort-Middle結構中,圖元的歸屬判斷過程發生在像素化與幾何變換之間,易于實現模塊化設計,傳輸量的增長倍數為處理器幾何級數,應用Sort-Middle結構時可能出現可擴展性不足等問題。Sort-first結構的特點包括通信量少、流水線互不干擾,能明確定義VR場景數據刪除函數、修改函數及增加函數的調用接口,可支持分辨率較高的VR顯示環境,屏幕上的圖元對象位置由幾何處理方式決定,Sort-first結構已經被應用在Display Wall、WireGL中。Sort-first結構中的圖元分配、圖元數據預變換及傳輸等操作可產生額外負載,應用Sort-first結構時需要采用負載平衡技術解決圖元差異與圖元分布不均勻問題,以免對開發平臺性能造成不良影響。上述三種渲染結構各具優缺點,因此目前多數VR系統會混合使用兩種渲染結構,如AnyGL系統、Parallel-SG系統等。應用混合型渲染結構時需保證工作站中安裝有多個性能優良的CPU,數據通信系統應具有較廣的適用性,盡量運用多核微機運行渲染系統。
2.1 開發平臺架構
本文分析的VR開發平臺采用了Sort-first渲染結構,PC節點包括控制節點與渲染節點。控制節點可對圖元組歸屬情況進行有效判斷,并將圖元組編號發送到渲染節點,在發送編號時要求渲染節點能夠同步接收信息。控制節點無法保留VR場景的圖形數據,僅保留包圍盒、VR場景結構數據,無需承擔渲染任務。渲染節點可利用多通道型投影系統渲染屏幕區域中對應的圖元組,在渲染圖元組時需消除投影系統之間的邊緣拼縫,處理拼縫時需調整幀緩存圖像亮度,運用漸變函數控制邊緣融合過程中的圖像亮度,促使拼縫融合,確保經過拼接處理的VR場景自然統一。VR系統架構模式為C/S,客戶端由金屬漆墻、投影儀、方向盤、顯示器、PC構成,服務端由渲染PC構成,渲染PC的顯卡為Geforce7900GS。客戶端中的PC可采集操作數據及顯示控制信息,同時向服務端發送View Matris,傳輸協議為TCP,該傳輸協議能確保服務端、客戶端同步處理數據。服務端獲取渲染圖像的命令為OpenGL,渲染鏈接庫為OpenGL 32.dll,操作時利用glReadPixel函數、SwapBuffer函數獲取緩存區數據,隨后在Buffer中存入壓縮數據,由Buffer保存與發送數據,發送數據時采用實時性強的UDP發送線程。此外,VR系統中的繪制過程、裁剪過程相互獨立,可減輕CPU負擔,確保渲染節點CPU數據實現并行化管理,開發平臺工作流程如圖1所示。

圖1
2.2 并行算法與負載平衡實現
開發平臺中的渲染算法為光子映射并行算法,Rank0進程可事先將待渲染VR場景模型分發到計算節點,如計算環境為內存共享并行環境,則Rank0無需向計算節點分發場景模型。由于光子生成時間開銷較小,因此在渲染時可保證每個節點均能夠實現單獨計算。在發射光子時,每個光源采用的種子相同,這就可以確保光子映射相同。計算節點接收到種子后,可根據種子發射光子,光源發射的光子可隨物體材質的變化產生不同的吸收、發射與折射區域,并形成光子圖,如待渲染區域為空,可向區域的左上角移動渲染點。利用光子圖并行渲染VR場景時,需全面跟蹤視點與渲染點之間的射線,在VR場景與射線相交的位置選擇采樣點P,采樣點P的顏色取決于光子類型與光子能量。負載平衡的具體策略包括場景掃描、搜索密集區、平衡算法與屏幕算法策略。利用八叉樹加載場景,渲染時只需掃描八叉樹,找到葉節點,隨后將八分子葉節點組建成立方體,在屏幕上投影立方體中心,投影后對小方格中的對象進行歸并處理,屏幕中的小方格劃分。搜索密集區時先找出最小的方格,并擴張小方格,擴張后可生成密集矩形,同時確保屏幕邊界與矩形邊界互相重合。平衡算法可向各個平行節點均勻分配圖元,像素shader可融合Sort-First渲染結果,在各個子節點分散合成Client端的深度圖像,以免造成Client端出現網絡擁堵問題。
2.3 渲染性能
測試了三種圖像尺寸下VR開發平臺的渲染性能。圖像尺寸為720×576時,25fps圖像速率為597.4Mbps,網絡最大幀率為37518fps,網絡速率平均值為330Mbps,節點渲染時間為0.175幀/s,節點分配幀率為5.62fps。圖像尺寸為720×1280時,25fps圖像速率為934.7Mbps,網絡最大幀率為10632fps,網絡速率平均值為330Mbps,節點渲染時間為0.763幀/s,節點分配幀率為2.73fps。圖像尺寸為1080×1920時,25fps圖像速率為1587.2Mbps,網絡最大幀率為7429fps,網絡速率平均值為330Mbps,節點渲染時間為1.362幀/s,節點分配幀率為1.62fps。開發平臺可處理復雜化的VR場景數據,幀率、網絡速率均能夠達到協同VR裝配要求。
VR開發平臺的設計過程復雜,需要處理多種細節問題及不斷優化VR軟件的開發設計環境。為確保開發平臺便于維護,應不斷更新并行渲染等核心技術,在綜合考慮VR系統整體開發結構與開發方法的基礎上合理組織虛擬對象,簡化圖形建模的旋轉及平移等操作,提高VR場景的編輯與制作效率,同時保證開發平臺具有可復用性、異構性、伸縮性及可擴展性的特點,能夠描述復雜化與多樣化的VR場景。
[1]徐繼偉,張文博,王燾,等.一種基于遺傳算法的虛擬機鏡像自適應備份策略[J].計算機學報,2015,39(2):351-363.
[2]趙忠良,吳軍強,李浩,等.高機動導彈氣動/運動/控制耦合的風洞虛擬飛行試驗技術[J].空氣動力學學報,2016,34(1):14-19.
Design and implementation of virtual reality development platform based on Parallel Rendering
Chen Heng
(Sichuan Tourism university,Chengdu Sichuan,610100)
in the design of 3D VR scene need to rely on visual development platform,design and development platform should focus on improving the speed of software operation,ensure that the hardware interface and software interface matching,maintains consistency with the shared virtual environment,can update the network protocol and upgrade the software function,ensure that the VR system has the advantages of compatibility.
development platform;parallel rendering;design;implementation;virtual reality
四川省教育廳自然科學一般項目“基于3DsMAX的270°渲染技術在虛擬仿真景區漫游中的研究與應用”。項目編號:16ZB0350。