999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種新的三維場景數據渲染方法

2022-02-14 08:04:52于雷易邴丕敬楊永明
自然資源信息化 2022年5期
關鍵詞:可視化

于雷易,邴丕敬,楊永明

(1.自然資源部國土空間大數據工程技術創新中心應用技術研發分中心,北京 100034;2.特力惠信息科技股份有限公司,福州 350001;3.中國人民大學 研究生院,北京 100872;4.中國人民大學 勞動人事學院,北京 100872)

0 引言

基于Web 方式的三維場景數據在線顯示是地理信息系統技術的常規需求,基于三維地理瓦片(three dimensions tiles,3D Tiles)格式實現三維場景數據在線顯示的Cesium 技術是該領域的代表技術。Cesium 技術實現三維場景數據在線顯示的關鍵是3D Tiles 格式的分層細節級別(hierarchical level of detail,HLOD)數據結構。用戶請求顯示某視圖范圍內的三維場景數據時,Cesium 首先向服務端請求加載顯示HLOD 數據結構的低層級數據,由于低層級數據的數據量相對少,這樣能夠快速顯示三維場景的輪廓、快速響應用戶的顯示請求;當用戶沒有進一步視圖操作時,再逐級加載顯示HLOD數據結構的高層級數據,顯示三維場景的細節[1]。

雖然Cesium 技術能夠解決一般情況下的三維場景在線顯示問題,但也存在缺陷。Cesium 技術顯示三維場景數據時需要將數據傳輸到客戶端并進行渲染。當三維場景地理范圍很大且場景細節特別豐富時,高層級HLOD 數據傳輸到客戶端耗時很長,造成三維場景細節顯示緩慢;傳輸到客戶端的三維場景數據會造成大量內存累積,即便它擁有內存釋放策略也無法完全解決問題,導致中低性能的客戶端極易出現瀏覽器崩潰等問題[1]。

為解決上述海量、高密度、高精度三維場景數據在線可視化問題,研究團隊研發了一種海量三維場景數據混合渲染方法并取得發明專利,基于該專利技術實現了TeleGIS 三維大數據Web 顯示系統。

1 國內外同類技術

在Web 的三維場景數據渲染技術方面,Cesium的細節層次(level of detail,LOD)技術和虛幻引擎(Unreal Engine)的像素流送技術是典型代表。一些商業三維地理信息系統平臺推出視頻流的技術,其技術實現原理與像素流送技術類似。

1.1 Cesium 技術

Cesium 是AGI(Analytical Graphics Incorporation)公司計算機圖形開發小組研發的三維地球和地圖可視化開源JavaScript 庫。Cesium 為三維GIS 提供了一個高效的數據可視化平臺。Cesium 是一個跨平臺、跨瀏覽器展示三維地球和地圖的JavaScript庫;利用萬維網圖形庫(Web graphics library,WebGL)進行硬件加速圖形顯示,使用時不需要任何插件支持。

Cesium 技術運用3D Tiles 格式加載傾斜攝影數據、三維建筑物模型數據、建筑信息模型(building information model,BIM)數據、點云數據等3D 數據。Cesium 支持全球高精度地形數據可視化,支持地形夸張效果、可編程實現的等高線和坡度分析效果。

1.2 Unreal Engine 的像素流送技術

Unreal Engine 的像素流送技術,在云端服務器上運行虛幻引擎應用程序,通過萬維網實時通信(Web real-time communication,WebRTC),將渲染的幀和音頻流發送到瀏覽器和移動設備[2]。

利用像素流送可以遠程運行虛幻引擎應用程序,虛幻引擎將利用電腦的可用資源,包括中央處理器(central processing unit,CPU)、圖形處理單元(graphics processing unit,GPU)、內存等,運行游戲邏輯并對每一幀進行渲染。它會將此渲染不斷輸出編碼到一個媒體流送,再通過一個輕量級的網頁服務堆棧進行傳遞,用戶可在其他電腦和移動設備的標準網頁瀏覽器查看直播流送[2]。

2 關鍵技術

TeleGIS 三維大數據Web 顯示系統的核心方法是客戶端與服務端混合渲染方法。該方法的具體實現過程采用了HLOD 層級瓦片篩選規則[3]、三級緩存策略、多用戶并發與分布式渲染任務分配等多個關鍵技術。

2.1 客戶端與服務端混合渲染方法基本原理

