李爽 劉葦 章嘯程 宋百川
上??睖y設計研究院有限公司 上海 200335
三維可視化平臺[1]是利用計算機圖形學和圖像處理技術,將數據、圖紙轉換成三維圖形,通過顯示終端進行可視化描述,是可視化應用開發中最為基礎也最為重要的部分[2]?,F有GIS與BIM服務采用的三維可視化技術較多[3],包括但不限于Bentley廠商的iModel平臺[4]、北京華創的三維可視化平臺、開建BIMBOX,Cesium[5]等。隨著可視化技術廠商的增多,以及落地項目數量的逐漸積累,導致使用的引擎也越來越多,引擎眾多導致圖形操作接口繁雜,單套圖形操作接口只能在對應引擎技術下使用,其他引擎下服務無法使用該圖形操作接口進行可視化功能開發,極大的提高了開發成本與開發難度。
因此,有必要開展BIM+GIS可視化開發框架的集成研究,建設一套支持多種引擎并支持無限擴展的圖形操作接口,最大限度的實現各類服務在可視化圖形操作接口層面的技術統一,并以底層接口的方式為后續項目提供BIM和GIS服務接口支撐技術與工具。
為了保證模型三維在BIM引擎讀取時接口統一,首先需要將模型的幾何、材質信息進行標準化。
2.1.1 可視化信息標準化
對于模型幾何信息,需要將原始的dgn、rvt模型中的幾何數據轉化為由三角面片組成的Mesh,每一個構件轉化為一個獨立的Mesh體,每個Mesh由若干個Primitive(圖元)組成,其中Primitive保存了二進制的三角面的頂點數據和索引信息。
對于材質信息,將整個模型中的所有不同材質保存在材質集中,并對每種材質創建Material Id,與構件的Element Id創建關聯。材質屬性暫時劃分為不透明材質:包括顏色、貼圖、反光度等屬性;半透明材質:包括顏色、透明度等屬性。
圖1 BIM內部幾何信息結構
2.1.2 數據標準化
設定一套數據標準,現階段簡單設定模型的ID、空間、系統、分類幾個信息的所在字段,并用標準屬性來輸出
為了方便對模型數據進行檢索,并提高模型加載速度,我們需要對模型屬性數據進行標準化獨立存儲,每個模型的屬性數據通過構件的Element ID與三維模型進行關聯?,F階段定義模型的屬性表結構如下:
2.1.3 其他三維格式支持
支持通用的標準三維格式例如obj、3ds、gltf等。這些三維格式都是國際化通用標準,因此可以通過研究對應的格式說明文檔,編寫模型解析加載器,以擴展插件的形式嵌入BIM引擎中。
現有多引擎并行的方式能夠擷取各引擎的優點,在合適的場景中使用合適的引擎加載數據和服務,然而對于開發人員來說會增加引擎接入的工作量,寫不同引擎采用的依賴版本也可能對前端調用產生影響,因此研究設計一套可視化標準框架,將不同引擎的調用方法封裝為同一套開發接口,既能屏蔽不同引擎帶來的依賴庫混亂問題,也能統一上層應用開發過程,減少開發人員對不同引擎架構的學習過程。
圖形引擎的封裝可以分為兩個部分,前端方法的封裝和數據接口的封裝。
2.2.1 前端方法封裝
前端方法分為二三維前端操作和前端集成組件:
二/三維前端操作
這部分前端操作將被封裝為標準方法(其中一部分既適用于二維和三維,一部分僅在三維中有效),這些方法可以采用方法函數調用,也提供相應的觸發的按鈕圖標前端。
(1)前端集成組件
表3 前端集成組件列表
(2)GIS相關組件
表4 GIS相關前端組件列表
2.2.2 數據接口封裝
表5 數據接口列表
2.2.3 三維操作接口
依據接口調用標準,以下是三維視圖操作的接口。
表6 常用三維操作列表
表7 常用三維工具列表
表8 高級三維工具列表
通過建設本框架,可將多種GIS服務、BIM服務可視化引擎技術與內部搭建的BIM+GIS數據集成管理平臺結合,實現了從數據上傳->數據管理->服務發布->服務管理->服務可視化->圖形可視化操作功能開發->場景搭建的全過程統一納管,為后續項目在三維可視化服務層面的系統研發、服務管理等方面提供了平臺支持與接口支持,減少了開發人員對不同引擎架構的學習過程,提高了工作效率并降低了項目成本。