張 明,郭 亮,張蜀軍,葉日晨,王 會,粱智浩,周中正,何華貴
(1. 廣州市城市規劃勘測設計研究院,廣東 廣州 510060)
數字孿生一詞最早出現于美國國家航空航天局(NASA)的項目研究中,將數字孿生模型定義為由物理實體、虛擬實體以及二者之間的連接共同組成[1]。發展至今,數字孿生誕生了許多不同的定義,但其本質可理解為真實物理世界的“3D 克隆體”或“雙胞胎”,即用數字技術在網絡空間建立一個與現實世界完全對應和一致的虛擬模型,實現對現實環境中的行為和性能進行實時模擬。近年來,得益于大數據、物聯網、云計算、傳感器技術和仿真技術等新興技術的蓬勃發展,對客觀世界進行三維描述和表達的數據基礎和技術條件更加成熟與完備,數字孿生技術也不斷向前邁進,已被廣泛應用于產品設計[2-3]、工業生產[4-5]、智能制造[6-7]、醫療健康[8-9]和智慧城市[10-11]等領域。
基于數字孿生的智慧城市在物理實體維度方面需要實現城市多源異構物理實體的智能感知與互聯互通,實時獲取物理實體對象多維數據;而在數字孿生虛擬模型維度方面需要滿足以下功能需求:
1)逼真的三維可視化效果。逼真地呈現三維對象是三維模型最基本的需求。通過對物理場景進行精細化建模,結合VR等三維可視化技術和強大的三維渲染技術,可呈現出虛實場景融為一體的效果,能更加直觀地展現不同規劃設計方案的生成效果,方便實時修改。
2)高效的三維空間數據庫管理。海量多源異構數據的存儲與管理是構建大場景三維模型需要面臨的問題。優質的三維模型,需要設計特定的三維空間數據庫和數據壓縮算法,解決信息孤島化、共享效率低等問題,實現海量多源異構數據的高效存儲和管理。
3)強大的三維空間分析功能。三維空間分析是GIS 平臺區別于其他三維可視化平臺的特有功能。為更好地服務于智慧城市的建設和管理,數字孿生平臺需具備強大的二三維一體化操作和空間分析功能。目前搭建數字孿生平臺的技術路線包括基于GIS 平臺的三維建模和基于游戲引擎的三維建模兩種,其中基于GIS(ArcGIS Server[12]、IMAGIS[13]、 SkylineGlobe[14]、Su?perMap iServer[15]、Cesium[16])平臺搭建的數字孿生平臺專注于地理空間實體建模,其核心優勢體現為強大的多源數據兼容性和空間分析能力,可實現各類數據資源(遙感影像、矢量數據、傾斜攝影、建筑信息模型等)的統一管理和整合,對海量地理空間數據支撐性較好,但缺乏強大的三維渲染技術,因此構建的三維模型可視化效果較差;基于游戲引擎(3dsMax[17]、Unreal Engine[18]、Unity3D[19])搭建的數字孿生平臺更加關注于三維場景的可視化呈現,通過實時動態渲染和強大的物理引擎提供數字孿生所需的精細場景以及真實模擬現實世界的運行規則,但通常缺乏對多源地理實體數據的兼容能力和空間分析功能,無法滿足地理信息世界的相關分析需求。
針對上述問題,本文以智慧城市建設為探索方向,充分結合游戲引擎強大的三維渲染能力和GIS 平臺的空間分析能力,形成了數據加載和分析、三維場景構建和可視化表達的全流程方案,能實現高質量的城市三維模型構建,從而有效服務智慧城市的規劃、決策和管理。游戲引擎采用虛幻引擎作為研究平臺。虛幻引擎是一款先進的實時三維創作工具,擁有高級的渲染功能、靈活的材質編輯器和專業的動畫設計,可免費對外開放,支持各大主流平臺的集成,支持使用像素流送與服務器進行數據和模型的傳輸。此外,除了C++開發語言,虛幻引擎還支持獨家定制的藍圖可視化腳本,交互更簡單,對非開發人員更友好,能節省大量的開發時間,提高設計效率。相較于Unity 引擎,虛幻引擎強大的地形系統和多線程渲染能力可以更好地滿足城市三維模型構建的需求。
本文提出的游戲引擎與GIS 引擎聯合驅動的數字孿生平臺采用B/S架構,總體架構如圖1所示。