不同于Cesium 技術的客戶端渲染方法,海量三維場景數據混合渲染方法采用了客戶端與服務端混合渲染的方法。該混合渲染方法的基本原理是,客戶端Cesium 負責加載顯示3D Tiles 數據HLOD 數據結構的低層級數據(低層級數據的數據量相對?。?,顯示三維場景的輪廓,滿足用戶視圖操作的快速響應和平滑效果需求;服務端的osgEarth 集群負責顯示HLOD 數據結構的高層級數據(高層級數據的數據量相對大),顯示三維場景的細節。

該混合渲染方法既能減少客戶端的數據壓力和資源壓力(降低了客戶端電腦的指標要求),保證用戶視圖操作的快速響應和平滑效果,又能通過調用服務端osgEarth 集群的分布式并行渲染能力,滿足三維場景細節快速顯示的需求。

在客戶端與服務端混合渲染方法的具體實現方面,服務端不需要參與每個視圖的渲染。本文通過HLOD 層級瓦片篩選規則確定客戶端負責渲染情況與服務端負責渲染情況。

2.2 HLOD 層級瓦片篩選規則

在3D Tiles 數據HLOD 數據結構中,每個層級都帶有一個屬性geometricError,根據該屬性和當前視圖參數,可以計算對應的屏幕誤差ScreenSpaceError。

本文設定一個最大屏幕誤差(Maximum ScreenSpaceError)、一個層級遞減系數(Screen SpaceErrorScale)、一個最高層級幾何誤差(GeometricErrorMax),將混合渲染標識(DisplayType)的初始值設為0。最大屏幕誤差、層級遞減系數及最高層級幾何誤差的取值分別舉例為16 個像素、4 及32 m[1]。

對于每次三維視圖刷新操作,客戶端瀏覽器需要遍歷3D Tiles 數據HLOD 數據結構[4],對每個層級的ScreenSpaceError 進行計算,并且按照如下規則進行篩選和操作:

(1)當幾何誤差大于或等于最高層級幾何誤差時,判斷屏幕誤差是否小于最大屏幕誤差。若小于,則設定層級瓦片的顯示標識為不顯示,不修改混合渲染標識的值。若大于或等于,則設定層級瓦片的顯示標識為顯示,不修改混合渲染標識的值[1]。

(2)當幾何誤差小于最高層級幾何誤差時,判斷屏幕誤差是否小于最大屏幕誤差。若小于,則設定層級瓦片的顯示標識為不顯示,不修改混合渲染標識的值。若大于或等于,則將屏幕誤差除以層級遞減系數并得到誤差值(error),判斷誤差值是否大于或等于最大屏幕誤差。若大于,則設定層級瓦片的顯示標識為顯示,不修改混合渲染標識的值;若小于或等于,則設定層級瓦片的顯示標識為不顯示,將混合渲染標識的值改為1[1]。

混合渲染標識用于決定是否啟動服務端渲染。當所述混合渲染標識的值為0 時,客戶端進行渲染;當所述混合渲染標識的值為1 時,客戶端負責低層級數據渲染,同時啟動服務端渲染,服務端負責高層級數據渲染,同時附帶必要的低層級數據[1]。

上述層級瓦片篩選規則如表1 所示。

表1 層級瓦片篩選規則

通過以上計算和篩選規則,實現客戶端Cesium 負責加載顯示3D Tiles 數據HLOD 數據結構的低層級數據、服務端osgEarth 集群負責顯示HLOD 數據結構的高層級數據。

2.3 三級緩存策略

服務端分布式并行渲染是客戶端與服務端混合渲染方法的實現關鍵。服務端分布式并行渲染需要消息觸發并行渲染任務,將完成的結果圖片傳回客戶端瀏覽器,這個過程比較復雜,本文通過三級緩存策略實現了解耦,使得渲染流程更加穩健[5]。三級緩存策略的具體實現過程參見下文的系統設計與實現章節。

2.4 多用戶并發與分布式渲染任務分配

TeleGIS 三維大數據Web 顯示系統不僅要實現單個用戶任務的分布式并行渲染,還要實現多用戶并發請求的響應。為此,本系統通過配置文件設置每個渲染節點啟動osgEarth 的最大實例數量和每個3D Tiles 數據需要的并行渲染osgEarth 實例數量,根據渲染節點數量明確當前渲染集群支撐的最大用戶并發數量[6]。

當用戶并發數量不超過最大數量時,正常啟動新的osgEarth 實例,響應新用戶的數據渲染請求;當用戶并發數量超過最大數量時,告知當前用戶集群已經滿負荷,暫時無法提供服務。另外,當用戶長時間沒有操作時,服務端對應的osgEarth實例會被銷毀,釋放的資源被提供給其他用戶。

3 系統設計與實現

3.1 系統結構

TeleGIS 三維大數據Web 顯示系統結構如圖1 所示。TeleGIS 三維大數據Web 顯示系統主要由客戶端瀏覽器、服務端Cesium 網頁服務、服務端3D Tiles 數據服務、服務端并行渲染服務、服務端osgEarth 集群5 個部分組成。其中,服務端Cesium 網頁服務、服務端3D Tiles 數據服務是Cesium 技術本身的設計,主要實現客戶端渲染任務;服務端并行渲染服務、服務端osgEarth 集群是本系統的自定義設計,主要實現服務端渲染任務。以上組成結構負責完成下文的顯示操作響應處理流程。

圖1 TeleGIS 三維大數據Web 顯示系統結構

3.2 顯示操作響應處理流程

TeleGIS 三維大數據Web 顯示系統典型的顯示操作響應處理流程如圖2 所示。

圖2 顯示操作響應處理流程

(1)網頁初始化和渲染服務初始化。客戶端通過瀏覽器訪問服務端的Cesium 網頁,獲得Cesium JavaScript 三維數據處理能力,并通過3D Tiles 數據服務加載三維場景數據,完成Cesium 網頁的初始化[1]。在Cesium 網頁上創建一個等大窗口的畫布,響應用戶視圖的操作和請求,并開啟混合渲染模式,完成渲染服務的初始化[1]。

(2)通過層級瓦片篩選規則實現混合渲染控制??蛻舳烁鶕脩舻囊晥D操作,基于三維場景數據中各層級瓦片的幾何誤差(geometricError)計算對應的屏幕誤差(ScreenSpaceError)?;谏衔乃龅膶蛹壨咂Y選規則,對混合渲染標識displayType 進行更新,并決定是否啟動服務端渲染。當混合渲染標識displayType 的值為0 時,客戶端進行渲染;當混合渲染標識displayType 的值為1 時,客戶端負責低層級數據渲染,同時啟動服務端渲染。

(3)服務端分布式并行渲染。服務端接收所述數據渲染請求后,對三維場景數據中的高層級數據和必需的低層級數據進行并行渲染,并基于三級緩存策略將渲染結果刷新到客戶端,完成三維場景數據的混合渲染。

客戶端調用cesiumWidget.scene.render 方法對三維場景數據的低層級數據進行渲染。當所述混合渲染標識的值為1 且距離上一次視圖參數變化超過預設的第一時間間隔(如50 ms)后,基于用戶選擇的數據信息和視圖參數向服務端發送數據渲染請求。通過第一時間間隔updateViewpoint方法設置,避免用戶視圖頻繁變化,不斷向服務端發送高層級數據渲染請求,進而降低服務端的壓力[1]。

服務端接收所述數據渲染請求后,清空服務端的任務隊列,新建若干個三維場景渲染子任務并添加至任務隊列,基于所述任務隊列將三維場景渲染子任務分配給若干個worker 進程并進行并行處理[1]。

新建若干個三維場景渲染子任務的原因是osgEarth 顯示三維場景是一個漸進式顯示過程,需要在特定時間內不斷從osgEarth 獲取渲染完成的渲染子圖片[1]。

各個worker 進程接收三維場景渲染子任務后,基于三維場景渲染子任務判斷數據信息和視圖參數是否變化。若變化,則更新osgEarth 的參數信息,從三級緩存中抓取對應的渲染子圖片,并將渲染子圖片匯總到服務端的二級緩存;若不變化,則從三級緩存中抓取對應的渲染子圖片,并將渲染子圖片匯總到服務端的二級緩存[1]。

客戶端基于預設的第二時間間隔(如300 ms),將服務端二級緩存中存儲的渲染子圖片,通過WebService 請求循環刷新到客戶端的一級緩存,客戶端通過一級緩存中存儲的渲染子圖片不斷更新畫布的顯示內容,完成三維場景數據的混合渲染[1]。

一級緩存有利于客戶端即時響應用戶視圖的操作;二級緩存有利于解耦服務端三維場景數據的渲染流程和客戶端向服務端請求渲染子圖片的流程,各自按照實際需求確定刷新頻次,使得服務端的數據渲染請求響應過程更加合理,提高整體渲染響應性能;三級緩存有利于實現服務端漸進式顯示,充分利用osgEarth 固有能力。

4 實驗與測試

基于系統設計,本文在3 個節點的虛擬機集群上進行了系統實驗,并且導入了測試數據,進行了數據可視化測試。

4.1 測試環境與測試數據

虛擬機集群節點資源配置如表2 所示。測試數據是某地區約10 km2的三維場景數據,總數據量約30 GB。

表2 虛擬機集群節點資源配置

4.2 三維場景數據可視化測試

三維場景數據可視化結果如圖3 所示。數據可視化測試表明,本系統能夠完成海量、高密度、高精度的三維場景數據在線可視化任務。

圖3 三維場景數據可視化結果

4.3 Cesium 技術可視化測試

對于上述同樣的三維場景數據,本文通過原生的Cesium 技術進行了可視化測試。測試結果表明,Cesium 技術雖然能夠正常顯示該三維場景數據,但場景細節放大時,場景細節漸進式顯示耗時較長,通常需要數秒。在不同場景區域漫游過程中,客戶端內存不斷累積,最終導致瀏覽器崩潰。

5 同類技術對比

與本文所述的客戶端與服務端混合渲染方法相比,Cesium 技術使用客戶端渲染方法,前文已經進行技術對比。Unreal Engine 的像素流送技術也是三維場景數據在線可視化的一種主流技術[7]。與像素流送技術相比,本文的客戶端與服務端混合渲染方法主要存在2 個優勢。

(1)客戶端的低層級數據渲染保證了用戶交互的流暢性。像素流送技術雖然通過使用WebRTC點對點通信框架,實現使用者和虛幻引擎應用程序之間低延遲,但用戶交互還存在延遲,這是因為所有的響應都來自服務端。

(2)服務端的分布式并行渲染保證了系統的可擴展性。TeleGIS 三維大數據Web 顯示系統通過集群的并行渲染,使得系統可以無限制支撐三維場景數據量和密度,無限制支撐客戶端用戶數量。Unreal Engine 的像素流送技術在這兩個方面都受制于單一服務端節點的硬件資源配置,不能通過集群進行擴展[8]。

本文的客戶端與服務端混合渲染方法的主要劣勢是實現過程較復雜,包括服務端的集群調度過程,為系統的編碼實現和部署帶來一定的困難,系統運行的穩定性也有待檢驗。

6 總結和展望

本文通過關鍵技術研究、系統設計與實現、系統實驗與測試及同類技術對比,證明了客戶端與服務端混合渲染方法的可行性和優越性。

TeleGIS 三維大數據Web 顯示系統的實驗和測試基于虛擬機集群,如果基于裝有GPU 顯卡的物理機集群進行系統部署,將能夠極大地提升系統顯示性能,包括三維場景數據顯示速度及數據量和用戶量的支撐能力。

猜你喜歡
可視化
無錫市“三項舉措”探索執法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
三維可視化信息管理系統在選煤生產中的應用
選煤技術(2022年2期)2022-06-06 09:13:12
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 女人av社区男人的天堂| 欧美成人a∨视频免费观看| 亚洲国产综合精品中文第一| 九九线精品视频在线观看| 国产欧美高清| 国产国产人成免费视频77777| 午夜国产不卡在线观看视频| 福利在线免费视频| 国产黄色爱视频| h视频在线观看网站| 国产激情无码一区二区免费 | 亚洲人免费视频| 在线国产综合一区二区三区| 亚洲中文字幕在线精品一区| 国产亚洲一区二区三区在线| 久无码久无码av无码| 精品福利国产| 国产一级视频在线观看网站| 又大又硬又爽免费视频| 尤物视频一区| 在线观看无码a∨| 国产迷奸在线看| 超清无码一区二区三区| 国产欧美精品一区aⅴ影院| 又粗又硬又大又爽免费视频播放| 亚洲三级色| V一区无码内射国产| 亚洲无限乱码| 国产成人精品无码一区二| 国产精品2| 精品福利视频导航| 国产一区成人| 一级毛片在线直接观看| 成人精品免费视频| 国产九九精品视频| 亚洲水蜜桃久久综合网站 | 人妻夜夜爽天天爽| 国产色网站| 久久久受www免费人成| 老司国产精品视频91| 玖玖精品视频在线观看| 日韩高清成人| 日韩欧美中文| 人妻中文久热无码丝袜| 五月婷婷丁香综合| 特级毛片免费视频| 91福利一区二区三区| 日本不卡在线播放| 国产一级妓女av网站| 国产情侣一区二区三区| 亚洲精品福利视频| 日韩av无码精品专区| 国产成人毛片| 亚洲无限乱码| 久草国产在线观看| 久久综合伊人77777| 国产亚洲精品无码专| 日韩精品欧美国产在线| 日本高清有码人妻| 91视频日本| 伊人久久精品无码麻豆精品| 三级毛片在线播放| 国产JIZzJIzz视频全部免费| 成人另类稀缺在线观看| 亚洲欧洲日本在线| 久久无码免费束人妻| 国产精品yjizz视频网一二区| 国产精品私拍99pans大尺度 | 国产在线视频导航| 萌白酱国产一区二区| 丁香五月婷婷激情基地| 97se亚洲综合在线| 色综合五月婷婷| 亚洲综合久久成人AV| 日韩国产一区二区三区无码| 欧美日本在线| 久久一日本道色综合久久| 在线观看免费国产| 无码免费的亚洲视频| 精品中文字幕一区在线| 怡红院美国分院一区二区| 欧美69视频在线|