海量BIM模型即時渲染研究


對於不同體量的三維矢量化場景(如開放世界類型遊戲),行業內有不同的性能優化方案,所謂的“體量”有許多衡量指標,最常用的指標是全場景三角形的數量。本文提出了一套針對10億+三角形規模的場景優化方案,融合多個技術包括hLoD、QEM、WebRTC來提升性能並適配多端設備,目的是讓中低端設備也能運行大型三維可視化管理系統。




前端現狀

遊戲行業用“次世代“表示最新一代渲染技術,因爲隨着軟硬件的更新換代,計算機圖形學的理論幾乎每十年就發生一次顛覆性的迭代,最近的一次則是以可編程的GPU渲染流水線(pipeline)爲代表的着色器技術[A],這一批理論升級極大地提升了開發者的創作自由度,但也給性能帶來了巨大挑戰:像移動端一類低配設備的GPU每幀至多隻能處理十萬數量級的三角形,面對更大一點的開放場景往往只能以時間換空間,最終造成無法接受的高延遲;而如果都配備高性能的圖形處理器又面臨着低性價比的問題。因此面對如何讓大型3D場景在低配設備上運行的問題,主流的做法是通過視頻流技術(像素流)將服務端上渲染好的幀(包括音頻)實時傳輸到客戶端,視頻的編解碼同樣是運行在GPU上的專用計算單元,客戶端的硬件只要有視頻解碼的能力即可。



WebRTC像素流簡介

在衆多視頻編碼技術中,WebRTC是最流行的,因其開源免費、跨平臺、更新頻繁等特點[B],解決了傳統視頻會議軟件中需付費、門檻高、標準化不足等問題[C],主流的3D引擎包括虛幻引擎和Unity都選擇在WebRTC的基礎上實現了像素流技術。WebRTC的架構通常是利用信令通道(signalling channel)交換視頻通訊雙方的候選地址(ICE Candidate)和憑證等信息,然後雙方利用候選地址建立起基於UDP的對等體直連,再通過音視頻編碼技術(如H.265)傳輸壓縮、加密後的實時畫面。這些特性依託壟斷的chromium瀏覽器引擎得以迅速推廣,隨着時間推移,負責維護WebRTC的谷歌和負責維護視頻硬編碼的Nvidia等廠商相互兼容配對,協同更新,甚至可能組成聯盟,形成“雙寡頭壟斷“,WebRTC在即時通訊行業中的壟斷地位將成爲唯一的標準。WebRTC通過H.264或VP9編碼將原始像素流壓縮至10%以下,大大節省了帶寬壓力,最少只需要250Kbps就能運行480x270@25fps的視頻[D]。




參考文獻

[A] Edward Angel, Dave Shreiner. (2016 April). Interactive Computer Graphics: A Top-Down Approach with WebGL 7th edition [M]. Pearson. 32-33. (chapter 1.8)

[B] Dan Ristic. Learning WebRTC: (2015 June). Develop interactive real-time communication applications with WebRTC [M]. Packt.

[C] Tiberkak A, Lemlouma T, Belkhr A, et al. A Novel Approach for Generic Home Emergency Management and Remote Monitoring [J]. Software Practice and Experience, 2017, 48(1).

[D] Bart Jansen,Timothy Goodwin,Varun Gupta,et al. Performance Evaluation of WebRTC-based Video Conferencing[J]. ACM SIGMETRICS Performance Evaluation Review, 2018.






往期回顧:

本文分享自微信公衆號 - WebHub(myWebHub)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章