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