慕旭
(易智瑞信息技術有限公司,北京 100028)
數字孿生作為現實世界的虛擬資產,可以實現對現實世界的復制,并提供面向城市的真實三維虛擬場景可視化,有利于實現城市運行狀態(tài)的模擬和智慧城市的科學決策。鑒于數字孿生城市需要覆蓋城市規(guī)模的場景,利用無人機建立城市規(guī)模的場景具有高效、環(huán)保、低成本高精度的優(yōu)點。當前各個組織已經為這個模型設計了多種數據格式,例如GLTF、3DTiles、I3S 和OpenSceneGraph (OSGB)。但目前的可視化方案渲染這些海量數據還具有一定挑戰(zhàn)。針對這一問題,研究人員主要從模型簡化和可視化策略優(yōu)化兩個方面進行了大量工具。為了簡化傾斜攝影測量模型,有研究學者提出了一種二次誤差測量(QEM) 的半邊折疊方法,該方法減少了渲染的壓力。此外,一些研究人員提出了可視化策略,包括瓦片金字塔建模、場景調度算法和內存調度方法,以利用互聯網的傳輸性能和硬件的計算性能[1]。此類方法已成功應用于Google Earth、Cesium、ArcGIS,以及其他用于可視化城市場景的web-GIS 平臺項目。但是,在使用這些方法時,通過減少硬盤讀取時間和內存開銷來提高渲染性能仍然是一項艱巨的任務[2-3]。
此外,為了模擬數字世界中的實際場景,材質、光照、渲染和其他計算機圖形(CG)技術也非常重要。Unity3D、虛幻引擎(UE)等游戲引擎采用了前沿的CG 技術,通過結合GIS 技術在這些游戲引擎中重構實際場景,引起了交叉學科研究的關注。例如,在Unity3D 中,可視化地形編輯器允許用戶導入數字高程模型(DEM),幫助開發(fā)人員有效地設計地形場景。然而,尤其是當用戶快速更改查看區(qū)域時,大規(guī)模、高精度的傾斜攝影測量模型的可視化仍需要改進。本文旨在優(yōu)化傾斜攝影測量模型的可視化方法。在可視化體驗方面,提出了一種可以提高可視化效果和真實感的方法,在UE 中實現了傾斜攝影測量模型可視化的原型系統。通過這個原型系統進行了實驗,證明了所提出的方法提高了可視化效果。
游戲引擎指的是一套工具,可以幫助開發(fā)者使用命令更快更容易地創(chuàng)建游戲,而這些命令過去需要通過游戲引擎的插件進行大量編碼。由于Unity、Unreal Engine 或CryEngine 等免費游戲引擎的出現,可以創(chuàng)建具有以前無法想象的沉浸感的3D 空間表示。玩家控制的化身(虛擬角色)的實現使用戶能夠從模仿自然現實世界視角的以自我為中心的相機視角感知構建的虛擬環(huán)境。用戶可以通過按鍵、鼠標或按鈕輸入在虛擬空間中自由移動。因此,與“傳統”的2D 可視化技術或預渲染的偽3D 可視化技術相反,基于游戲引擎的環(huán)境可以從幾乎無限種不同的角度來感知[4]。虛幻引擎(Unreal Engine)是一個游戲開發(fā)引擎。它由Epic Games 公司在1988 年開發(fā)。起初,UE 主要面向第一人稱射擊游戲進行開發(fā)。目前,它被廣泛用于創(chuàng)建格斗游戲、角色扮演游戲和其他應用中。
2015 年UE 宣布開源以來,UE 逐漸嘗試加載地理信息數據,功能強大的游戲引擎的免費可用性徹底改變了GIS 數據三維可視化的可能性。除了許多其他功能外,這些引擎還包括對真實物理系統的模擬。他們的早期版本往往與第一人稱射擊游戲相關聯,應用場景也更多。基于免費提供的UE,人們可以創(chuàng)建和分享自己的虛擬景觀,這些虛擬景觀可以通過現代VR 眼鏡等實現沉浸式VR 技術體驗。許多學科的研究人員都在探索新的可能性。處理空間數據和信息的研究團隊對基于高度準確的空間表示的虛擬景觀的開發(fā)非常感興趣。為了實現這種高空間精度,可以使用不同的地理數據資源。這些資源指的是相當傳統的來源,例如測繪單位。然而坐標系統成為了二者結合的關鍵技術之一。
在定位地球上的物體時,必須選擇坐標參考系統(CRS) 來表示位置。使它變得復雜的是地球既不是平面也不是球體:而是橢球體。有不同的橢球模型(稱為基準),最著名的是地球的WGS84 坐標參考。例如,對于WGS84 橢球,軸的長度之間存在大約22 公里的差異。

