















摘要: 針對現有震害模擬可視化方法建模環節存在的不足,設計一種基于SketchUp草圖大師的區域建筑三維建模方法。該方法解決了傳統建模方法中過于依賴原始數據和模型維護困難的問題,實現區域建筑建模的靈活性和模型的可維護性。利用OSG三維渲染引擎和Qt框架搭建震害模擬三維動態可視化平臺,完成區域建筑震害模擬的三維動態可視化。以福建省福州市臺江區某區域為例,對該區域進行三維建筑建模和震害模擬結果的動態可視化展示。結果表明:所提建模方法和平臺具有可行性。
關鍵詞: 區域建筑三維建模;三維動態可視化;震害模擬;草圖大師;OSG三維渲染引擎
中圖分類號: X 43;TP 391.9文獻標志碼: A 文章編號: 1000-5013(2025)01-0038-08
Three-Dimensional Dynamic Visualization of Regional Building Seismic Damage Simulation Base on SketchUp and OSG
YAN Xueyuan1,ZHENG Xinying1,LIU Xuhong2,ZHAO Hanbin1
(1. College of Civil Engineering,Fuzhou University,Fuzhou 350108,China;2. School of Civil Engineering,Fujian University of Technology,Fuzhou 350118,China)
Abstract: A regional building three-dimensional(3D) modeling method based on SketchUp sketch master is designed to solve the shortcomings in the modeling segment of existing seismic damage simulation visualization methods. The method overcomes the problems of traditional modeling methods overdependent on original data and model maintenance difficulties,the flexibility of regional building modeling and the maintainability of the models are achieved. A 3D dynamic visualization platform for seismic damage simulation is constructed using OSG 3D rendering engines and Qt framework,the 3D dynamic visualization of regional building damage simulation is accomplished. Taking Taijiang District,Fuzhou City,Fujian Province as an example,3D building modeling and dynamic visualization displays of seismic damage outcomes are carried out. The results show that the modeling method and platform are feasible.
Keywords: regional building three-dimensional modeling;three-dimensional dynamic visualization;seismic damage simulation;sketch master;OSG three-dimensional rendering engine
目前,中國城市化程度已經達到非常高的水平,大量人口和建筑集中在城鎮區域。一旦城鎮區域發生地震,勢必會造成嚴重人員傷亡和財產損失[1]。經驗和理論表明,合理的震前規劃是城鎮區域抗震減災最為有效的手段之一[2],而震害模擬可視化技術對建筑震害模擬結果進行可視化展示,可有效評估震害預損失,輔助制定震前規劃。因此,利用計算機可視化技術開展震害模擬可視化工作具有十分重要的現實意義。
靜態可視化方法[3-6]采用顏色、破壞紋理貼圖、符號化等方式對建筑震害程度進行可視化展示,是當前震害模擬可視化中比較成熟的技術。然而,該方法僅對建筑的震害結果進行靜態展示,不能體現震中建筑的實時變化情況及震害細節,不具備直觀性,致使建筑震害信息不能在震害損失評估及震前規劃中被充分利用。因此,需要一種更真實、直觀的建筑震害模擬可視化方案。動態可視化方法通過表征在建筑體震害中動態的晃動現象,彌補靜態可視化不夠直觀的缺點,為制定震前規劃提供更為直觀的依據。
在動態可視化研究中,區域建筑三維建模環節是主要部分,模型的準確度和可維護性將直接影響震害模擬工作的意義與應用價值。目前,基于建筑2D數據的豎向拉伸建模法[1,5-12]是震害模擬可視化研究中應用較多的方法。該方法將現有的建筑2D數據作為建模數據源,直接通過建筑輪廓的豎向拉伸完成建模,并利用已有的建筑2D數據(數據來源廣泛,兼顧經濟、快速、批量)建模,十分契合區域建筑震害模擬可視化快速、經濟、大批量的建模需求。但這種方法建立的模型真實感不強,且過于依賴建筑2D數據的準確性。因此,該方法建立的模型的真實感和準確性往往不盡如人意。目前,研究人員的研究重點大都集中于增強模型的真實感[1,9-10,13],而對于解決該方法對建筑2D數據依賴性的研究較少。在眾多建筑建模方法中,基于三維軟件的建模法因其建模靈活、簡單、兼容性強的優點[14-17],被廣泛應用于建筑建模領域。因此,本文基于SketchUp和OSG的區域建筑震害模擬三維動態可視化。
1 基于SketchUp的區域建筑三維建模
建筑2D數據拉伸建模能滿足三維模型快速和經濟的要求,但存在過于依賴原始建筑2D數據、數據更新時間間隔較長、測量誤差較大等問題。若數據本身存在錯誤,將導致建筑模型錯誤,進而直接影響震害模擬工作的意義與應用價值。為解決此問題,研究在建筑2D數據拉伸建模的基礎上,結合三維軟件建模靈活的優點,引入SketchUp三維建模軟件,修正拉伸模型中數據不準確的部分,提升模型的準確度和可維護性。以福建省福州市臺江區某區域為例,對該區域展開三維建筑建模,驗證該方法的可行性。基于SketchUp的區域建筑三維建模技術路線圖,如圖1所示。
1.1 建模數據獲取
區域建筑三維建模所需要的數據,一部分來源于現有建筑輪廓矢量數據(簡稱矢量數據),另一部分來源于實地調研測量數據。因此,使用矢量數據作為建模數據的基礎來源,用于初步生成建筑三維模型;使用實地調研測量獲得的修正數據作為建模數據補充來源,用于錯誤建筑的修正工作。
矢量數據是一種描述建筑物外部輪廓形狀和矢量圖形的2D數據,通常包括建筑的外形、尺寸、高度、地理坐標和空間關系信息。采用地圖軟件獲取所需矢量數據,獲取的同時需將數據轉換成shp(shapfile)格式用于后續處理。矢量數據獲取及處理流程圖,如圖2所示。
修正數據采用實地調研測量的方式獲取。在實際調研中經常出現道路過于狹窄、測量視線被遮擋等復雜情況(圖3)。因此,需要一種靈活、適應復雜測量情況的測量方案。基于此,選用手持激光測距儀(測距儀)和數顯電子角尺(電子角尺)作為距離及角度測量設備,用于獲取問題建筑的輪廓、尺寸和相對位置關系信息。調研主要工作如下:1) 測量獲取問題建筑的輪廓尺寸、高度、相對關系等數據信息,為后續問題建筑的修正工作提供準確的數據來源;2) 收集并匯總區域內所有建筑的建筑年代、結構類型等基本信息,為后續建筑信息展示提供數據來源。
建筑高度修正前、后效果對比圖,如圖4所示。實地調研數據及信息獲取流程圖,如圖5所示。
1.2 模型處理
模型處理工作分為模型前處理工作和模型后處理工作。前處理工作是利用操作引擎(FME)完成shp格式文件的讀取、豎向拉伸建模和從shp格式到skp格式的數據轉換工作,建立區域的初始三維建筑模型。后處理工作利用SketchUp三維建模軟件完成,主要包括問題建筑的修正、建筑模型的分層、輸出3個環節。
在初始建筑三維模型的基礎上,利用SketchUp和實地調研數據對目標區域問題建筑進行修正,解決基于2D建模法過于依賴原始數據的問題,提升建筑模型的準確性,共包括3部分。首先,在初始三維建筑模型中,存在由于拆除而已經不存在的建筑模型,利用SketchUp的刪除指令,結合實際調研情況,刪除多余的問題建筑;其次,對于實際高度與模型數據不同的建筑模型,利用SketchUp的移動指令,結合實際調研的建筑高度數據,修正問題建筑的模型高度;最后,對于缺失及建筑輪廓錯誤的建筑模型,綜合利用SketchUp的直線、旋轉、推拉等各項指令,結合實際調研的問題建筑輪廓、尺寸、高度、相對關系等信息,重建缺失及輪廓錯誤建筑。具體流程有3步:1) 根據問題建筑與現有建筑的相對位置關系對問題建筑進行定位;2) 根據問題建筑的輪廓和尺寸數據重建問題建筑的2D平面輪廓;3) 根據問題建筑的高度信息拉伸建筑模型完成問題建筑的三維模型重建。示例區域修正前后效果對比如圖6所示。
在修正后建筑三維模型的基礎上,利用SketchUp對建筑模型進行分層。SketchUp交錯平面指令實現建筑模型的批量分層工作,用于配合建筑各層震害時程數據展示建筑各層層間位移,提升震害模擬三維動態可視化的真實感。
分層后區域建筑局部三維模型效果圖,如圖7所示。分層后區域建筑三維模型效果圖,如圖8所示。在分層后建筑三維模型的基礎上,利用SketchUp將模型分組、命名并輸出為obj格式文件,以便后續導入區域建筑震害模擬三維動態可視化平臺進行三維動態渲染。
2 區域建筑震害模擬三維動態可視化平臺
2.1 需求分析及平臺框架設計
震害模擬動態可視化可通過更加直觀的方式幫助用戶獲取震害詳細信息,從而助力震前規劃。因此,對震害模擬可視化平臺提出了界面簡潔、操作簡單、實現用戶靈活、直觀地獲取全面的震害模擬信息的需求。基于此,開發區域建筑震害模擬三維動態可視化平臺的架構,該架構由基于OSG的可視化程序框架和基于Qt的圖形用戶界面框架搭建而成[18]。
2.2 基于OSG的震害模擬可視化程序框架
基于OSG的震害模擬可視化程序框架總架構,如圖9所示。該框架基于OSG開源圖形引擎搭建,由匹配模塊、三維動態渲染模塊、用戶操作交互模塊組成。
匹配模塊負責識別區域建筑三維模型,與導入的震害模擬時程數據、建筑信息相匹配。震害模擬時程數據主要為層間位移角,區域建筑信息包括建筑面積、層數、用途、建設年代等。該模塊主要基于OSG中自帶的訪問者機制(NodeVisitor)開發,該機制主要用于對OSG場景樹中各個節點的訪問和執行預定操作。該模塊能夠遍歷區域建筑三維模型中的場景樹,識別每個建筑模型節點,并執行預定的數據匹配操作,從而實現建筑模型識別,以及建筑信、息震害時程數據的匹配。
三維動態渲染模塊根據震害模擬時程數據實時更新建筑模型,繪制建筑震害模擬動畫。將區域建筑破壞狀態劃分為基本完好、輕微破壞、中等破壞、嚴重破壞、毀壞5個等級。對于多層常規結構[19],完好狀態下應保持彈性狀態,并規定彈性位移角限值取1/550;有輕微塑性變形時,變形應小于2倍彈性位移限值;中等破壞狀態下的層間位移限值應取彈性限值和彈塑性限值的平均值;嚴重破壞狀態下的層間位移限值應取90%的不倒塌彈塑性變形限值。因此,將基本完好狀態下位移角限值取為1/550,輕微破壞的位移角限值取0.004 0,中等破壞下位移角限值取1/120,嚴重破壞狀態下的位移角限值取0.016。對于毀壞狀態下的位移角限值則取值為0.033 3[20]。
位移判定準則,如表1所示。表1中:θ為層間位移角建議值。
三維動態渲染模塊主要基于OSG中自帶的更新回調機制(UpdateCallback)開發,該機制主要用于完成需要在每幀繪制時執行的工作。該模塊能夠在每幀繪制時訪問震害時程位移數據,并根據位移數據動態更新建筑模型,通過顏色展示建筑震害,從而實現根據震害模擬時程數據實時更新建筑模型,繪制建筑震害模擬動畫。
用戶操作交互模塊負責接收并響應用戶對三維場景操作,實現用戶對場景的漫游及建筑信息的瀏覽功能。該模塊主要基于OSG中自帶的事件更新回調機制(EventCallback)開發,該機制主要完成用戶臨時定義需要執行的工作。該模塊能夠接收用戶對三維場景的拖拽、縮放等視角操作和單擊建筑模型的鼠標操作,并根據操作切換場景照相機視角或彈出建筑信息展示窗口,從而實現三維場景漫游和建筑信息瀏覽功能。
2.3 基于Qt的圖形用戶界面框架
基于Qt的圖形用戶界面框架總架構,如圖10所示。該框架基于Qt圖形用戶界面開發框架搭建,由三維場景交互模塊、程序數據交互模塊和程序窗口界面模塊組成。
三維場景交互模塊負責將OSG三維場景嵌入Qt開發的用戶界面中。該模塊主要基于Qt中自帶的信號與槽機制和OSG中自帶的osgQOpenGLwidget類開發。其中,信號與槽機制涉及到信號與槽兩個概念,前者是指對象發出的事件或狀態變化情況的通知;后者是指對象中被用來響應該通知的函數,可以執行特定的操作。二者通過QObject::connect()函數進行連接,當信號相關聯的事件發生時,對象會發出相應的信號,與之連接的槽函數將自動被調用,執行用戶自定義的操作。osgQOpenGLwidget類中添加了Qt與OSG交互所需的功能與接口。在該模塊中,使用osgQOpenGLwidget類對象完成三維場景的初始化操作,即準備接收繪制指令并渲染OSG三維場景。這時,osgQOpenGLwidget類對象會發出初始化完成的信號,并連接到自行設計的槽函數中執行其中三維場景嵌入用戶界面的操作,從而實現三維場景與用戶界面的交互。
程序數據交互模塊負責用戶界面功能的邏輯實現和封裝用戶界面對震害模擬可視化程序框架中數據結構的訪問和操作,實現文件導入,以及對三維場景渲染控制和子窗口呼出的控制。該模塊主要基于C++的全局變量和信號與槽機制開發。全局變量是指在函數外部定義,可以被本程序所有對象或函數引用的變量。在該模塊中,將基于OSG的震害模擬可視化程序中需要與用戶界面交互的關鍵變量統一設置為全局變量,并設計用戶界面邏輯,實現操作關鍵全局變量。在用戶對界面進行操作時,利用信號與槽機制觸發信號,連接槽函數執行其中對全局變量或其余變量的操作。
程序窗口界面模塊負責繪制程序所需的主窗口和子窗口的用戶界面及其控件。該模塊主要基于Qt中自帶的QWidget類及其子類開發。在該模塊中,設計主窗口和子窗口的用戶界面及其控件,并繪制其布局。
3 示例及平臺介紹
選取福建省福州市臺江區某區域為示例,使用區域建筑震害模擬三維動態可視化平臺對該區域進行震害模擬結果的三維動態可視化展示,驗證該可視化平臺的可行性。
3.1 示例區域概述
福州市臺江區共有100余棟多高層城市建筑,涵蓋了包括鋼筋混凝土結構、磚混結構、底部框架上部磚混結構在內的多種結構類型,覆蓋范圍廣泛,具有很強的普適性和參考價值。
3.2 平臺環境概述
區域建筑震害模擬三維動態可視化平臺的開發和運行借助Visual Studio集成開發環境(IDE)、OSG等軟件和CPU、顯卡等硬件的配合。平臺開發環境,如表2所示。
3.3 平臺功能介紹
區域建筑震害模擬三維動態可視化平臺功能包括文件導入模塊、渲染控制模塊和建筑信息展示模塊。其中,文件導入模塊負責導入和解析平臺展示所需的區域建筑三維模型文件、震害模擬時程數據和區域建筑信息文件;渲染控制模塊負責控制渲染的開始與暫停、渲染的幀率及不同的震害動畫展示模式;建筑信息展示模塊負責展示具體建筑的建造年代、建筑類型、震害程度等信息。各模塊的控制界面,如圖11~14所示。
4 結論
基于SketchUp三維軟件、OSG開源圖形引擎和Qt圖形用戶界面開發框架,實現區域建筑的三維建模和其震害模擬結果的三維動態可視化展示,并對福州市臺江區某區域建筑的震害模擬結果進行三維動態可視化展示。
1) 提出基于SketchUp的區域建筑三維建模方法。該方法解決了傳統震害模擬可視化建模方法中過于依賴原始數據和模型更新維護困難的問題,實現高效、經濟、靈活、精確、輕量的區域建筑三維建模,適用于區域建筑震害模擬結果的三維動態可視化展示。
2) 開發區域建筑震害模擬三維動態可視化平臺。該平臺界面簡潔,操作簡單,能夠全面展示區域建筑震害的過程,輔助用戶更加靈活、直觀地獲取區域建筑震害信息。
3) 研究結果能夠用于震前規劃制定、震后救災開展和地震安全教育等方面工作,為提高城鎮區域建筑韌性和抗震減災工作提供技術支持。參考文獻:
[1] 許鎮,陸新征,韓博,等.城市區域建筑震害高真實度模擬[J].土木工程學報,2014,47(7):46-52.DOI:10.15951/j.tmgcxb.2014.07.032.
[2] 張鵬程.村鎮區域砌體結構信息智能獲取與震害預測[D].大連:大連理工大學,2021.DOI:10.26991/d.cnki.gdllu.2021.000477.
[3] 陳相兆,孫柏濤,李蕓蕓,等.基于CityEngine的城市建筑群三維震害模擬研究[J].地震工程與工程振動,2018,38(4):93-99.DOI:10.13197/j.eeev.2018.04.93.chenxz.014.
[4] ?ZSOY? A E,SANRI K I,üNEN H C.Visualization of seismic vulnerability of buildings with the use of a mobile data transmission and an automated GIS-based tool[J].Structures,2020,24:50-58.DOI:10.1016/j.istruc.2020.01.004.
[5] ZHAI Yongmei,CHEN Shenglong.A seismic hazard prediction system for urban buildings based on time-history analysis[J].Mathematical Problems in Engineering,2020,2020:1-18.DOI:10.1155/2020/7367434.
[6] ZHAI Yongmei,CHEN Shenglong,OUYANG Qianwen.GIS-based seismic hazard prediction system for urban earthquake disaster prevention planning[J].Sustainability,2019,11(9):2620.DOI:10.3390/su11092620.
[7] HORI M,ICHIMURA T,KOKETSU K,et al.Current state of integrated earthquake simulation for earthquake hazard and disaster[J].Journal of Seismology,2008,12(2):307-321.DOI:10.1007/s10950-007-9083-x.
[8] 韓博,陸新征,許鎮,等.基于高性能GPU計算的城市建筑群震害模擬[J].自然災害學報,2012,21(5):6-22.DOI:10.13577/j.jnd.2012.0503.
[9] 孫柏濤.城市震害三維模擬系統的實現方法[J].地震工程與工程振動,2010,30(5):1-8.DOI:10.13197/j.eeev.2010.05.001.
[10] 王東明,陳敬一,高杰.基于地震巨災情景構建的應急救援演練虛擬仿真系統架構與設計[J].自然災害學報,2021,30(4):18-34.DOI:10.13577/j.jnd.2021.0403.
[11] 張燦.基于地震動參數的城市建筑震害情景構建[D].蘭州:中國地震局蘭州地震研究所,2022.DOI:10.27491/d.cnki.gzdls.2022.000016.
[12] 王可鑫.基于基督城震害和精細化仿真的城市抗震韌性研究[D].哈爾濱:中國地震局工程力學研究所,2020.DOI:10.27490/d.cnki.ggjgy.2020.000052.
[13] 陸新征,田源,許鎮,等.一種新型城市地震災害模擬方法:城市抗震彈塑性分析方法[J].科學通報,2020,65(11):1055-1062.DOI:10.1360/TB-2019-0679.
[14] BARTONEK D,BUDAY M.Problems of creation and usage of 3D model of structures and theirs possible solution[J].Symmetry,2020,12(1):181.DOI:10.3390/sym12010181.
[15] 許捍衛,房曉亮,任家勇,等.基于SketchUp的城市三維建模技術[J].測繪科學,2011,36(1):213-214.
[16] 谷彥斐,徐泮林,丁鵬文,等.基于SketchUp與ArcGIS的數字校園設計與實現[J].測繪與空間地理信息,2019,42(9):148-150.
[17] 單杰,李志鑫,張文元.大規模三維城市建模進展[J].測繪學報,2019,48(12):1523-1541.
[18] 李昌明,李東年,趙正旭,等.基于OSG與Qt的FAST三維場景仿真[J].計算機應用與軟件,2022,39(2):1-5,62.
[19] 中國建筑科學研究院.建筑抗震設計規范: GB 50011-2010[S].北京:中國建筑工業出版社,2016.
[20] 清華大學、西南交通大學、北京交通大學土木工程結構專家組.汶川地震建筑震害分析[J].建筑結構學報,2008,29(4):1-9.DOI:10.14006/j.jzjgxb.2008.04.001.
(責任編輯:陳志賢 英文審校:方德平)