王金怡,郭 權
(中通服咨詢設計研究院有限公司,江蘇 南京210019)
進入5G時代,真實世界與虛擬世界將密不可分。信息的產生與流動瞬息萬變,城市的運轉每天都會涌現出無數復雜的數據,如三維時空數據、視頻影像數據、地理信息數據以及傳感器網絡數據等。呈現、理解和應用此類新型的海量復雜數據,是大數據可視化面臨的全新挑戰。U3D引擎為三維數據、復雜數據的可視化提供了可能性,可有效呈現這些結構化和非結構化的數據,而如何處理這些數據并選擇最佳的可視化方法成為探究的方向。
城市每天產生著大量數據,關注和分析這些數據使其可視化將有助于城市更有效地運轉。在三維空間中,產生的數據是聚合在一起的空間數據,具有相應的位置信息。三維引擎區別于以往的二維可視化工具,能夠展現出更多信息,以更加直觀科學的方式將交通運行狀況、人口密集度、天氣信息、經濟運行數據以及時間信息等多種大規模、時變數據集合在一個空間數據場。
隨著科學可視化和虛擬現實技術的快速發展,人們對真實感渲染和可視化場景的復雜度提出了更高要求。以往使用OpenGL、DirectX開發圖形應用的模式,與如今可視化開發的需求不匹配。對幾款主流三維引擎OGRE、OSG、Irrlicht、Axiom以及Unity3d等[1-2]進行綜合比較發現,Unity3d引擎在平臺支持、靈活性、互動性、圖形性能以及龐大的資源庫方面表現突出,更適合大規模多變量的空間數據場可視化。而利用U3D引擎在大數據可視化方面能創造怎樣新型的表達式,是下面探討的重點。
大規模的空間數據可視化的目的是抽取和表達數據場中多個屬性及其相互關系。如何克服多變量、復合類型、內在結構復雜且互相交織的數據特征,是可視化過程中的關鍵部分。其中,對于數據降維、數據壓縮和投影變換等方面,最大限度地去除冗余信息和數據量,保留重要信息,將直接影響可視化的呈現效果。
ECS架構旨在比Unity目前的Gameobject/Component架構模式更容易處理大量物體。ECS的全稱為Entity Component System,在數據和對象的處理上都與當下主流的OO模型有很大區別[3]。由于面向數據的設計,它很容易并行高速處理,和C# Job System一起工作可以使CPU利用率接近100%。ECS的架構如圖1所示。

圖1 ECS的架構圖
在Unity中進行大數據三維可視化展現,不可避免要復制海量物體和數據組件,如城市級場景中樓宇的大數據分析。成千上萬的樓宇模型和數據組件在以往的Gameobject/Component架構模式下效率較低,ECS可以通過System統一管理擁有相同樓宇數據對象的組件實體,在充分利用計算機性能的基礎上,快速驅動大量模型[4]。圖2為Unity的技術演示,移動大量物體。
雖然大數據時代已然到來,但是與數據相關的市場需求中BI仍然占據了很大份額。BI涉及到智慧城市建設的方方面面,而U3D引擎中針對BI的可視化圖表部分較為靈活可變。

圖2 Unity的技術演示
UGUI是Unity原生的GUI系統,前身是NGUI[5-6]。對于大數據的數據內容展示,相比于Web開發中的echarts,UGUI和其他GUI插件則顯得相形見絀。在Unity中,所有物體都有網格,包括三維模型和GUI。每次頁面上有數據需要更新時,都必須重繪更新元素所在的整張Canvas,帶來極大的性能問題,且對Canvas進行分組的工作非常繁雜。不僅如此,UGUI及其插件對數據圖表的支持存在很大的局限性,較為死板。基于上述種種缺陷,建議采用一種內嵌網頁的插件Embedded Browser來滿足大數據展示的需求。
同樣是基于UGUI的Canvas,不同的是只需要建立一個子物體,即可展示整個數據頁面(頁面需在前端開發好),這樣在有數據更新時只需重繪一次Canvas。嵌入的方式有兩種:直接嵌入瀏覽器網頁,配置好URL即可,適用于實時數據展示;將html文件放入工程,加載嵌入,適用于非實時數據展示。Embedded Browser在Unity中的使用效果如圖3所示。

圖3 Embedded Browser在Unity中的使用效果
大數據可視化中的交互,是指便于用戶對數據進行觀察和分析的一系列操作,貫穿整個可視化進程[7]。設計有效的視覺編碼輔助用戶分析提取和表達這些信息,觀察和研究數據屬性及其相互之間的關系,發現未知的新特征和新現象,是交互的重點。
交互性強是Unity在展示大數據內容上的最大優點。相比于傳統2D界面,Unity可以實現2D數據和3D模型的聯動。例如:城市汽車管控中,更新界面上數據的同時,汽車3D模型可以被不斷更新的數據實時驅動,且汽車的詳細數據可以跟隨汽車展示,展示界面可以是2D的,也可以以3D的形式存在于三維場景中,使得整個系統靈動且形象。
數據和模型的雙向性也是其優點之一。選擇界面上的數據,場景相機可以自動搜索定位到三維場景的物體上,達到一目了然的數據和模型狀態匹配效果。選擇三維場景的物體,也可以展示其詳細數據。
大數據可視化系統的用戶主要分為兩類:一類是數據探索者,他們對數據的情況并不清楚,希望直接控制可視化系統的交互;另一類是數據展示者,他們對數據了如指掌,且數據已經過處理,用戶是被動接受信息。對于后者來說,大數據可視化系統中動畫的使用顯得尤為重要。合適的動畫可以增加可視化的表現力,同時突出想要表達的重要信息,使信息的層次更加分明。
在5G、云渲染等技術普及后,大數據可視化進入一個高速發展階段,國內外各大公司都在競相開發自己的大數據可視化產品。U3D引擎作為當前一個主流的三維可視化開發引擎,在渲染、模塊化開發、跨平臺、通用性、兼容性、即插即用性以及開發周期等綜合性能上,是其他引擎不可比擬的。任何一種媒介都有其自身的屬性,會為在其之上發展的形式帶來不同程度的改變。U3D引擎可為數據可視化帶來巨大改變,推動數據可視化快速發展,拓寬數據可視化的可能性。