圖1
a = 6 378 137.0 米
b = 6 356 752.314 245 米
1/f = 298.257 223 563
每個坐標參考系使用其所基于的橢球模型定義位置。但是,有不同種類的坐標參考系統,每種都有額外的屬性。投影通常分為三類,以經緯度和高度為坐標的地理坐標系、投影后的平面坐標系及以球心為原點的XYZ(單位米)的笛卡爾坐標系。

圖2
如上圖,地球是橢球而不是圓球,這樣,在球面坐標系和笛卡爾坐標系之間轉換時需要特殊處理:r=r_s+h(r_s 和h 不在一條線)。特別是笛卡爾坐標系轉球面坐標系時,無法直接求解,需要用Newton-Raphson 方法迭代求解。
UE 附帶了一個地理配準插件,可以使用它來定義一個特定坐標系統中的原點坐標,并提供在每個不同坐標系之間轉換坐標的功能。在Unreal 中,每個物體都有相對于該場景原點定義的坐標,因此要知道任意地理參考位置,需要在地球上定位引擎原點。
UE 將考慮兩種不同的情況:
平坦地區(qū):虛擬場景環(huán)境足夠小,可以用平坦的地面(小于數百公里)來近似。在這種情況下,UE 認為地面是以投影模式建模的,并且所有坐標都可以在投影坐標系中定義,并具有一個簡單的平移偏移量。
全球場景:虛擬場景環(huán)境非常大,需要考慮地球的曲率。在這種情況下,UE 期望幾何形狀覆蓋整個行星,呈球形或橢圓形。在這種情況下,有兩種方法可以放置原點:在地球形狀的中心,或在表面上的任何點。在后者中,假設Z 軸指向上方,并且此時垂直于橢球體。
下圖可以說明這兩種情況。

圖3
在平坦的星球上,坐標中心選擇的建模原點是P 點。它是地球上的任意位置,可以使用地理坐標(緯度和經度)或笛卡爾坐標定義,但在特定的投影坐標系中。然后,XYZ 坐標在坐標內表示為東/北/上(East/North/Up)方向。
在圓形地球上,有兩種不同的選擇:
(1)坐標原點位于行星中心。這是ECEF 的情況,原點處沒有幾何圖形,而是位于具有較大值的坐標處,具體取決于地球半徑。ECEF CRS 是笛卡爾坐標系,軸與引擎軸對齊。
(2)坐標原點位于行星表面上的任意點。就像在平面行星的情況下,這些坐標可以用地理或投影坐標系表示。在這個位置保持水平的向上方向與橢球法線對齊會更方便,并確保平面幾何的方向是這樣一種方式,即前(Front)和右(Right)向量與北(North)和東(East)向量匹配。
在地理空間行業(yè)中,大多數坐標以右手坐標系表示,但虛幻引擎使用左手坐標系。為了與地理空間使用保持一致,地理配準插件使用右手坐標系表示坐標。這意味著它在轉換坐標時會在某個點反轉Y 坐標。UE 在場景范圍不大,通常采用投影后的平面坐標系,比如固定左下角點為原點,但GIS 中的場景范圍通常比較大,很多數據,比如3DTiles 采用的是RTC(relative to centre)的方式,每一份數據都有自己指定的原點,外圍矩形框是場景范圍,內部矩形是部分模型的范圍,內部的數據以左下角點作為自己的原點,從而保證浮點數能夠支持該范圍的精度。Float 和double 對應的精度分別是小數點后7 位和16 位,如果此時精度還達不到要求,Cesium 下會采用RTE(relativeto eye)來解決抖動問題,這等同于一個根據視角變化而動態(tài)更新紅點位置,取一個視角范圍內的位置作為原點。同時,因為shader 只支持float類行,采用float-float 的方式模擬double,以性能換取精度。UE 中如果場景范圍較大,則提供了rebasing 的方式,分為static 和dynamic 兩種,應該對應Cesium 中RTC 和RTE 這兩個模式。