圖1 總體架構圖
1)數據存儲層。該層部署在服務器端,主要負責系統各類型數據的存儲、組織與管理,包括基礎支撐數據庫、數字底板資源庫、三維場景數據庫和運行維護數據庫。
2)中臺管理層。該層部署在服務器端,利用微服務架構實現對系統的智能網關管理、多終端管理、服務共享控制、用戶運維管理和系統監控日志管理。其中,智能網關管理通過Spring Cloud 實現,利用Spring Cloud Gateway 控制動態路由轉發,利用Spring Cloud Ribbon 實現客戶端動態負載均衡調節,可簡化前端調用邏輯和各微服務之間互相調用的復雜性,從而實現對系統的智能網關管理;通過OAuth標準對不同終端授權,給予不同終端唯一的訪問令牌,可實現對不同用戶的訪問需求進行統一管理;各微服務之間采用RabbitMQ 中間件實現消息通信和數據交換,從而滿足各微服務之間的共享需求;通過細粒度策略控制系統的每個按鈕、菜單、角色、用戶,并在后臺對所有服務的調用(調用時間、調用人員、調用內容等)和數據的使用進行記錄,從而實現權限運維管理;通過監控各種IT 服務的SLA 指標(SLA 服務等級協議)、更高層面的監控信息、用戶登錄狀態、權限管理情況和服務,可以生成系統管理日志。基于微服務架構,各功能互相分離,系統耦合性有效降低,各項服務支持更加靈活。
3)計算渲染層。該層部署在服務器端,由游戲引擎和GIS 服務引擎組成。游戲引擎采用虛幻引擎、Unity等主流游戲平臺,為數字孿生平臺提供GIS數據加載、三維場景渲染、三維場景分析等功能;GIS 服務引擎采用Cesium ion、MapGIS iServer 等主流引擎,為數字孿生平臺提供二三維數據格式轉換和空間分析服務。
4)通信管理層。該層采用WebSocket 協議進行前、后端通信。基于該機制,可將應用展示與計算渲染功能分別部署到前、后端,前、后端只需進行數據傳輸交互,即可有效降低開發的復雜度,實現前、后端解耦。
5)應用展示層。該層部署在客戶端,主要利用Javascript、HTML 等前端語言實現系統的用戶界面。游戲引擎通過云端渲染技術將服務器端渲染的三維場景畫面實時傳送到客戶端,在客戶端實時展示三維仿真場景。
系統功能模塊設計如圖2 所示,主要包括應用系統功能模塊、微服務模塊、云端渲染引擎模塊和參數化仿真建模模塊。

圖2 系統功能模塊
由于智慧城市數字孿生平臺旨在描述地理空間的三維實體,需要涉及不同來源的空間數據和屬性數據,因此本文基于空間數據庫PostGIS 實現多源異構數據的統一管理與調用。具體地,系統所設計的數據庫功能為:
1)基礎支撐數據庫,用于存儲多種地物類別對應的二維空間矢量數據,如房屋面、道路等。
2)數字底板資源庫,用于存儲遙感衛星影像、DEM、DOM、電子地圖等二維空間柵格數據。
3)三維場景數據庫,用于存儲傾斜攝影數據和其他各類三維模型數據。
WebSocket 是HTML5 開始提供的一種在單個TCP連接上進行全雙工通信的協議,通過一次“握手”,便可實現客戶端與服務器之間的雙向持續對話(圖3),從而實現高并發、高效實時、穩定安全鏈接,克服Http協議長輪詢只能單向訪問的缺點[20]。

