孫源 王國光 趙杏英 汪洋 董大鑾
摘要:目前,國內(nèi)對建筑信息模型(BIM)在項目中的應(yīng)用需求越發(fā)迫切,數(shù)據(jù)冗雜的BIM大體量模型嚴(yán)重制約著BIM技術(shù)在實際應(yīng)用中的使用。大體量BIM模型在展示過程中會遇到加載緩慢、顯示卡頓的問題。為此,提出搭建BIM輕量化體系,通過自主研發(fā)的BIM仿真系統(tǒng)平臺,為大體量BIM模型提供審閱瀏覽平臺。采用幾何簡化算法、渲染優(yōu)化算法、文件格式優(yōu)化及數(shù)據(jù)結(jié)構(gòu)設(shè)計4種方法對BIM輕量化體系進(jìn)行搭建。對BIM模型三角面使用邊折疊算法進(jìn)行優(yōu)化,根據(jù)多源異構(gòu)數(shù)據(jù)的模型設(shè)計相應(yīng)的文件格式和數(shù)據(jù)結(jié)構(gòu),在渲染層面上,自主研究并實現(xiàn)使用PagedLOD技術(shù)與幾何簡化模型結(jié)合、剔除與繪制雙線程方法、批次繪制渲染優(yōu)化技術(shù),完成BIM輕量化體系的初步搭建工作并于平臺中驗證。實例驗證效果顯示:輕量化方法體系的應(yīng)用使平臺達(dá)到了快速加載大體量BIM模型并流暢展示的目標(biāo),擁有多源異構(gòu)數(shù)據(jù)模型在同一平臺展示的能力。
關(guān) 鍵 詞:BIM; 模型輕量化; PagedLOD; 多線程
中圖法分類號: TP391.41
文獻(xiàn)標(biāo)志碼: A
DOI:10.16232/j.cnki.1001-4179.2021.12.036
0 引 言
在不斷推廣的大平臺框架下,各種工程項目的數(shù)字交付后,龐大的BIM模型數(shù)據(jù)需要流暢地在仿真平臺上進(jìn)行模擬和展示。在實際應(yīng)用中,三維模型瀏覽時大體量模型無法加載或經(jīng)常加載緩慢會造成應(yīng)用性欠佳的問題。若要實現(xiàn)在大平臺下瀏覽往往動輒體量巨大的BIM模型,無論是從設(shè)計層面還是從應(yīng)用層面,加載和顯示的延遲卡頓問題都阻礙了BIM在設(shè)計、施工、運(yùn)維等方面發(fā)揮其優(yōu)勢。IFC格式作為BIM領(lǐng)域普遍采用的標(biāo)準(zhǔn)格式,具有完整的參數(shù)信息,由于其是基于文本的非壓縮文件格式,致使IFC文件加載時間較長。另外,未經(jīng)輕量化處理的BIM模型使用時會遇到許多與性能相關(guān)的問題,如文件龐大導(dǎo)致儲存和傳遞成本高、數(shù)據(jù)難以在輕量級渲染平臺中審閱。特別是龐大的三角網(wǎng)數(shù)量和繁復(fù)的紋理樣式,都導(dǎo)致了其在實際使用過程中難以方便快捷地進(jìn)行瀏覽和傳輸。設(shè)備在加載和渲染BIM模型時往往對設(shè)備本身有較高的要求,也阻礙了BIM模型便捷化發(fā)展的使用初衷。因此,BIM數(shù)據(jù)輕量化是BIM技術(shù)應(yīng)用中的關(guān)鍵環(huán)節(jié)。
目前已有眾多研究人員在BIM模型輕量化上做了不少的工作,涉及了輕量化方法中的文件設(shè)計、數(shù)據(jù)結(jié)構(gòu)、幾何優(yōu)化及渲染方面,以及對專業(yè)模型的處理工作。例如,陳慶財?shù)萚2]對BIM模型數(shù)據(jù)設(shè)計了輕量化的文件格式(LBSF),并設(shè)計了輕量化的數(shù)據(jù)格式;操鋒等[3]對文件數(shù)據(jù)進(jìn)行組織及數(shù)據(jù)壓縮優(yōu)化;陳龍等[4]使用細(xì)節(jié)層次(LOD)技術(shù)和三角面簡化技術(shù),逐級降低模型頂點和三角面數(shù)量;王云龍[5]、劉曉利[6]、張必強(qiáng)[7]、李現(xiàn)民[8]、馮翔[9]、杜曉暉[10]等通過研究邊折疊算法提出了相應(yīng)的簡化算法,對BIM模型輕量化在幾何模型簡化上做了進(jìn)一步優(yōu)化研究;金廣龍[11]、馬金忠[12]、白雪[13]等對BIM輕量化中BIM模型加載與渲染中的技術(shù)方法進(jìn)行了研究,對渲染剔除及批次合并進(jìn)行優(yōu)化,研究了渲染處理和數(shù)據(jù)處理輕量化技術(shù)方法;趙維等[14]提出了自適應(yīng)多線程渲染技術(shù),為渲染輕量化技術(shù)的開發(fā)提供了參考和借鑒;張萍[15]在BIM專業(yè)模型的處理標(biāo)準(zhǔn)基礎(chǔ)上探討了渲染及幾何輕量化方法;毛旭陽[16]、余芳強(qiáng)[17]、郭思怡[18]、劉北勝[19]等分別對城市、古建筑、建筑運(yùn)維、云渲染多種場景下的輕量化技術(shù)進(jìn)行了探討。盡管已經(jīng)有大量研究人員在BIM輕量化方法中做出了許多工作,但如何在其研究基礎(chǔ)上搭建起更加完備成熟的BIM輕量化體系尚未研究透徹。
本文使用BIM仿真系統(tǒng)平臺,通過設(shè)計文件格式、數(shù)據(jù)結(jié)構(gòu)、幾何簡化、渲染優(yōu)化4種輕量化方法,研究4種方法在BIM模型加載與瀏覽中的局限性及其優(yōu)勢,取長補(bǔ)短,以搭建BIM輕量化體系。從平臺需求出發(fā),對BIM模型三角化幾何描述使用邊折疊算法進(jìn)行優(yōu)化,同時在文件數(shù)據(jù)層上從多源異構(gòu)數(shù)據(jù)的模型要求出發(fā)設(shè)計了相應(yīng)的文件格式和數(shù)據(jù)結(jié)構(gòu);在渲染層面上自主研究并實現(xiàn)使用分頁細(xì)節(jié)層次模型(PagedLOD)技術(shù)與幾何簡化模型結(jié)合、剔除與繪制雙線程方法、批次繪制等渲染優(yōu)化技術(shù),實現(xiàn)平臺展示流暢的渲染效果,對BIM輕量化體系中所用到的方法進(jìn)行研究優(yōu)化,使其更加契合實際應(yīng)用。
1 研究思路
隨著BIM輕量化技術(shù)的不斷進(jìn)步,處理方法逐漸成熟,綜合來看主要分為幾何算法優(yōu)化、文件格式優(yōu)化、數(shù)據(jù)優(yōu)化、渲染優(yōu)化4種優(yōu)化方向。
(1) 幾何算法優(yōu)化主要有邊折疊算法及其變種方法,通過優(yōu)化三角面片數(shù)與頂點數(shù),減小數(shù)據(jù)體量的同時減輕渲染壓力,達(dá)到輕量化的目的。
(2) 文件格式優(yōu)化包括數(shù)據(jù)剔重、數(shù)據(jù)分組、空間索引等,數(shù)據(jù)剔重即將重復(fù)出現(xiàn)在文件格式中的數(shù)據(jù)進(jìn)行分類處理,結(jié)合數(shù)據(jù)分組操作,方便數(shù)據(jù)在各個組內(nèi)的壓縮和解壓縮。
(3) 數(shù)據(jù)優(yōu)化常見的方法有數(shù)據(jù)壓縮、數(shù)據(jù)分解等。數(shù)據(jù)壓縮需要有相應(yīng)的壓縮及解壓縮算法支撐,部分廠商在壓縮過程中還會對數(shù)據(jù)進(jìn)行加密操作。數(shù)據(jù)分解關(guān)鍵在于對數(shù)據(jù)進(jìn)行細(xì)節(jié)層次(LOD)處理。
(4) 渲染優(yōu)化主要思路即為遮擋剔除和批次繪制,當(dāng)視圖中一些構(gòu)件物體距離視點較遠(yuǎn),其像素投射在屏幕上的數(shù)量小于一個閾值時,將其從內(nèi)存中剔除,同時視野外的物體數(shù)據(jù)也不會出現(xiàn)在內(nèi)存中,以確保流暢的渲染。此外,在BIM模型中,并非每個參數(shù)都參與到項目當(dāng)前需求之中,可以根據(jù)項目需求剔除系統(tǒng)不需要的參數(shù),只加載項目需要的數(shù)據(jù),使BIM模型縮減到流暢渲染的程度。
目前BIM專業(yè)模型輕量化的方法多種多樣,如何快捷有效地將大規(guī)模的BIM模型數(shù)據(jù)可視化地導(dǎo)入與展示仍有待深入研究,在現(xiàn)有的研究上轉(zhuǎn)化為可以推動BIM實際應(yīng)用的成果是本次研究的主要目的。具體的成果方案設(shè)計思路如圖1所示。
2 方法與設(shè)計
2.1 關(guān)鍵方法
方法的選擇需要從多源異構(gòu)的數(shù)據(jù)匯聚與模型整合的項目需求出發(fā),將多種來源的不同格式模型數(shù)據(jù)、不同專業(yè)的工程模型通過IFC解析整合到統(tǒng)一格式文件中;同時將巖土、鋼結(jié)構(gòu)、混凝土等工程相關(guān)計算模型經(jīng)過解析重構(gòu),整合至平臺文件中。因此,在輕量化方法的選擇中,需要有多方面的考量。
根據(jù)平臺需求,對模型文件格式進(jìn)行設(shè)計,使其適用于多源異構(gòu)的模型數(shù)據(jù)匯聚。將海量的數(shù)據(jù)整合至文件中后對文件輕量化,而文件的輕量化方法雖然實現(xiàn)了文件大小及文件內(nèi)數(shù)據(jù)的輕量化,使模型文件加載速度更快、傳輸及存儲效率更高,但并不能解決大體量模型在審閱時遇到的顯示幀數(shù)較低的問題。此時圖形相關(guān)算法設(shè)計尤為重要,將大體量模型加入至平臺中進(jìn)行操作時,渲染優(yōu)化可以使平臺操作時保持較高的幀數(shù),有更好的操作體驗。
渲染中,剔除操作對于減少渲染繪制圖元數(shù)量有很大作用,同時BIM模型十分適用于批次繪制方法,原因在于BIM模型往往有大量渲染信息相同的圖元,能夠同時提交用于渲染。一般兩個步驟并不能同時進(jìn)行,正常的流程必須為先進(jìn)行剔除,后將剔除后的圖元提交至繪制操作,在實際應(yīng)用中該流程對顯示幀率有較大影響。因此本文從實際出發(fā),考慮到BIM模型對實時動態(tài)渲染最新數(shù)據(jù)的需求不高,針對性地設(shè)計了剔除與繪制雙線程方法,顯著優(yōu)化了顯示幀數(shù)。
BIM模型通過幾何簡化的輕量化方法,可得到一個三角面片數(shù)量遠(yuǎn)小于原始模型的新模型,面片數(shù)據(jù)量得到極大的縮減,渲染速度得到很大的提升,但新模型比原始模型精細(xì)程度有所降低,有時會出現(xiàn)幾何特征發(fā)生改變的情況。
分頁細(xì)節(jié)層次(PagedLOD)用于將場景中的物體創(chuàng)建為多個顯示層次,可根據(jù)觀察視點與物體的距離選擇應(yīng)顯示的圖像節(jié)點或根據(jù)模型節(jié)點占據(jù)像素大小控制節(jié)點顯示,達(dá)到減少渲染壓力提高顯示幀率的效果。其優(yōu)點在于不顯示的節(jié)點小于一定像素后對模型的審閱造成的影響并不明顯,相比于對渲染效率的提升,PagedLOD技術(shù)可以視為一個輕量化方法中一個很好的選擇。分頁細(xì)節(jié)層次(PagedLOD)方法與幾何簡化方法各有優(yōu)劣。本文根據(jù)使用條件設(shè)計了兩者結(jié)合的輕量化方法。思路為:當(dāng)視點距離模型較遠(yuǎn)時,使用幾何簡化后的新模型,視覺上與原始模型并無差距;當(dāng)模型構(gòu)件占據(jù)的像素增多時,使用未經(jīng)幾何簡化的原模型,使模型原有細(xì)節(jié)全面展現(xiàn),此時因視口范圍內(nèi)面片數(shù)較少,渲染效率依然能得到保證。
2.2 針對幾何數(shù)據(jù)的算法設(shè)計
幾何數(shù)據(jù)轉(zhuǎn)換的方法一般基于參數(shù)化幾何描述和三角化幾何描述兩種處理方法。前者使用多個數(shù)學(xué)參數(shù)描述一個幾何體,如圓柱體可以使用底面坐標(biāo)、底面半徑加上圓柱高度3個參數(shù),能夠?qū)蝹€物體做到最優(yōu)簡化;后者則是使用多個三角面片描述一個幾何體,平面與曲面均可以被有限個三角面片擬合,模型的精度隨著三角面片的數(shù)量增多而增加,隨著三角面片數(shù)量增加模型的體量也會有明顯增加。根據(jù)數(shù)據(jù)結(jié)構(gòu)設(shè)計,文件中不保存參數(shù)化信息,因此幾何優(yōu)化算法主要針對于三角化幾何描述的情形進(jìn)行優(yōu)化。
三角化幾何描述可以通過盡量不改變模型外觀的情況下盡量減少三角面片數(shù)的思路進(jìn)行優(yōu)化。常使用的方法有邊折疊算法,每次簡化可以減少模型的兩個面片和一條邊,可以生成連續(xù)的細(xì)節(jié)層次,并且有著相應(yīng)的處理紋理數(shù)據(jù)的算法。具體的算法設(shè)計為對模型的每一條邊計算得出一個固定的損失值,在算法流程中通過不斷地迭代,每一次將模型中損失值最小的邊移除并折疊后,重新計算現(xiàn)有各個邊新的損失值,迭代至達(dá)到給定的簡化程度為止。幾何簡化算法設(shè)計需滿足如下要求:
(1) BIM模型數(shù)據(jù)經(jīng)過優(yōu)化后,不影響模型信息的審閱。
(2) BIM模型在經(jīng)過簡化后不會丟失重要的幾何特征。
(3) 平臺可根據(jù)模型大小及渲染效率判斷是否需要對幾何數(shù)據(jù)進(jìn)行優(yōu)化。
基于該平臺對BIM模型數(shù)據(jù)的要求,通過對采樣率和最大誤差等參數(shù)進(jìn)行調(diào)試,對不同體量和精細(xì)程度的模型采用不同程度的簡化,優(yōu)化誤差算法,使用改進(jìn)的邊折疊算法(見圖2),盡量避免簡化過程中的幾何特征丟失情況。
2.3 文件格式數(shù)據(jù)結(jié)構(gòu)及設(shè)計
根據(jù)該平臺需要,文件格式設(shè)計應(yīng)滿足以下需求:
(1) 文件數(shù)據(jù)應(yīng)盡量不冗余,刪除重復(fù)的幾何及屬性數(shù)據(jù)。
(2) 文件具有可擴(kuò)展性,允許增加新的異構(gòu)數(shù)據(jù)來源。
(3) 文件的索引管理清晰,便于查詢多源異構(gòu)數(shù)據(jù)的文件信息。
(4) 文件格式的讀取與寫入性能應(yīng)考慮可視化性能,方便導(dǎo)入、打開與保存。
文件格式的設(shè)計依托于數(shù)據(jù)庫機(jī)制,使用數(shù)據(jù)庫作為數(shù)據(jù)的存儲方式,能夠?qū)崿F(xiàn)多源異構(gòu)模型文件的節(jié)點、模型、屬性及材質(zhì)等數(shù)據(jù)信息的索引管理,并且能兼容json文件,存儲項目信息、工程配置、過程記錄等信息。利用數(shù)據(jù)庫機(jī)制,文件具有很強(qiáng)的可擴(kuò)展性,方便多源異構(gòu)數(shù)據(jù)的導(dǎo)入與導(dǎo)出。數(shù)據(jù)結(jié)構(gòu)的設(shè)計依托于不同的模型數(shù)據(jù)要求,多源異構(gòu)的數(shù)據(jù)信息要求數(shù)據(jù)結(jié)構(gòu)支持多樣化。
數(shù)據(jù)結(jié)構(gòu)的設(shè)計分為以下3點:
(1) 邏輯結(jié)構(gòu)設(shè)計。繼承BIM模型數(shù)據(jù)的邏輯結(jié)構(gòu)設(shè)計,以樹結(jié)構(gòu)為主要邏輯結(jié)構(gòu),建立以構(gòu)件id為索引的多個數(shù)據(jù)表,包含空間位置數(shù)據(jù)表、紋理信息數(shù)據(jù)表、屬性數(shù)據(jù)表等,從而清晰存儲管理多源異構(gòu)模型數(shù)據(jù)。紋理數(shù)據(jù)以哈希值為索引,相同的紋理只存儲一次,將紋理數(shù)據(jù)量顯著壓縮,實現(xiàn)了文件數(shù)據(jù)量的縮小。
(2) 物理結(jié)構(gòu)設(shè)計。物理數(shù)據(jù)結(jié)構(gòu)設(shè)計主要利用已確定的邏輯數(shù)據(jù)結(jié)構(gòu),以及在實際使用中對數(shù)據(jù)的使用要求選擇合適的存儲方式。BIM數(shù)據(jù)文件作為可傳輸?shù)募写鎯Ψ绞?,便于對BIM數(shù)據(jù)在軟件中的讀取,選擇的存儲結(jié)構(gòu)為順序存儲結(jié)構(gòu),方便對數(shù)據(jù)進(jìn)行檢索遍歷。
(3) 數(shù)據(jù)結(jié)構(gòu)與程序關(guān)聯(lián)設(shè)計。根據(jù)軟件需求,設(shè)定各類信息對應(yīng)增刪改查功能權(quán)限,從而保護(hù)數(shù)據(jù)安全性。
平臺設(shè)計的數(shù)據(jù)結(jié)構(gòu)具備存儲管理“時間+空間+屬性+符號”信息,繼承BIM數(shù)據(jù)的體系結(jié)構(gòu)、幾何、參數(shù)、材質(zhì)、顏色、編碼及屬性信息,支持存儲多個虛擬維度的空間屬性數(shù)據(jù),支持自定義調(diào)整屬性層級、多個屬性組織維度。
2.4 渲染優(yōu)化設(shè)計
渲染優(yōu)化的目標(biāo)是能夠流暢地實時繪制BIM模型,使之能達(dá)到繪制幀率不低于30幀/s,但由于BIM數(shù)據(jù)體量一般都較大,模型三角面片數(shù)量動輒上千萬,若不對渲染方式進(jìn)行優(yōu)化,解決渲染過程中的內(nèi)存開銷過大問題,則正常電腦很難滿足實時繪制要求。本文采用PagedLOD技術(shù)完成對渲染優(yōu)化設(shè)計。
LOD其算法步驟如下:
(1) 設(shè)定的像素模式(計算包圍球在屏幕上占有的像素大小)。
(2) 比較范圍列表(保存所有子節(jié)點的范圍)的尺寸與子節(jié)點數(shù)量,如果小于子節(jié)點數(shù)量就讓子節(jié)點數(shù)量與范圍列表的數(shù)量相等。
(3) 遍歷所有子節(jié)點,在范圍內(nèi)的就顯示,不顯示的節(jié)點將不會被渲染。
PagedLOD繼承了LOD,其遍歷器比LOD復(fù)雜得多,其算法步驟如下(見圖3):
(1) 如果遍歷器類型是剔除遍歷,則把該遍歷器上一幀遍歷完成后的幀數(shù)記錄下來。
(2) 對于每一個子節(jié)點計算其像素,跟LOD的相同。
(3) 循環(huán)范圍列表(該列表保存了所有子節(jié)點的范圍),判斷剛才計算到的像素是否在某個范圍列表里面,如果范圍鏈的尺寸沒有超過當(dāng)前子節(jié)點的數(shù)量就顯示。
(4) 加載之前消失的節(jié)點。
此外,當(dāng)模型數(shù)據(jù)體量巨大,如果所有的構(gòu)件都被繪制會浪費(fèi)大量的系統(tǒng)資源,例如建筑物內(nèi)部的機(jī)電設(shè)備等,運(yùn)用遮擋剔除和批次繪制技術(shù),可以大幅度提升整體渲染效率。遮擋剔除技術(shù)可以剔除場景當(dāng)前視口中被遮擋的物體,用八叉樹算法對所繪制的圖元進(jìn)行空間索引,計算當(dāng)前視口下所要剔除的圖元,以此做到只繪制最外層的物體,從而提升渲染效率。
批量繪制技術(shù)即當(dāng)一個物體繪制到屏幕上時便需要發(fā)起一次繪制命令,需要耗費(fèi)大量的CPU資源來調(diào)用渲染管線。通過將模型物體合并到一次的繪制中,可以減少大量的繪制命令調(diào)用次數(shù),能夠節(jié)省CPU資源,從而提升渲染流暢度。批量繪制技術(shù)往往會涉及到靜態(tài)批量合并或者動態(tài)批量合并兩種策略,前者是通過預(yù)先的處理以達(dá)到合并目的,后者則是在每一幀的過程中進(jìn)行動態(tài)合并,兩者可以分開單獨(dú)使用,也可以兩種方法結(jié)合使用。
2.4.1 幾何簡化與分頁細(xì)節(jié)層次結(jié)合的渲染優(yōu)化
結(jié)合幾何簡化后模型的LOD設(shè)計,根據(jù)BIM模型,設(shè)置PagedLOD中顯示像素大小,在渲染時,依據(jù)場景圖元在視口中占據(jù)像素大小,動態(tài)選擇相應(yīng)顯示的渲染數(shù)據(jù),實現(xiàn)可視場景信息完整的情況下達(dá)到最好的渲染效率。
LOD的設(shè)計同時依賴于幾何簡化算法設(shè)計。鑒于兩者的優(yōu)缺點,設(shè)計了兩者結(jié)合的LOD設(shè)計。兩者結(jié)合時,場景有兩種情況:
(1) 視口較遠(yuǎn)時,場景圖元在視口中小于一定像素,因PagedLOD技術(shù)不會在場景中顯示,場景中將會顯示經(jīng)過簡化后的模型的相應(yīng)圖元來代替原模型。因在視口中占據(jù)的像素很小,此時雖然簡化后的模型精細(xì)程度較低,但在視覺上與原模型幾乎沒有差異。
(2) 視口較近時,因場景圖元占據(jù)像素增多,此時顯示的模型則會更換為原模型,模型細(xì)節(jié)在審閱時不會受到任何影響。
兩種情況均能在不影響審閱情況下得到更好的輕量化效果。至此,通過對LOD的設(shè)計,消除了LOD和幾何簡化算法帶來的負(fù)面影響的同時,顯著提升了渲染效率。
2.4.2 基于雙線程的剔除與渲染
根據(jù)渲染的需求,提出并設(shè)計了雙線程剔除繪制渲染方法(見圖4)。在渲染一幀的步驟中,將剔除操作與繪制操作分別在不同線程中完成,剔除操作完成后,會將剔除后的繪制數(shù)據(jù)存放在后緩存中,繪制操作線程則會從前緩存中提取數(shù)據(jù)進(jìn)行繪制。在下一次剔除操作完成后,將新的剔除后繪制數(shù)據(jù)存放在后緩存中,后緩存中的數(shù)據(jù)則會轉(zhuǎn)移至前緩存中供繪制線程調(diào)用。至此,剔除操作與繪制操作分開,剔除操作所耗費(fèi)的時間在渲染一幀的過程中為零,渲染效率只依賴于繪制操作線程所耗費(fèi)的時間。
2.4.3 動態(tài)預(yù)處理后續(xù)批次渲染數(shù)據(jù)設(shè)計
在剔除操作完成后,需要將渲染數(shù)據(jù)提交給渲染管線進(jìn)行繪制操作,數(shù)據(jù)未經(jīng)處理時,每一個物體均需要進(jìn)行一次繪制操作,場景完成一幀的顯示需要重復(fù)每一個物體的繪制操作。
因此剔除操作完成后的數(shù)據(jù)可以進(jìn)行批次合并操作,將數(shù)據(jù)中擁有相同渲染狀態(tài)的物體進(jìn)行合并,處理后的數(shù)據(jù)會存入緩存中供繪制操作線程調(diào)用。該操作通過減少繪制命令調(diào)用次數(shù),顯著減少了渲染一幀時繪制操作線程所耗費(fèi)的時間,以此提升渲染效率。該方法根據(jù)BIM模型中信息,對場景圖元中渲染狀態(tài)數(shù)據(jù)相同的圖元三角網(wǎng)格數(shù)據(jù)進(jìn)行批量合并并傳遞給顯卡。
2.5 程序組件設(shè)計
(1) 以各類文件類型為基礎(chǔ)的插件擴(kuò)展,將文件類型寫為osgDB所兼容格式并加載文件到自定義工程文件中。① 工程文件通過實現(xiàn)osgDB::Archive接口,將平臺自主設(shè)計的工程文件信息寫為osgDB所兼容格式,并能夠讀寫原文件材質(zhì)、節(jié)點、高程、貼圖、渲染、描述等多種信息。② 多源異構(gòu)文件類型通過實現(xiàn)osgDB::ReadWiriter接口,實現(xiàn)對各種類型文件的讀取至場景中的功能。
(2) 自定義插件。自主設(shè)計BaseFilePlugin文件讀取插件基類,各類文件讀取通過實現(xiàn)該基類完成對多源異構(gòu)數(shù)據(jù)文件的讀取支持。
3 驗 證
驗證數(shù)據(jù)來源于龍開口水電站,位于云南省大理州鶴慶縣境內(nèi),是金沙江中游河段規(guī)劃的第六級電站。龍開口水電站上游與金安橋水電站銜接,下游與魯?shù)乩娬俱暯?,距昆明直線距離280 km,距鶴慶縣城公路里程約60 km。龍開口水電站的開發(fā)任務(wù)是以發(fā)電為主,兼顧灌溉和供水。水庫正常蓄水位1 298.00 m,相應(yīng)庫容為5.07億m3,其中調(diào)節(jié)庫容1.13億m3,具有日調(diào)節(jié)性能;水庫校核洪水位為1 301.30 m,總庫容5.58億m3。BIM總裝模型包括了地質(zhì)、壩工、廠房、引水、建筑、施工、金結(jié)、水機(jī)、電一、電二、暖通、給排水、觀測等20多個專業(yè)模型。
本文在自主研發(fā)的BIM仿真系統(tǒng)平臺上完成對多種專業(yè)的BIM模型進(jìn)行測試,使用多種不同施工專業(yè)的BIM模型于平臺中進(jìn)行輕量化展示,并與同個模型不進(jìn)行輕量化處理的結(jié)果進(jìn)行對比驗證。案例中所用于驗證的模型分別涉及地質(zhì)專業(yè)、機(jī)電專業(yè)、土建專業(yè)及電氣專業(yè),測試結(jié)果如表1所列。
(1) 地質(zhì)模型輕量化前后對比驗證(見圖5)。地質(zhì)專業(yè)使用龍開口水電站勘測模型,該模型體量較小,模型的三角面片數(shù)經(jīng)過幾何簡化后至原有面片數(shù)1/3左右,幀率顯示與加載速度優(yōu)化不明顯,原因在于原模型數(shù)據(jù)量較小,渲染與加載效率主要受限于硬件。
(2) 機(jī)電專業(yè)與土建專業(yè)模型輕量化前后對比驗證(見圖6~7)。機(jī)電專業(yè)使用龍開口水電站機(jī)電總裝模型,土建專業(yè)使用龍開口水電站水工總裝模型,兩者數(shù)據(jù)體量類似,輕量化后顯示效率效果相近,三角面片優(yōu)化至1/3左右時,加載速度均有4倍以上提升,模型展示幀率提升幅度較大。
(3) 電氣專業(yè)模型輕量化前后對比驗證(見圖8)。電氣專業(yè)使用110 kV強(qiáng)民變電站模型,數(shù)據(jù)體量遠(yuǎn)遠(yuǎn)大于其余模型,經(jīng)優(yōu)化后的顯示幀率與機(jī)電專業(yè)、土建專業(yè)模型顯示幀率差距較小,因電氣專業(yè)模型中擁有更多相同渲染屬性的模型構(gòu)件,動態(tài)預(yù)處理過程中將相同渲染屬性數(shù)據(jù)合并提交,提高了顯示幀率;加載速度較之于機(jī)電專業(yè)、土建專業(yè)模型加載速度更快,因為其文件數(shù)據(jù)在保存時,紋理數(shù)據(jù)存在大量相同數(shù)據(jù),相同的紋理只存儲一次,文件加載數(shù)據(jù)量壓縮,加載時資源傳輸量減少。
通過對各專業(yè)模型輕量化前后測試結(jié)果分析,可以總結(jié)得到:
(1) 幾何簡化的輕量化方法在各模型的應(yīng)用中優(yōu)化穩(wěn)定,不會因模型專業(yè)、數(shù)據(jù)量大小不同改變優(yōu)化效率;
(2) 渲染優(yōu)化的輕量化方法對不同模型在平臺上的顯示效果均有提升,其中不同專業(yè)模型中相同渲染屬性的構(gòu)件數(shù)量越多,渲染優(yōu)化提升效率越高;
(3) 文件格式及數(shù)據(jù)結(jié)構(gòu)設(shè)計支持打開多源異構(gòu)的不同專業(yè)模型,大體量模型內(nèi)相同紋理數(shù)據(jù)的壓縮,實現(xiàn)了減少資源傳輸量,提高了模型加載效率。
4 結(jié) 語
本文依托BIM仿真系統(tǒng)平臺需求,提出了一種BIM模型輕量化技術(shù)的應(yīng)用方法,用以解決在多源異構(gòu)模型數(shù)據(jù)匯集時遇到的性能相關(guān)問題,對于BIM的實際應(yīng)用十分必要。基于開發(fā)的BIM仿真系統(tǒng),通過多個樣本和指標(biāo)驗證了所提出的方法在BIM應(yīng)用中的有效性。
參考文獻(xiàn):
[1] 姜日鑫.基于數(shù)據(jù)引用的Revit模型數(shù)據(jù)輕量化插件研究[J].建筑技術(shù)開發(fā),2021,48(3):92-94.
[2] 陳慶財,馮蕾,梁建斌,等.BIM模型數(shù)據(jù)輕量化方法研究[J].建筑技術(shù),2019,50(4):455-457.
[3] 操鋒,張海兵,段高博.BIM模型輕量化問題研究[J].中國管理信息化,2020,23(2):79-80.
[4] 陳龍,郭軍,張建中.三維模型輕量化技術(shù)[J].工礦自動化,2021,47(5):116-120.
[5] 王云龍,朱明清,吳文凱,等.基于頂點偏移算法的模型輕量化優(yōu)化方法[J].自動化技術(shù)與應(yīng)用,2019,38(8):27-30.
[6] 劉曉利,劉則毅,高鵬東,等.基于尖特征度的邊折疊簡化算法[J].軟件學(xué)報,2005,4(5):669-675.
[7] 張必強(qiáng),邢淵,阮雪榆.基于特征保持和三角形優(yōu)化的網(wǎng)格模型簡化[J].上海交通大學(xué)學(xué)報,2004,4(8):1373-1377.
[8] 李現(xiàn)民,李桂清,張小玲,等.基于子分規(guī)則的邊折疊簡化方法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2002,4(1):8-13.
[9] 馮翔,周明全.帶紋理的三維模型簡化算法[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2009,21(6):842-846,852.
[10] 杜曉暉,尹寶才,孔德慧.一種邊折疊三角網(wǎng)格簡化算法[J].計算機(jī)工程,2007,4(20):12-15.
[11] 金廣龍,秦慶鵬.基于BS架構(gòu)的BIM模型輕量化技術(shù)[J].中國高新科技,2020,4(20):61-62.
[12] 馬金忠,田彥山.基于云計算的BIM模型輕量化及應(yīng)用研究綜述[J].寧夏師范學(xué)院學(xué)報,2019,40(7):72-78.
[13] 白雪,王翔,朱超平.BIM輕量化技術(shù)在鐵路工程建設(shè)中的應(yīng)用研究[J].鐵道通信信號,2019,55(1):40-43.
[14] 趙維,茅坪,沈凡宇.下一代三維圖形引擎發(fā)展趨勢研究[J].系統(tǒng)仿真學(xué)報,2017,29(12):2935-2944.
[15] 張萍.BIM專業(yè)模型輕量化處理方法研究[J].中國管理信息化,2020,23(14):122-123.
[16] 毛旭陽,李曉東,李娜.數(shù)字城市三維可視化平臺BIM模型輕量化技術(shù)研究[J].城市建設(shè)理論研究(電子版),2020,4(20):122-128.
[17] 余芳強(qiáng),宋天任,陳菁.面向網(wǎng)絡(luò)化應(yīng)用的古建筑BIM模型輕量化處理技術(shù)[J].建筑施工,2018,40(3):321-323.
[18] 郭思怡,陳永鋒.建筑運(yùn)維階段信息模型的輕量化方法[J].圖學(xué)學(xué)報,2018,39(1):123-128.
[19] 劉北勝.基于云渲染的三維BIM模型可視化技術(shù)研究[J].北京交通大學(xué)學(xué)報,2017,41(6):107-113.
(編輯:劉 媛)
Research and implementation of lightweight technology of BIM model
SUN Yuan1,3,WANG Guoguang1,2,3,ZHAO Xingying1,2,3,WANG Yang1,3,DONG Daluan4
(1.PowerChina Huadong Engineering Corporation Limited,Hangzhou 311122,China; 2.Zhejiang Engineering Digital Research Center,Hangzhou 311122,China; 3.Zhejiang Huadong Engineering Digital Technology Co.,Ltd.,Hangzhou 311122,China; 4.Zhejiang Huadong Construction Engineering Co.,Ltd.,Hangzhou 311122,China)
Abstract:
At present,the application of building information model (BIM) in projects is becoming more urgent in China,however the massive model of BIM with jumbled data seriously restricts the use of BIM technology in practical applications.Large BIM models have the problems of slow loading and stuck display in the display process.Therefore,it was proposed to build a BIM lightweight system,and provided a review and browsing platform for a large number of BIM models by self-developed BIM simulation system platform.Four methods were used to build BIM lightweight system,geometric simplification algorithm,rendering optimization algorithm,file format optimization and data structure design.The triangular surface of BIM model was optimized by edge folding algorithm.According to the model of multi-source heterogeneous data,the file format and data structure were designed.At the rendering level,the combination of PagedLOD technology and geometric simplified model,the double-thread method of rejection and rendering,and the rendering optimization technology of batch rendering were researched and implemented independently to complete the preliminary construction of BIM lightweight system and verified it in the platform.The results showed that the application of lightweight method system made the platform quickly load a large number of BIM models and smoothly display them,and had ability to display multi-source heterogeneous data models on the same platform
Key words:
BIM;model lightweight technology;PagedLOD;double-thread method