點亮建筑新夢想
LIGHT BUILDING NEW DREAM
企業(yè)BIM定制培訓(xùn)服務(wù)經(jīng)典案例
劉曉棟:BIM模型輕量化核心技術(shù)解析 二維碼
作者:劉曉棟來源:廣聯(lián)達新建造研究院網(wǎng)址:http://xjz.glodon.com/f/view-11-17dae10a022e4a15b509dbc9839e97cb.html 作者:廣聯(lián)達BIM建造技術(shù)總監(jiān) 劉曉棟500+模型文件,2000+圖紙文件,每天超過100萬次的操作請求,超過2000個業(yè)務(wù)流程。 這樣的數(shù)據(jù),您是覺得陌生還是熟悉?夸張還是真實? 一個真實的萬達廣場BIM模型,比你想象的可能還要多!
面對這樣眾多的數(shù)據(jù)模型,錯綜復(fù)雜的業(yè)務(wù)流程,需要投入多少時間?多少辦公設(shè)備?又需要投入多少人力?進行多少變更? 像萬達這樣千億級的企業(yè),能夠?qū)IM和大數(shù)據(jù)做到這樣的程度,是件非常了不起的事情。這樣一個具備行業(yè)影響力的公司,在BIM應(yīng)用落地上始終是走在行業(yè)前列的,同時,也呈現(xiàn)出了如今BIM模型逃不開的大趨勢: ? BIM模型太大,硬件要求苛刻 ? 移動辦公,模型加載困難
BIM的最大價值在協(xié)同,不同崗位間、不同專業(yè)間、多參與方間都需要協(xié)同,將多個專業(yè)的模型整合為一個全專業(yè)的模型是最基礎(chǔ)的工作。 原始設(shè)計模型保留很多設(shè)計過程中的信息,模型體量大,整合多個專業(yè)的模型后,體量會呈數(shù)量級的增大,對硬件的要求將會非常苛刻。 隨著智能手機、平板電腦的全面普及,移動辦公的基礎(chǔ)硬件條件已經(jīng)具備,BIM模型的體量卻尚未跟上,如果BIM模型動輒幾百M,幾個G,對移動設(shè)備的處理能力和網(wǎng)絡(luò)流量都是一個巨大的考驗,輕量化是唯一出路。 建筑行業(yè)的輕裝上陣,從BIM輕量化開始。
一、輕量化原理及核心技術(shù) 簡單講,BIM輕量化要解決的核心問題就是:縮小BIM模型體量,讓它輕、顯示快。 從數(shù)據(jù)維度看,設(shè)計模型包含幾何信息和非幾何信息兩部分。幾何信息即我們能看到的二維、三維模型,非幾何信息通常指一些屬性數(shù)據(jù)、建模相關(guān)的其他數(shù)據(jù)等,非幾何信息的輕量化技術(shù)難度較低,按需提取存儲即可,幾何信息的輕量化技術(shù)難度較高,下面主要針對幾何信息的輕量化展開。 (一)BIM模型處理全流程
如上圖所示,從設(shè)計模型轉(zhuǎn)換到BIM模型,再到我們最終在電腦或者移動終端看到的模型,中間經(jīng)歷了兩個處理過程,一個是幾何轉(zhuǎn)換,一個是渲染處理,這兩個處理過程的好壞直接影響到最終輕量化的效果,因此我們也稱其為BIM模型輕量化的關(guān)鍵環(huán)節(jié),這兩個環(huán)節(jié)是真正考驗各個BIM軟件廠商技術(shù)實力的關(guān)鍵點。
(一)BIM模型輕量化的關(guān)鍵環(huán)節(jié) 1、幾何轉(zhuǎn)換 幾何轉(zhuǎn)換過程就是將設(shè)計模型轉(zhuǎn)換到BIM模型的過程,這個過程是整個輕量化的源頭,也是核心。我們從微觀和宏觀兩個方面來優(yōu)化,實現(xiàn)輕量化。 微觀層面的優(yōu)化:從技術(shù)角度來看,業(yè)內(nèi)目前存在兩種處理方式,分別是參數(shù)化幾何描述和三角化幾何描述。 參數(shù)化幾何描述: 用多個參數(shù)來描述一個幾何體,我們稱之為參數(shù)化幾何描述。 例如:我們畫一個圓形柱子,可以使用3個參數(shù): 參數(shù)1:底面原點坐標(biāo)(x、y、z,3個小數(shù)) 參數(shù)2:底面半徑(r,1個小數(shù)) 參數(shù)3:柱子高度(h,1個小數(shù)) 這樣,我們使用5個小數(shù)即可完成一個圓柱體的搭建,非常精簡,參數(shù)化幾何描述可以將單個圖元做到最極致的輕量化。 2、三角化幾何描述 用多個三角形來描述一個幾何體,我們稱之為三角化幾何描述。 三角形可以拼接成任意的平面或者曲面,多個面最終拼接成三維體,這是現(xiàn)代計算機圖形處理的基礎(chǔ)。我們在屏幕上看到的任何一個三維模型,都是由一個一個的三角形拼接而成的。 一個三維模型,三角形越多,模型看上去越精細(xì),反之則越粗糙,這也是LOD(Levels of Detail)的基本原理。 還是用圓形柱子舉例,我們可以使用n個三角形來拼接成圓柱的頂面、底面、圓形曲面,最終合成整個圓柱。n越大,柱子越光滑,否則圓柱的圓形曲面將會是有棱角的。 如下圖所示,隨著n的增大,模型的精細(xì)度越來越高: 那么,是不是n越大越好呢?聰明的你一定想到了,n越大,模型越精細(xì),但是模型體量也越大,這和輕量化的初衷是背道而馳的。 那么n到底設(shè)置多少合適呢?這個問題沒有答案,不同的應(yīng)用場景對模型精細(xì)度的要求是不一樣的,遠(yuǎn)距離查看全場景的模型,需要的精細(xì)度比較低,近距離查看單個圖元,需要的精細(xì)度比較高,所以n設(shè)置多少都不合適,這也是三角化幾何描述的弊端。
因此,同樣畫一個圓柱,三角化的幾何描述需要至少數(shù)十個以上三角形來描述,比參數(shù)化描述方式大了很多,輕量化效果并不好。 3、兩種描述的對比 參數(shù)化幾何描述需要解析設(shè)計模型的原始幾何信息,然后轉(zhuǎn)換為自有的幾何描述,這個過程需要幾何算法庫的支撐,技術(shù)難度比較高,但是輕量化效果好,后期使用的靈活度很高,可以根據(jù)不同應(yīng)用場景的精度要求,生成對應(yīng)精度三角形數(shù)據(jù)來顯示,能很好解決三角化幾何描述的弊端。另外,參數(shù)化幾何描述還有很多優(yōu)點,比如:在精確測量,布爾運算(流水段切割圖元)等方面的良好支持。 三角化幾何描述只需要將設(shè)計模型轉(zhuǎn)換為三角形數(shù)據(jù)保存即可,主流的設(shè)計軟件一般都提供相關(guān)的二次開發(fā)接口或者SDK來獲取三角形數(shù)據(jù),技術(shù)難度比較低,但是輕量化效果不佳,后期的某些應(yīng)用場景會受限。 宏觀層面的優(yōu)化: 前面我們了解到,使用參數(shù)化幾何描述方式,可以有效減少單個圖元的體量,但是如果是一個大規(guī)模甚至超大規(guī)模的工程,數(shù)據(jù)量還是很可觀的,這個時候的優(yōu)化策略必須從宏觀層面去考慮。 相似性算法減少圖元數(shù)量 在一個工程中,有很多圖元長得一模一樣,比如很多樁的形狀一模一樣,只是位置不一樣,這個時候我們可以做圖元合并,即:只保留一個樁的數(shù)據(jù),其他樁我們記錄一個引用 + 空間坐標(biāo)即可。通過這種方式我們可以有效減少圖元數(shù)量,達到輕量化的目的。 如何判斷兩個圖元是一模一樣呢?相似性算法能有效判斷兩個圖元能否合并,用專業(yè)術(shù)語來說,就是判斷兩個圖元是否經(jīng)過剛體變換,包含平移變換、旋轉(zhuǎn)變換和鏡像變換三種情況。 相似行算法能有效減少圖元數(shù)量,尤其在基礎(chǔ)工程、結(jié)構(gòu)工程、鋼結(jié)構(gòu)工程等領(lǐng)域,能大幅度減少圖元數(shù)量,輕量化效果非常明顯。
渲染處理 為了達到流暢、實時的顯示,通常繪制需要達到15-30幀/秒。如果模型數(shù)據(jù)量比較大,尤其是建筑模型,匯集了各專業(yè)的數(shù)據(jù),模型的三角面片數(shù)會達到數(shù)千萬,內(nèi)存的開銷在20-30G以上。在常規(guī)的繪制流程下系統(tǒng)無法裝載整個數(shù)據(jù),繪制也非??D,這時需要通過各種手段加速場景的繪制,并精簡、控制內(nèi)存的開銷。 下面我們分別從微觀和宏觀兩個角度對渲染處理做優(yōu)化,由于篇幅所限,我們只介紹幾種核心優(yōu)化策略,而不是全部。
微觀層面的優(yōu)化 多重LOD(Levels of Detail),加速單圖元渲染速度 多重LOD基本上是3D GIS領(lǐng)域的必備技能,在BIM領(lǐng)域也有廣泛的應(yīng)用。 當(dāng)場景中的一些物體距離視點較遠(yuǎn)、或者物體本身比較小時,最終投射到屏幕上的像素并不多。如果用過多的幾何圖元來表示這些物體會浪費存儲并影響性能。 多重LOD用不同級別的幾何體來表示物體,距離越遠(yuǎn)加載的模型越粗糙,距離越近加載的模型越精細(xì),從而在不影響視覺效果的前提下提高顯示效率并降低存儲。 單次渲染體量 = 圖元數(shù)量 * 圖元精度。 視點距離遠(yuǎn)的情況下,圖元數(shù)量雖然多,但是圖元精度比較低,所以體量可控。 視點距離近的情況下,圖元精度雖然高,但是圖元數(shù)量比較少,體量依然可控。 因此,使用LOD技術(shù)可以確保在大場景和局部場景下的都能流暢的顯示模型。但是,LOD技術(shù)是一柄雙刃劍,其可以有效控制單次渲染體量,但是多重LOD會導(dǎo)致模型文件變大,因為同一個圖元可能會有多個幾何形體表示,因此需要根據(jù)實際情況靈活使用。 LOD技術(shù)的應(yīng)用有許多技巧,譬如按照室內(nèi)、室外區(qū)分模型數(shù)據(jù),或者按照遠(yuǎn)近、樓層、甚至建筑的專業(yè)與細(xì)節(jié)層次分類處理大小不同的建筑構(gòu)件等。另外,應(yīng)用LOD技術(shù)時通常也需考慮用戶體驗,以避免明顯的顯示效果跳躍。
宏觀層面的優(yōu)化 遮擋剔除,減少渲染圖元數(shù)量 遮擋剔除是將無法投射到人眼視錐中的物體裁剪掉,從而帶來顯示效率上的提升。遮擋剔除技術(shù)是在場景繪制中剔除當(dāng)前視點下被遮擋的對象、只繪制最前面的對象,從而達到提升性能的目的。 如下圖所示,被觀察物由于被遮擋,所以不會被繪制,從而減少繪制量,提升性能,但是使用者的感知是一樣的。 通常的做法是對圖元做八叉樹空間索引,然后根據(jù)視點計算場景中要剔除掉的圖元,只繪制可見的圖元。
批量繪制,提升渲染流暢度 為了將一個物體繪制到屏幕上,需要發(fā)起一次圖形API繪制調(diào)用。繪制調(diào)用非常耗費CPU、并且通常會造成GPU時間閑置。為了優(yōu)化性能、平衡CPU和GPU負(fù)載,可以將具有相同狀態(tài)(例如相同材質(zhì))的物體合并到一次繪制調(diào)用中,這叫做批次繪制調(diào)用。批次繪制調(diào)用通過合并物體來減少繪制調(diào)用,從而帶來性能的優(yōu)化。批次繪制可以預(yù)先處理,形成靜態(tài)的批次,或者繪制每幀時進行動態(tài)調(diào)整,這時稱為動態(tài)批次合并。有時也結(jié)合動態(tài)和靜態(tài)的批次合并策略,達到渲染流暢度的提升。
二、理想的輕量化技術(shù)方案 前面我們了解到,輕量化主要從幾何轉(zhuǎn)換和渲染處理兩個環(huán)節(jié)著手進行優(yōu)化,權(quán)衡技術(shù)利弊及應(yīng)用需求,筆者認(rèn)為理想的技術(shù)方案如下: 輕量化模型數(shù)據(jù) = 參數(shù)化幾何描述(必須) + 相似性圖元合并; 提升渲染效果 = 遮擋剔除 + 批量繪制 + LOD(可選); 三、廣聯(lián)達BIM輕量化技術(shù)方案 眾所周知,BIM領(lǐng)域的設(shè)計軟件眾多,而且絕大多數(shù)都是國外的設(shè)計軟件,不同設(shè)計軟件的數(shù)據(jù)描述各不相同,并且數(shù)據(jù)的開放程度也各不相同,從設(shè)計端承接模型并輕量化是一個復(fù)雜的過程,尤其是參數(shù)化幾何描述,難度更大,但是參數(shù)化幾何描述恰恰是BIM模型輕量化的核心,要做到這一點需要有強大的圖形技術(shù)做支撐,廣聯(lián)達很早就意識到這 一點,并持續(xù)投入大量的研發(fā)資源,到現(xiàn)在已經(jīng)有近10年的沉淀,上面提到的理想的技術(shù)方案也是公司不斷摸索總結(jié)出來的。 廣聯(lián)達BIM輕量化技術(shù)可以把99%以上的Revit幾何體轉(zhuǎn)換為自有的參數(shù)化幾何體,從而達到極致的輕量化,那么最終效果怎么樣呢?針對不同專業(yè)效果也不一樣,土建專業(yè)的模型平面居多,壓縮率比較高,基本能達到1:10以上,機電專業(yè)曲面較多,壓縮率低一些,尤其機電設(shè)備較多的情況下,壓縮率會更低一些,基本在1:5以上,綜合來看,一個項目全專業(yè)模型的壓縮率在1:5到1:10之間。 在渲染階段,我們除了采用LOD、遮擋剔除、批量繪制手段外,還采用了很多其他優(yōu)化手段,比如多線程調(diào)度、動態(tài)磁盤交換、首幀渲染優(yōu)化等手段,大大加速了渲染效率。據(jù)統(tǒng)計,100萬構(gòu)件、3000萬三角片的超大規(guī)模土建模型,渲染數(shù)據(jù)峰值內(nèi)存占用不超過3G,并能流暢顯示。20萬構(gòu)件,4500萬三角片的機電模型,渲染數(shù)據(jù)峰值內(nèi)存占用不超過2.5G,并能流暢顯示。 路漫漫其修遠(yuǎn)兮,BIM輕量化,廣聯(lián)達一直在砥礪前行。
文章分類:
BIM視角
|