圖3 WebSocket協議機制
系統采用WebSocket 實現各引擎以及前、后端的通信。客戶端的用戶請求以WebSocket 指令集的形式將發送至服務器,服務器接收相關指令,進行業務操作,生成響應數據(BLOB對象);再將響應結果傳輸回客戶端。通過WebSocket 通信,后端僅需建立一個WebSocket 服務器,提供一個URL,前端通過URL 即可與后端WebSocket 服務器進行鏈接,從而實現前、后端解耦,簡化開發與維護工作。
云端渲染是在云計算概念產生后誕生的一種新型渲染處理模式。它將原本在單機上進行的三維圖形渲染過程轉移到由多臺渲染節點構成的強大集群體系的服務器端(云端),由此實現多任務同時加速渲染,效率更高、質量更佳;同時能讓客戶終端功能更加便捷簡化,從而解放本地資源。用戶終端通過Web軟件并借助高速互聯網接入訪問資源,指令從用戶終端發出,服務器根據指令執行對應的渲染任務,而渲染結果畫面則被傳送回用戶終端中加以顯示。虛幻引擎客戶端和服務器的實時傳輸采用像素流實現,傳輸原理如圖4所示。

圖4 動態視頻流技術架構
在虛幻引擎中加載矢量數據,首先將矢量數據轉換為三維模型數據,然后在編輯器模式下利用GIS 平臺發布。具體步驟(圖5)可概括為:

圖5 在虛幻引擎中加載和編輯矢量數據流程圖
1) 調用GIS 數據驅動器 (CesiumLab、IDeskTop)中的三維模型數據解析接口,將二維矢量數據轉換為s3mb、3dtiles等三維數據格式。3dtiles格式可將城市建筑數據集以分塊、分層的數據組織形式進行渲染,能高效實現三維數據流式傳輸和海量三維模型渲染[21]。
2) 利用 GIS 平臺 (如 Skyline 的 TerraGate、Arc?GIS的ArcIMS等)將海量影像數據壓縮成三維地形場景文件,并發布成高效的流方式服務,再將服務地址參數配置到游戲引擎中。
3)借助地形建模工具(Tran3DBuilder、Presa?gis、Cesium for UE),將GIS平臺發布的地理數據導入虛幻引擎。
傾斜攝影能獲取建筑俯視圖和側視圖的豐富高分辨率紋理,通過虛幻引擎強大的渲染能力,可全方位、全要素展示真實地理世界。虛幻引擎中加載、傳輸傾斜攝影數據的具體步驟(圖6)為:
綜上,過腔和過腔法是曲圣魏良輔《南詞引正》“過腔接字,乃關鎖之地”音樂理論的產物,是昆曲首創的、迄今世上獨一無二的創作法和音調,也是昆曲有別于其他音樂樣式的本質特征和核心標志之一。