圖4
UE 在github 上提供了GeoCoordinates 插件來支持投影轉換,MIT 協議。從Webinar 中看到,UE 主要還是專注在如何利用GIS 的數據,因此資助了很多團隊為其開發(fā)數據導入的插件,讓UE 可以加載主要的GIS 數據服務,確保UE 平臺在渲染和仿真上的優(yōu)勢,并借助VR,AR 這些XR的方式提高用戶體驗。
OSGB 是一種存儲3D 場景數據的OpenSceneGraph二進制場景數據格式。本文所使用的實驗數據為網絡公開下載的OSGB 文件。為了實現虛幻引擎中的數據重組和數據選擇方法,需要四類屬性值,包括瓦片的對應范圍、瓦片的紋理和幾何形狀、瓦片對應的圖形信息、元數據信息需要索引。整個過程可以分為四個方面:

圖5 數據預處理
當用戶靠近場景中的模型時,希望網格體看起來非常精細。但是,一旦用戶遠離模型,就不需要該模型非常詳細和復雜。如果它只占用屏幕上的幾個像素并且用戶幾乎看不到它,那么擁有非常復雜和詳細的網格是沒有意義的。但是,當用戶靠近模型并且可以清楚地看到它時,需要對模型進行詳細說明。在UE 中,可以在場景中放置一個模型,當用戶遠離它時切換到不太復雜的模型,以使場景渲染的更流暢。可以通過使用層次細節(jié)層次(Level of Details,LOD)來做到這一點。
瓦片金字塔模型是LOD 算法設計的。該模型首先根據空間分區(qū)和組織策略將大規(guī)模數據集劃分為小段。四叉樹從粗到細建立,每個段的數據副本附加到樹節(jié)點。由于這種方法可以幫助在可視化過程中根據精度要求消除冗余數據,因此在引擎設計中起著至關重要的作用。
為了避免傾斜攝影瓦片文件過多導致數據請求增加,最常用的數據制作工具ContextCapture 中的傾斜攝影測量模型按區(qū)域劃分塊,并在其中創(chuàng)建瓦片金字塔結構的LOD模型每個區(qū)域。與原始的瓦片金字塔結構相比,它在瓦片金字塔上部的根節(jié)點上進行了模型幾何簡化和紋理壓縮。每個瓦片金字塔的下部根據四叉樹結構劃分。

圖6 傾斜攝影測量模型的層次結構
UE 在世界分區(qū)系統中使用網格將場景劃分為可以在運行時動態(tài)加載和卸載的對象。然而,有時用戶希望遠處且非交互的對象(例如遠處的山脈、樹木和懸崖)仍然可見。分級層次細節(jié)模型(Hierarchical Level of Detail,HLOD)使用自定義HLOD 層來組織大量靜態(tài)模型并生成單個代理模型和材質。此技術用于可視化未加載的世界分區(qū)網格單元,在用于大規(guī)模傾斜模型可視化時,以減少每幀的繪制調用次數并提高性能。
為驗證本文方法的可行性,本文進行實驗的運行環(huán)境為:Windows 系 統,Intel Core i5 -6300HQ CPU 為2.30GHz,內存容量8G。基于UE5 引擎開發(fā)了傾斜攝影測量模型加載原型系統。其中傾斜攝影數據使用官網示例數據,實現3Dtiles 在UE5 的加載。
本文提出了一種基于虛幻引擎的傾斜攝影測量模型數據可視化方法,通加載UE 支持的3Dtiles 格式研究GIS 引擎數據處理方案,作為數據可視化的方法,以場景真實沉浸式體驗為目標,通過對傾斜攝影測量模型在UE 的處理加載,來實現對城市傾斜攝影測量模型的真實可視化。以UE的方案進行城市傾斜攝影測量模型數據的可視化,能夠較好地解決城市攝影測量模型的渲染與可視化問題,并且可提高場景真實沉降體驗感,能夠避免因局部數據請求發(fā)生變化而影響整個城市傾斜攝影測量模型的可視化效果,使得傾斜攝影測量模型數據可視化更加高效,體驗感更高。基于虛幻引擎的傾斜攝影測量模型數據可視化方法,希望能為3D WebGIS 的更好實現提供一種優(yōu)化,合理的傾斜攝影測量模型數據可視化可行性方案,也為將來類似理論的研究提供一定的參考價值。