張 明,郭 亮,張蜀軍,葉日晨,王 會,粱智浩,周中正,何華貴
(1. 廣州市城市規(guī)劃勘測設計研究院,廣東 廣州 510060)
數(shù)字孿生一詞最早出現(xiàn)于美國國家航空航天局(NASA)的項目研究中,將數(shù)字孿生模型定義為由物理實體、虛擬實體以及二者之間的連接共同組成[1]。發(fā)展至今,數(shù)字孿生誕生了許多不同的定義,但其本質可理解為真實物理世界的“3D 克隆體”或“雙胞胎”,即用數(shù)字技術在網絡空間建立一個與現(xiàn)實世界完全對應和一致的虛擬模型,實現(xiàn)對現(xiàn)實環(huán)境中的行為和性能進行實時模擬。近年來,得益于大數(shù)據(jù)、物聯(lián)網、云計算、傳感器技術和仿真技術等新興技術的蓬勃發(fā)展,對客觀世界進行三維描述和表達的數(shù)據(jù)基礎和技術條件更加成熟與完備,數(shù)字孿生技術也不斷向前邁進,已被廣泛應用于產品設計[2-3]、工業(yè)生產[4-5]、智能制造[6-7]、醫(yī)療健康[8-9]和智慧城市[10-11]等領域。
基于數(shù)字孿生的智慧城市在物理實體維度方面需要實現(xiàn)城市多源異構物理實體的智能感知與互聯(lián)互通,實時獲取物理實體對象多維數(shù)據(jù);而在數(shù)字孿生虛擬模型維度方面需要滿足以下功能需求:
1)逼真的三維可視化效果。逼真地呈現(xiàn)三維對象是三維模型最基本的需求。通過對物理場景進行精細化建模,結合VR等三維可視化技術和強大的三維渲染技術,可呈現(xiàn)出虛實場景融為一體的效果,能更加直觀地展現(xiàn)不同規(guī)劃設計方案的生成效果,方便實時修改。
2)高效的三維空間數(shù)據(jù)庫管理。海量多源異構數(shù)據(jù)的存儲與管理是構建大場景三維模型需要面臨的問題。優(yōu)質的三維模型,需要設計特定的三維空間數(shù)據(jù)庫和數(shù)據(jù)壓縮算法,解決信息孤島化、共享效率低等問題,實現(xiàn)海量多源異構數(shù)據(jù)的高效存儲和管理。
3)強大的三維空間分析功能。三維空間分析是GIS 平臺區(qū)別于其他三維可視化平臺的特有功能。為更好地服務于智慧城市的建設和管理,數(shù)字孿生平臺需具備強大的二三維一體化操作和空間分析功能。目前搭建數(shù)字孿生平臺的技術路線包括基于GIS 平臺的三維建模和基于游戲引擎的三維建模兩種,其中基于GIS(ArcGIS Server[12]、IMAGIS[13]、 SkylineGlobe[14]、Su?perMap iServer[15]、Cesium[16])平臺搭建的數(shù)字孿生平臺專注于地理空間實體建模,其核心優(yōu)勢體現(xiàn)為強大的多源數(shù)據(jù)兼容性和空間分析能力,可實現(xiàn)各類數(shù)據(jù)資源(遙感影像、矢量數(shù)據(jù)、傾斜攝影、建筑信息模型等)的統(tǒng)一管理和整合,對海量地理空間數(shù)據(jù)支撐性較好,但缺乏強大的三維渲染技術,因此構建的三維模型可視化效果較差;基于游戲引擎(3dsMax[17]、Unreal Engine[18]、Unity3D[19])搭建的數(shù)字孿生平臺更加關注于三維場景的可視化呈現(xiàn),通過實時動態(tài)渲染和強大的物理引擎提供數(shù)字孿生所需的精細場景以及真實模擬現(xiàn)實世界的運行規(guī)則,但通常缺乏對多源地理實體數(shù)據(jù)的兼容能力和空間分析功能,無法滿足地理信息世界的相關分析需求。
針對上述問題,本文以智慧城市建設為探索方向,充分結合游戲引擎強大的三維渲染能力和GIS 平臺的空間分析能力,形成了數(shù)據(jù)加載和分析、三維場景構建和可視化表達的全流程方案,能實現(xiàn)高質量的城市三維模型構建,從而有效服務智慧城市的規(guī)劃、決策和管理。游戲引擎采用虛幻引擎作為研究平臺。虛幻引擎是一款先進的實時三維創(chuàng)作工具,擁有高級的渲染功能、靈活的材質編輯器和專業(yè)的動畫設計,可免費對外開放,支持各大主流平臺的集成,支持使用像素流送與服務器進行數(shù)據(jù)和模型的傳輸。此外,除了C++開發(fā)語言,虛幻引擎還支持獨家定制的藍圖可視化腳本,交互更簡單,對非開發(fā)人員更友好,能節(jié)省大量的開發(fā)時間,提高設計效率。相較于Unity 引擎,虛幻引擎強大的地形系統(tǒng)和多線程渲染能力可以更好地滿足城市三維模型構建的需求。
本文提出的游戲引擎與GIS 引擎聯(lián)合驅動的數(shù)字孿生平臺采用B/S架構,總體架構如圖1所示。
圖1 總體架構圖
1)數(shù)據(jù)存儲層。該層部署在服務器端,主要負責系統(tǒng)各類型數(shù)據(jù)的存儲、組織與管理,包括基礎支撐數(shù)據(jù)庫、數(shù)字底板資源庫、三維場景數(shù)據(jù)庫和運行維護數(shù)據(jù)庫。
2)中臺管理層。該層部署在服務器端,利用微服務架構實現(xiàn)對系統(tǒng)的智能網關管理、多終端管理、服務共享控制、用戶運維管理和系統(tǒng)監(jiān)控日志管理。其中,智能網關管理通過Spring Cloud 實現(xiàn),利用Spring Cloud Gateway 控制動態(tài)路由轉發(fā),利用Spring Cloud Ribbon 實現(xiàn)客戶端動態(tài)負載均衡調節(jié),可簡化前端調用邏輯和各微服務之間互相調用的復雜性,從而實現(xiàn)對系統(tǒng)的智能網關管理;通過OAuth標準對不同終端授權,給予不同終端唯一的訪問令牌,可實現(xiàn)對不同用戶的訪問需求進行統(tǒng)一管理;各微服務之間采用RabbitMQ 中間件實現(xiàn)消息通信和數(shù)據(jù)交換,從而滿足各微服務之間的共享需求;通過細粒度策略控制系統(tǒng)的每個按鈕、菜單、角色、用戶,并在后臺對所有服務的調用(調用時間、調用人員、調用內容等)和數(shù)據(jù)的使用進行記錄,從而實現(xiàn)權限運維管理;通過監(jiān)控各種IT 服務的SLA 指標(SLA 服務等級協(xié)議)、更高層面的監(jiān)控信息、用戶登錄狀態(tài)、權限管理情況和服務,可以生成系統(tǒng)管理日志?;谖⒎占軜嫞鞴δ芑ハ喾蛛x,系統(tǒng)耦合性有效降低,各項服務支持更加靈活。
3)計算渲染層。該層部署在服務器端,由游戲引擎和GIS 服務引擎組成。游戲引擎采用虛幻引擎、Unity等主流游戲平臺,為數(shù)字孿生平臺提供GIS數(shù)據(jù)加載、三維場景渲染、三維場景分析等功能;GIS 服務引擎采用Cesium ion、MapGIS iServer 等主流引擎,為數(shù)字孿生平臺提供二三維數(shù)據(jù)格式轉換和空間分析服務。
4)通信管理層。該層采用WebSocket 協(xié)議進行前、后端通信?;谠摍C制,可將應用展示與計算渲染功能分別部署到前、后端,前、后端只需進行數(shù)據(jù)傳輸交互,即可有效降低開發(fā)的復雜度,實現(xiàn)前、后端解耦。
5)應用展示層。該層部署在客戶端,主要利用Javascript、HTML 等前端語言實現(xiàn)系統(tǒng)的用戶界面。游戲引擎通過云端渲染技術將服務器端渲染的三維場景畫面實時傳送到客戶端,在客戶端實時展示三維仿真場景。
系統(tǒng)功能模塊設計如圖2 所示,主要包括應用系統(tǒng)功能模塊、微服務模塊、云端渲染引擎模塊和參數(shù)化仿真建模模塊。
圖2 系統(tǒng)功能模塊
由于智慧城市數(shù)字孿生平臺旨在描述地理空間的三維實體,需要涉及不同來源的空間數(shù)據(jù)和屬性數(shù)據(jù),因此本文基于空間數(shù)據(jù)庫PostGIS 實現(xiàn)多源異構數(shù)據(jù)的統(tǒng)一管理與調用。具體地,系統(tǒng)所設計的數(shù)據(jù)庫功能為:
1)基礎支撐數(shù)據(jù)庫,用于存儲多種地物類別對應的二維空間矢量數(shù)據(jù),如房屋面、道路等。
2)數(shù)字底板資源庫,用于存儲遙感衛(wèi)星影像、DEM、DOM、電子地圖等二維空間柵格數(shù)據(jù)。
3)三維場景數(shù)據(jù)庫,用于存儲傾斜攝影數(shù)據(jù)和其他各類三維模型數(shù)據(jù)。
WebSocket 是HTML5 開始提供的一種在單個TCP連接上進行全雙工通信的協(xié)議,通過一次“握手”,便可實現(xiàn)客戶端與服務器之間的雙向持續(xù)對話(圖3),從而實現(xiàn)高并發(fā)、高效實時、穩(wěn)定安全鏈接,克服Http協(xié)議長輪詢只能單向訪問的缺點[20]。
圖3 WebSocket協(xié)議機制
系統(tǒng)采用WebSocket 實現(xiàn)各引擎以及前、后端的通信??蛻舳说挠脩粽埱笠訵ebSocket 指令集的形式將發(fā)送至服務器,服務器接收相關指令,進行業(yè)務操作,生成響應數(shù)據(jù)(BLOB對象);再將響應結果傳輸回客戶端。通過WebSocket 通信,后端僅需建立一個WebSocket 服務器,提供一個URL,前端通過URL 即可與后端WebSocket 服務器進行鏈接,從而實現(xiàn)前、后端解耦,簡化開發(fā)與維護工作。
云端渲染是在云計算概念產生后誕生的一種新型渲染處理模式。它將原本在單機上進行的三維圖形渲染過程轉移到由多臺渲染節(jié)點構成的強大集群體系的服務器端(云端),由此實現(xiàn)多任務同時加速渲染,效率更高、質量更佳;同時能讓客戶終端功能更加便捷簡化,從而解放本地資源。用戶終端通過Web軟件并借助高速互聯(lián)網接入訪問資源,指令從用戶終端發(fā)出,服務器根據(jù)指令執(zhí)行對應的渲染任務,而渲染結果畫面則被傳送回用戶終端中加以顯示。虛幻引擎客戶端和服務器的實時傳輸采用像素流實現(xiàn),傳輸原理如圖4所示。
圖4 動態(tài)視頻流技術架構
在虛幻引擎中加載矢量數(shù)據(jù),首先將矢量數(shù)據(jù)轉換為三維模型數(shù)據(jù),然后在編輯器模式下利用GIS 平臺發(fā)布。具體步驟(圖5)可概括為:
圖5 在虛幻引擎中加載和編輯矢量數(shù)據(jù)流程圖
1) 調用GIS 數(shù)據(jù)驅動器 (CesiumLab、IDeskTop)中的三維模型數(shù)據(jù)解析接口,將二維矢量數(shù)據(jù)轉換為s3mb、3dtiles等三維數(shù)據(jù)格式。3dtiles格式可將城市建筑數(shù)據(jù)集以分塊、分層的數(shù)據(jù)組織形式進行渲染,能高效實現(xiàn)三維數(shù)據(jù)流式傳輸和海量三維模型渲染[21]。
2) 利用 GIS 平臺 (如 Skyline 的 TerraGate、Arc?GIS的ArcIMS等)將海量影像數(shù)據(jù)壓縮成三維地形場景文件,并發(fā)布成高效的流方式服務,再將服務地址參數(shù)配置到游戲引擎中。
3)借助地形建模工具(Tran3DBuilder、Presa?gis、Cesium for UE),將GIS平臺發(fā)布的地理數(shù)據(jù)導入虛幻引擎。
傾斜攝影能獲取建筑俯視圖和側視圖的豐富高分辨率紋理,通過虛幻引擎強大的渲染能力,可全方位、全要素展示真實地理世界。虛幻引擎中加載、傳輸傾斜攝影數(shù)據(jù)的具體步驟(圖6)為:
綜上,過腔和過腔法是曲圣魏良輔《南詞引正》“過腔接字,乃關鎖之地”音樂理論的產物,是昆曲首創(chuàng)的、迄今世上獨一無二的創(chuàng)作法和音調,也是昆曲有別于其他音樂樣式的本質特征和核心標志之一。
圖6 在虛幻引擎中加載傾斜攝影數(shù)據(jù)流程圖
1)數(shù)據(jù)格式轉換。在虛幻引擎中加載和渲染三維傾斜數(shù)據(jù),首先需要將OSGB 格式的傾斜攝影數(shù)據(jù)轉換為FBX格式的三維數(shù)據(jù)。
2)調用圖形引擎解析三維數(shù)據(jù)。通過讀取FBX文件的頭部,調用動態(tài)鏈接庫,讀取三維數(shù)據(jù)文件的主體,包括頂點、地圖、層次等資源之間的依賴關系以及各節(jié)點之間的層次關系;再對地形信息(三角面模型的空間坐標)和地圖信息進行分類識別。
3)拆分層級細節(jié)并獲取信息。根據(jù)LOD 對應的編號進行多級分割,在顯示模型時調用。一方面,可獲取不同細節(jié)層次的頂點信息,并轉化為三角曲面模型;另一方面,可獲取不同層次的細節(jié)紋理信息,將紋理信息轉化為材質信息。
4)基于視錐和遮擋的不在可視范圍內的信息剔除。視錐剔除是根據(jù)相機視野以及近裁剪曲面與遠裁剪曲面之間的距離,將視錐體范圍外的對象排除在渲染之外,排除的對象不會進入渲染幾何階段。遮擋剔除是根據(jù)對象在場景中的位置預先生成的,運行時可剔除對應靜態(tài)對象后的其他對象。視錐剔除和遮擋剔除可有效降低渲染成本[22]。
5)將三角網模型和材質按照不同級別依次導入虛幻引擎,生成虛幻引擎資源和三維實景模型。通過空間映射,材質可粘貼到三角面對應的空間位置,從而實現(xiàn)將實景圖片賦予三角面模型,完成三維實景模型的構建。
根據(jù)系統(tǒng)設計方案,本文基于VUE框架實現(xiàn)了前端的界面設計和三維可視化展示;服務器端采用虛幻引擎平臺和C++語言實現(xiàn)了三維渲染功能,采用SuperMap iServer平臺實現(xiàn)了三維場景的數(shù)據(jù)分析功能;采用Post?GIS空間數(shù)據(jù)庫實現(xiàn)了空間數(shù)據(jù)的存儲、索引和查詢。
本文面向“數(shù)字城市”思想和電子政務系統(tǒng)建設的總體目標,以廣州市白云區(qū)為研究案例,融合虛幻引擎的超強渲染力和SuperMap iServer 平臺的三維GIS分析能力,創(chuàng)建了智慧白云地理信息(GIS)平臺。該平臺可實現(xiàn)白云區(qū)全域二三維一體化數(shù)據(jù)的加載、處理與展示,可為白云區(qū)“令行禁止、有呼必應”平臺以及各類“智慧應用”政務信息化平臺提供統(tǒng)一的政務電子地圖、衛(wèi)星影像圖、實景三維模型等多尺度多分辨率的專題基礎地理底圖服務。與傳統(tǒng)三維GIS平臺相比,智慧白云地理信息(GIS)平臺實現(xiàn)了對白云區(qū)665 km2、超過10 TB三維傾斜攝影數(shù)據(jù)的秒級加載與調度,并通過對多源三維模型數(shù)據(jù)的融合實現(xiàn)了多尺度三維場景的城市建模;同時借助游戲平臺強大的渲染引擎和復雜的物理材質實現(xiàn)了對城市場景的電影級渲染,并利用視頻流技術實現(xiàn)云端渲染,擺脫了終端設備性能對平臺應用的約束。
通過系統(tǒng)架構設計,智慧白云地理信息(GIS)平臺實現(xiàn)了游戲平臺渲染能力與GIS 功能的深度融合,部分功能展示如圖7所示。
圖7 平臺部分功能示例
1)空間量測功能,可在虛幻引擎中實現(xiàn)長度量測、高度量測、面積量測等。
2)空間查詢功能,支持時間段、值過濾、排序、查詢結果手動分頁等數(shù)據(jù)查詢操作,同時提供了高效的多表聚合查詢。查詢的信息包括熱點定位、房屋信息、規(guī)劃用地信息、權屬信息、建筑面積和數(shù)量信息、POI信息等。
3)拆遷成本估算功能,以《廣州市白云區(qū)人民政府辦公室關于印發(fā)廣州市白云區(qū)集體土地及非住宅房屋征收補償辦法及廣州市白云區(qū)集體土地上住宅房屋征收補償安置辦法》為參照依據(jù)進行定制。拆遷成本估算金額包括購回國有土地使用權和房屋補償費、集體土地征收補償費、非住宅建筑物拆遷補償費、住宅房屋拆遷補償費、被征地農民社會養(yǎng)老保險費、用地報批稅費、留用地費用、工作經費和其他費用9 個部分。
4)可視域分析功能。通過三維場景可視域分析,判斷由于高度起伏等因素影響,三維空間中某一點視線的可見范圍,可服務于城市重要景點和重要景觀視廊的通視和空間尺度規(guī)劃,對擬建建筑的高度進行控制;通過分析多點通視面積的交集,可服務于交通信號燈、監(jiān)控設備等的安裝,提高監(jiān)管效率,降低設備成本。
通過智慧白云地理信息(GIS)平臺,可有效彌補二維城市規(guī)劃的不足,豐富城市規(guī)劃內容,提升白云區(qū)基礎地理信息數(shù)據(jù)的更新和共享效率,為進一步推動數(shù)字孿生技術在城市規(guī)劃、智慧城市建設等方面的應用提供可靠性驗證。
融合參數(shù)化建模、GIS 與游戲引擎等技術搭建的數(shù)字孿生平臺,通過虛幻引擎渲染技術改善了常規(guī)三維地理信息用戶的視覺體驗,同時支持三維GIS數(shù)據(jù)可視化、分析、查詢以及災情場景搭建等功能,不僅實現(xiàn)了三維模型逼真的可視化呈現(xiàn)和二三維一體化分析,而且能打破信息孤島現(xiàn)狀,提高數(shù)據(jù)共享能力,讓用戶更直觀地瀏覽和管理數(shù)據(jù)。智慧白云地理信息(GIS)平臺的搭建,驗證了本文方法的有效性。本文方法可推廣應用于智慧城市的建設與管理中,從而極大提升城市的綜合管理服務能力,有效支撐城市的發(fā)展決策。