圖6 在虛幻引擎中加載傾斜攝影數據流程圖
1)數據格式轉換。在虛幻引擎中加載和渲染三維傾斜數據,首先需要將OSGB 格式的傾斜攝影數據轉換為FBX格式的三維數據。
2)調用圖形引擎解析三維數據。通過讀取FBX文件的頭部,調用動態鏈接庫,讀取三維數據文件的主體,包括頂點、地圖、層次等資源之間的依賴關系以及各節點之間的層次關系;再對地形信息(三角面模型的空間坐標)和地圖信息進行分類識別。
3)拆分層級細節并獲取信息。根據LOD 對應的編號進行多級分割,在顯示模型時調用。一方面,可獲取不同細節層次的頂點信息,并轉化為三角曲面模型;另一方面,可獲取不同層次的細節紋理信息,將紋理信息轉化為材質信息。
4)基于視錐和遮擋的不在可視范圍內的信息剔除。視錐剔除是根據相機視野以及近裁剪曲面與遠裁剪曲面之間的距離,將視錐體范圍外的對象排除在渲染之外,排除的對象不會進入渲染幾何階段。遮擋剔除是根據對象在場景中的位置預先生成的,運行時可剔除對應靜態對象后的其他對象。視錐剔除和遮擋剔除可有效降低渲染成本[22]。
5)將三角網模型和材質按照不同級別依次導入虛幻引擎,生成虛幻引擎資源和三維實景模型。通過空間映射,材質可粘貼到三角面對應的空間位置,從而實現將實景圖片賦予三角面模型,完成三維實景模型的構建。
根據系統設計方案,本文基于VUE框架實現了前端的界面設計和三維可視化展示;服務器端采用虛幻引擎平臺和C++語言實現了三維渲染功能,采用SuperMap iServer平臺實現了三維場景的數據分析功能;采用Post?GIS空間數據庫實現了空間數據的存儲、索引和查詢。
本文面向“數字城市”思想和電子政務系統建設的總體目標,以廣州市白云區為研究案例,融合虛幻引擎的超強渲染力和SuperMap iServer 平臺的三維GIS分析能力,創建了智慧白云地理信息(GIS)平臺。該平臺可實現白云區全域二三維一體化數據的加載、處理與展示,可為白云區“令行禁止、有呼必應”平臺以及各類“智慧應用”政務信息化平臺提供統一的政務電子地圖、衛星影像圖、實景三維模型等多尺度多分辨率的專題基礎地理底圖服務。與傳統三維GIS平臺相比,智慧白云地理信息(GIS)平臺實現了對白云區665 km2、超過10 TB三維傾斜攝影數據的秒級加載與調度,并通過對多源三維模型數據的融合實現了多尺度三維場景的城市建模;同時借助游戲平臺強大的渲染引擎和復雜的物理材質實現了對城市場景的電影級渲染,并利用視頻流技術實現云端渲染,擺脫了終端設備性能對平臺應用的約束。
通過系統架構設計,智慧白云地理信息(GIS)平臺實現了游戲平臺渲染能力與GIS 功能的深度融合,部分功能展示如圖7所示。

圖7 平臺部分功能示例
1)空間量測功能,可在虛幻引擎中實現長度量測、高度量測、面積量測等。
2)空間查詢功能,支持時間段、值過濾、排序、查詢結果手動分頁等數據查詢操作,同時提供了高效的多表聚合查詢。查詢的信息包括熱點定位、房屋信息、規劃用地信息、權屬信息、建筑面積和數量信息、POI信息等。
3)拆遷成本估算功能,以《廣州市白云區人民政府辦公室關于印發廣州市白云區集體土地及非住宅房屋征收補償辦法及廣州市白云區集體土地上住宅房屋征收補償安置辦法》為參照依據進行定制。拆遷成本估算金額包括購回國有土地使用權和房屋補償費、集體土地征收補償費、非住宅建筑物拆遷補償費、住宅房屋拆遷補償費、被征地農民社會養老保險費、用地報批稅費、留用地費用、工作經費和其他費用9 個部分。
4)可視域分析功能。通過三維場景可視域分析,判斷由于高度起伏等因素影響,三維空間中某一點視線的可見范圍,可服務于城市重要景點和重要景觀視廊的通視和空間尺度規劃,對擬建建筑的高度進行控制;通過分析多點通視面積的交集,可服務于交通信號燈、監控設備等的安裝,提高監管效率,降低設備成本。
通過智慧白云地理信息(GIS)平臺,可有效彌補二維城市規劃的不足,豐富城市規劃內容,提升白云區基礎地理信息數據的更新和共享效率,為進一步推動數字孿生技術在城市規劃、智慧城市建設等方面的應用提供可靠性驗證。
融合參數化建模、GIS 與游戲引擎等技術搭建的數字孿生平臺,通過虛幻引擎渲染技術改善了常規三維地理信息用戶的視覺體驗,同時支持三維GIS數據可視化、分析、查詢以及災情場景搭建等功能,不僅實現了三維模型逼真的可視化呈現和二三維一體化分析,而且能打破信息孤島現狀,提高數據共享能力,讓用戶更直觀地瀏覽和管理數據。智慧白云地理信息(GIS)平臺的搭建,驗證了本文方法的有效性。本文方法可推廣應用于智慧城市的建設與管理中,從而極大提升城市的綜合管理服務能力,有效支撐城市的發展決策。