摘 要:本文基于通信、虛擬化、GPU渲染、圖像編解碼等技術,設計實現三維云渲染服務系統。通過將重量級可視化應用在云端渲染,并加密編碼傳輸至客戶端,客戶端通過相對應的解碼技術解碼,客戶端即可擁有云端高性能機器的渲染效果,客戶端可以基于任意操作系統、任意瀏覽器、不安裝任何插件的情況下輸入URL即可訪問。
關鍵詞:云渲染;數字孿生;可視化;虛擬化
1.概述
當前處于一個信息化高速發展的時代,智慧城市的數字化、信息化建設離不開重量級可視化應用的支撐,然而,重量級可視化應用對客戶端硬件性能要求非常高,在移動端設備上幾乎無法使用這些重量級可視化應用,用戶想要使用重量級可視化應用就必須配置上一臺硬件配置非常好的電腦,并且需要在受限制的軟件環境下才能使用,讓這些重量級可視化應用真正推廣落地使用成了難題。
目前重量級可視化應用主要有桌面版應用及網頁版應用。桌面版應用基于C/S模式開發,用戶使用需要下載相對應的客戶端軟件,然后在其底層支持的操作系統下,使用高配置客戶機打開軟件查看應用內容,網頁版應用是基于B/S模式開發出來的網頁應用,用戶只需要輸入Url地址即可在線訪問,當前已有兩種技術實現了重量級可視化應用在瀏覽器上訪問:一種基于插件技術實現的(需要開發專門的可視化渲染插件,瀏覽器需要安裝專門插件,并不兼容所有瀏覽器),另一種基于WebGL技術實現(基于3D繪圖標準,無需安裝任何插件,可兼容大部分瀏覽器,但是不支持大場景三維應用性能不足,會出現渲染卡頓,瀏覽器奔潰等現象),同時這兩種技術也都需要在高配置的客戶機下才能運行大數據量三維場景。以上當前的技術方案,主要存在使用不便(如:受限制于操作系統,需要安裝客戶端軟件或者需要安裝插件,受限于瀏覽器),或者性能及穩定性不足(如:WebGL技術下大場景應用新能不足,會出現渲染卡段,瀏覽器崩潰等現場),或者客戶機配置要求高(如:需要高配置客戶機),無法在移動端設備(安卓或者IOS等)瀏覽器上運行??傮w上,目前重量級可視化應用存在使用不便、性能及穩定性不足、客戶機硬件配置要求高、無法在移動端設備(安卓或者IOS等)上使用等原因,很難落地到普通用戶使用。
2.系統架構
三維云渲染服務系統基于基礎設施層、服務層、應用層、展示層的四層架構:
基礎設施層:該層為基礎層,通過主機、網絡、存儲等硬件資源構建云渲染的硬資源環境,以及搭配操作系統、數據庫、安全系統等軟環境合力打造云渲染的資源環境。
服務層:該層為核心功能層,給應用層提供云渲染所需要的支撐功能,包括:通信服務、數據流服務、控制流服務、圖像編碼等。
應用層:該層基于服務層提供的服務支撐實現Web可視化展示以及后臺管理,通過后臺管理用戶可以通過可視化界面進行用戶管理、節點管理、云渲染發布等操作,通過Web可視化可以將三維應用輕量化。
展示層:該層對外開放給用戶使用,用戶可以通過PC、移動終端、大屏等設備,在任意操作系統、任意瀏覽器不安裝任何插件下訪問三維應用。
3.系統技術原理
系統實現的主要技術原理是:在云端構建虛擬服務器集群[1],將可視化應用部署至所述虛擬服務器集群上,采用虛擬化技術實現在云端進行渲染[2],同時在云端實現相對應的控制流指令來控制可視化應用的渲染,并在云端實現相對應的圖像編碼技術將渲染好的圖像進行編碼,在客戶端進行相對應的解碼,從而將圖像可視化展示在客戶端中,無需處理任何數據,兼容各種引擎,無需關心底層引擎,同時無需額外開發量即可完成將應用轉為使用云端渲染的網頁應用,普通客戶機或者移動端即可隨處打開瀏覽器訪問。
4.詳細功能設計
4.1.Web可視化模塊
Web可視化模塊在云渲染服務能力的支撐下,擁有云端的高性能渲染能力,可輕松加載城市級海量三維模型數據,本模塊主要負責客戶端基于Web的可視化呈現以及交互,在云渲染的賦能下它擁有其它普通Web三維應用所沒有的特性,主要體現在:易用性、兼容性、穩定性、渲染力、安全性等幾方面具有非凡的效果。
4.1.1.可視化展示子模塊
可視化展示子模塊主要基于Html web前端技術,將云端渲染的內容在Web 控件上繪制出來從而可視化呈現在頁面中。由于Web 控件被所有瀏覽器支持,且對系統不做要求,所以用戶通過任意操作系統、任意瀏覽器,在不需要安裝任何插件的情況下,就可以通過在瀏覽器上輸入URL地址即可展示由云端渲染的三維可視化系統內容。
4.1.2.圖像解碼子模塊
圖像解碼子模塊是Web可視化中的核心功能,其主要功能為負責將云端傳輸過來的數據流按照與云端約定好的格式,基于解密技術以及解碼技術進行解密解碼,同時基于Web前端Html技術將圖像在Html控件繪制出來。
4.1.3.交互聯動功能子模塊
交互聯動功能子模塊是Web可視化模塊的樞紐中心,主要負責與云端的交互聯動。負責實現指令的收發功能,將用戶的操作事件傳輸給云端從而達到交互聯動, 如:用戶通過鼠標滾動,按下鍵盤按鍵等來交互聯動。交互聯動模塊通過實現Web端事件中心來處理鼠標、鍵盤等事件來達到交互聯動目的。
4.1.4.指令與數據傳輸集成子模塊
指令與數據傳輸集成子模塊與云渲染服務模塊中的通信服務模塊結合,用于流程化的處理云渲染服務端的三維可視化應用與web客戶端間的指令交換,數據傳輸。達到通信方式簡單快捷。本模塊依托于云渲染服務端,三維可視化應用端以及web客戶端三端通信鏈路,在web客戶端實現與云端的數據傳輸。
4.1.5.權限校驗集成子模塊
權限校驗集成子模塊主要功能是用于對用戶的系統訪問的安全和權限進行校驗。當客戶端用戶通過URL訪問時,前端會對其請求信息轉發至云端認證是否擁有訪問權限,對于沒有權限用戶,拒絕訪問,從而也在web端保障了安全性。
4.1.6.云節點智能匹配子模塊
云節點智能匹配子模塊為用戶智能匹配返回一個最佳節點地址[3],主要功能包括地址轉換、安全轉碼和智能分析匹配。
4.2.云渲染服務模塊
服務模塊是整個三維云渲染服務子系統的“心臟”,作為整個系統的核心,起到了服務中心,控制中心,傳輸中心的作用。主要包括:通信服務子模塊,云智能選址服務子模塊,數據流服務子模塊,圖像編碼子模塊,控制流服務子模塊。
4.2.1.通信服務子模塊
通信服務子模塊在WEB端與云渲染后端服務以及三維應用端之間建立連接,負責建立起云端與客戶端之間的通信,傳輸數據流、控制指令信息。通信服務模塊是整個云渲染服務基礎,通過通信服務三維應用端,云渲染服務端,Web端建立通信鏈路。
4.2.2.云智能選址子模塊
負責當用戶在瀏覽器上輸入地址時,智能分析計算匹配一個云端節點給用戶。為Web端提供的地址匹配服務,通過該模塊Web端可以智能匹配最佳節點,從而達到最好的訪問效果。
4.2.3.數據流服務子模塊
數據流服務子模塊實現三維應用窗口內容監聽功能,根據云渲染后臺配置的分辨率,碼率,幀率等信息,實現基于這些參數對三維應用句柄的監聽,從而獲取三維應用窗口內容,并轉為相對應的數據流服務。
4.2.4.圖像編碼子模塊
圖像編碼子模塊負責圖像的編碼及解碼格式的約定,從而使得編碼后的數據能夠在傳輸效率,清晰度,質量以及WEB端解析效率,解析質量上有很好的效率。
4.2.5.控制流服務子模塊
實現處理云端與客戶端之間相互發送的指令。整個實現的過程為:Web客戶端端發送交互指令給云端時通過控制流服務子模塊,經過控制流服務子模塊處理發送至云端,云端接收消息給三維應用端,三維應用端響應并返回消息通過控制流服務發送給Web客戶端,我Web端指令與數據傳輸集成子模塊進行消息接收處理,反饋給Web用戶。
4.3.云渲染后臺管理模塊
云渲染后臺管理模塊提供可視化管理界面負責三維云渲染服務子系統的后臺資源配置,用戶、群主等管理功能,為云渲染穩定運行提供強有力支撐,為用戶提供友好的界面操作,方便進行應用管理。主要包括:云渲染用戶管理子模塊,群組管理子模塊,云渲染項目列表管理子模塊,云節點管理子模塊,云節點智能化反饋子模塊,云渲染發布中心子模塊,GPU虛擬化管理子模塊,資源監控管理子模塊,運營管理子模塊,日志管理子模塊。
4.3.1.用戶管理子模塊
用戶管理子模塊主要包括:用戶信息管理,權限信息管理,角色信息管理。
4.3.2.云渲染項目列表管理子模塊
云渲染項目列表管理子模塊展示所有已發布的云渲染項目。
4.3.3.云節點管理子模塊
管理員通過該云節點管理模塊自主配置云渲染環境的服務器信息,通過該模塊進行云節點的添加可輕松完成對服務器擴容,從而達到增強并發能力,以滿足日益增長的用戶,以及三維應用的擴容的需求。
4.3.4.云節點智能化反饋子模塊
負責列表化展示云節點的活躍信息。智能化的反饋云節點的活躍情況,及時回收釋放云節點,防止節點資源的不必要浪費。本子模塊通過其他資源監控管理服務等獲取云渲染服務環境的云節點的資源使用情況,能夠智能分析判斷回收釋放資源,達到資源合理利用目的。
4.3.5.云渲染發布中心子模塊
負責三維應用項目的可視化發布,通過上傳項目壓縮包、編輯項目的名稱、分辨率、幀率、渲染引擎等參數信息進行項目發布,發布完成的項目基于云端渲染,通過任意操作系統任意瀏覽器輸入URL即可訪問。
4.3.6.資源監控管理子模塊
資源監控管理子模塊主要功能包括資源概覽、參數設置和監控報警。
5.結語
本系統通過在云端搭建高性能的服務集群,將復雜的重量級可視化應用放在云端高性能服務器集群中進行渲染計算,借助通信技術、傳輸技術、虛擬化技術、遠程協議技術、GPU渲染技術、圖像編解碼技術,在云端渲染重量級可視化應用內容,將渲染后的內容基于圖像編碼技術編碼,在云端將編碼后的內容傳輸給客戶端進行解碼,客戶機不需要進行其它復雜的運算操作,只需要將其按照相對應的圖像解碼技術解碼即可在客戶機上運行重量級可視化應用。由于客戶端只需要進行簡單的圖像解碼操作,從而使得客戶機的硬件配置不再受要求,操作系統不受限制,瀏覽器不受限制,不需要任何插件即可非常輕松的加載展示重量級可視化應用,在普通客戶端上即可享受工作站級的高性能渲染體驗。
參考文獻:
[1]丁錦程,李勇琪.一種云渲染的系統與方法:中國,CN111614780A[p].2020-09-01
[2]基于服務器端的三維渲染技術綜述[J]. 徐嬋嬋. 中國傳媒大學學報(自然科學版). 2019(01)
[3]云計算環境中優化遺傳算法的資源調度策略[J]. 劉愉,趙志文,李小蘭,孔令榮,于淑環,于妍芳. 北京師范大學學報(自然科學版). 2012(04)