国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大規(guī)模WebBIM場(chǎng)景輕量級(jí)在線互動(dòng)編輯關(guān)鍵技術(shù)

2019-03-15 13:31:28金承澤
電腦知識(shí)與技術(shù) 2019年2期
關(guān)鍵詞:建筑信息模型碰撞檢測(cè)

金承澤

摘要:近年來(lái),以建筑信息模型為核心的BIM(Building Information Modeling)技術(shù)的發(fā)展與應(yīng)用,在建筑行業(yè)已蔚然成風(fēng)。BIM系統(tǒng)的核心功能是提供工程模型的三維可視化。使用Web瀏覽器作為載體無(wú)插件地直接渲染BIM模型方便用戶隨時(shí)隨地瀏覽模型,極大地提高了溝通效率。但基于Web的平臺(tái)的BIM應(yīng)用功能和場(chǎng)景承載力較弱。本文針對(duì)BIM模型的特點(diǎn)提出LOD的優(yōu)化策略,提高了平臺(tái)的承載力?;谥鲗?shí)現(xiàn)了大規(guī)模WebBIM場(chǎng)景的在線剖切功能,并對(duì)場(chǎng)景進(jìn)行了體素化預(yù)處理。運(yùn)用體素化索引和構(gòu)件的逆索引實(shí)現(xiàn)了高效的在線碰撞檢測(cè)功能,提高了平臺(tái)的實(shí)用性。

關(guān)鍵詞:建筑信息模型(BIM) ;多分辨率網(wǎng)格(LOD); 碰撞檢測(cè);剖切

中圖分類(lèi)號(hào):TP311? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2019)02-0234-03

1 引言

BIM系統(tǒng)的核心功能是提供工程模型的三維可視化。但行業(yè)軟件面向設(shè)計(jì)且體量龐大,雙方要進(jìn)行交流首先要部署行業(yè)軟件,這樣不方便在用戶間進(jìn)行交互。本文基于WebGL使用three.js渲染引擎通過(guò)無(wú)插件的網(wǎng)頁(yè)直接向用戶提供模型的瀏覽與編輯服務(wù)。

出于安全角度考慮,瀏覽器能占用的系統(tǒng)資源較少。必須對(duì)動(dòng)輒幾百M(fèi)的設(shè)計(jì)文件進(jìn)行輕量化處理才能在瀏覽器中用WebGL技術(shù)直接渲染。本文對(duì)輕量級(jí)大規(guī)模WebBIM場(chǎng)景在線編輯的關(guān)鍵技術(shù)進(jìn)行研究,力圖解決目前WebBIM平臺(tái)承載力低且實(shí)用性不足的痛點(diǎn)問(wèn)題。

2 多分辨率網(wǎng)格關(guān)鍵技術(shù)

LOD(Level Of Detail)技術(shù)是根據(jù)不同的策略,當(dāng)視點(diǎn)滿足策略規(guī)定的條件時(shí),渲染不同精度的LOD模型。LOD技術(shù)的核心是只渲染比較重要的模型。一個(gè)模型是不是重要的,可以根據(jù)這個(gè)模型在屏幕上的投影(包圍盒)尺寸來(lái)確定。距離觀察視點(diǎn)近、看得清就認(rèn)為相對(duì)比較重要。一般會(huì)綜合考慮構(gòu)件的包圍盒尺寸和距離來(lái)決定構(gòu)件的渲染精度。通??梢杂媒M成構(gòu)件的三角面片數(shù)除以包圍盒尺寸作為尺寸依據(jù),并用尺寸依據(jù)和包圍盒與視點(diǎn)的歐式距離的比值來(lái)定義模型的渲染精度。

大規(guī)模場(chǎng)景的特殊性在于構(gòu)件數(shù)量多且網(wǎng)格拓?fù)鋸?fù)雜。如果做處理一個(gè)構(gòu)件就會(huì)帶來(lái)一次GPU drawcall。這會(huì)顯著地降低設(shè)備的漫游幀率。對(duì)于性能較差的移動(dòng)端會(huì)暴露得更加明顯。對(duì)于大規(guī)模場(chǎng)景,一般會(huì)將同材質(zhì)的網(wǎng)格合并,當(dāng)作一張網(wǎng)格交給GPU處理。但單純地合并不能解決場(chǎng)景中三角面片過(guò)多的問(wèn)題。WebBIM應(yīng)用占用的內(nèi)存與場(chǎng)景同時(shí)渲染的三角面片總數(shù)正相關(guān)。如果內(nèi)存占用超過(guò)瀏覽器的限制,瀏覽器將直接殺掉渲染進(jìn)程使WebBIM應(yīng)用崩潰。這是使用多分辨率網(wǎng)格來(lái)降低場(chǎng)景同時(shí)渲染面片總數(shù)的主要原因。因此,最關(guān)鍵的矛盾暴露了:要通過(guò)網(wǎng)格合并來(lái)保證幀率,又要使用多分辨率網(wǎng)格隨著用戶的漫游及時(shí)地更改場(chǎng)景中的網(wǎng)格。只要更改一個(gè)構(gòu)件的網(wǎng)格,就要把合并后的網(wǎng)格打散重組一次。頻繁地更改構(gòu)件精度同樣會(huì)引起幀率的明顯降低或內(nèi)存的急劇抖動(dòng)導(dǎo)致崩潰。

經(jīng)過(guò)對(duì)BIM構(gòu)件的分析,本文認(rèn)為現(xiàn)在主流框架結(jié)構(gòu)建筑的支承部分主要由柱、梁、板以及剪力墻等構(gòu)成。這幾類(lèi)構(gòu)件作為建筑物的骨架,數(shù)量多且體積較大、容易被注意。但是這類(lèi)構(gòu)件的網(wǎng)格拓?fù)鋮s比較簡(jiǎn)單,三角面片數(shù)量較少。但對(duì)于通風(fēng)、供暖、電水管以及建筑設(shè)備之類(lèi)的構(gòu)件,通常體積不大卻占用了較多的三角面片。

經(jīng)過(guò)上面的分析,本文不對(duì)所有的構(gòu)件適用多分辨率網(wǎng)格,在場(chǎng)景中合并總量較多但面片簡(jiǎn)單的柱梁墻板類(lèi)結(jié)構(gòu)支承構(gòu)件的網(wǎng)格后直接渲染。對(duì)前文提到的尺寸依據(jù)較大的,例如根據(jù)場(chǎng)景的構(gòu)件總量設(shè)定參考值,設(shè)為15%。只對(duì)尺寸依據(jù)排在前15%的構(gòu)件適用多分辨率網(wǎng)格。此外,在筆者進(jìn)行模型處理的過(guò)程中發(fā)現(xiàn)了一類(lèi)比較特別的板件,在IFC(Industry Foundation Classes)標(biāo)準(zhǔn)中將其歸類(lèi)為IfcPlate,這類(lèi)板件外形類(lèi)似長(zhǎng)方體,但內(nèi)部網(wǎng)格拓?fù)浔容^復(fù)雜,該類(lèi)別一般表示室內(nèi)隔熱空心板件或幕墻。對(duì)于這類(lèi)構(gòu)件,使用OBB方向包圍盒來(lái)替代Hoppe[1]的基于邊折疊的一般網(wǎng)格簡(jiǎn)化法能夠最大限度地保持構(gòu)件的外形并減少表達(dá)構(gòu)件的三角面片數(shù)。本文在場(chǎng)景預(yù)處理生成多分辨率網(wǎng)格時(shí)會(huì)專(zhuān)門(mén)處理這類(lèi)構(gòu)件。

最后,在設(shè)計(jì)網(wǎng)格調(diào)度策略時(shí)本文著重考慮了用戶的漫游行為。如果用戶漫游速度比較慢,且持續(xù)性比較差,一般不持續(xù)漫游超過(guò)2秒。本文認(rèn)為此時(shí)用戶對(duì)視點(diǎn)周邊構(gòu)件特別感興趣。這時(shí)提高視點(diǎn)周邊構(gòu)件網(wǎng)格精度的更新頻率。如果用戶持續(xù)漫游超過(guò)2秒,則認(rèn)為用戶對(duì)周邊構(gòu)件不感興趣,暫停更新視點(diǎn)周邊的構(gòu)件網(wǎng)格。

3 輕量化網(wǎng)格碰撞檢測(cè)關(guān)鍵技術(shù)

為提高大規(guī)模WebBIM平臺(tái)的實(shí)用性,本文的WebBIM平臺(tái)提供構(gòu)件之間的干涉碰撞檢測(cè)功能。WebBIM主要檢查模型的現(xiàn)有狀態(tài),找出當(dāng)前場(chǎng)景中所有發(fā)生碰撞的構(gòu)件對(duì)并其進(jìn)行索引,提供便捷的導(dǎo)航功能使得用戶能夠快速定位到場(chǎng)景中發(fā)生碰撞的構(gòu)件。在Web端實(shí)現(xiàn)的碰撞檢測(cè)功能能夠方便設(shè)計(jì)單位、業(yè)主方、施工單位和監(jiān)理單位的溝通。

WebBIM是模型的消費(fèi)者,平臺(tái)渲染的模型的總體架構(gòu)已經(jīng)完成。平臺(tái)僅承擔(dān)很少或不承擔(dān)BIM模型修改工作,這意味著盡管需要處理的構(gòu)件組數(shù)很多,場(chǎng)景中主要構(gòu)件的位置是確定的。既然大多數(shù)構(gòu)件位置基本確定,就可以在渲染前對(duì)場(chǎng)景進(jìn)行體素化[3]并創(chuàng)建大規(guī)模WebBIM場(chǎng)景的體素化索引以及構(gòu)件的逆索引。

體素化就是把場(chǎng)景的包圍盒按照選定的尺度均勻剖分成立方體,每個(gè)立方體稱(chēng)為體素。本文希望多數(shù)體素中含有的構(gòu)件數(shù)目不超過(guò)3個(gè)。我們就可以通過(guò)構(gòu)件頂點(diǎn)的位置確定某個(gè)體素有哪些構(gòu)件,并進(jìn)一步確認(rèn)一個(gè)構(gòu)件占用了哪些體素。運(yùn)用這個(gè)關(guān)系,可以直接確定一個(gè)構(gòu)件的周?chē)心男?gòu)件。對(duì)場(chǎng)景體素化的過(guò)程已經(jīng)在渲染前的預(yù)處理階段完成,因此在WebBIM場(chǎng)景中真正執(zhí)行碰撞檢測(cè)的時(shí)候可直接篩選出既定構(gòu)件的鄰接構(gòu)件。從而高效地進(jìn)行查找。

對(duì)場(chǎng)景進(jìn)行體素化的難點(diǎn)在于難以選取一個(gè)合適的體素尺寸。本文受建筑設(shè)計(jì)的模數(shù)理念啟發(fā)來(lái)迭代確定體素的尺寸。模數(shù)是建筑設(shè)計(jì)中常用的基本單位。如100mm,大多數(shù)建筑構(gòu)件的尺寸是100mm的整數(shù)倍。設(shè)項(xiàng)目中獨(dú)立構(gòu)件數(shù)目為N,則場(chǎng)景包圍盒的初始最長(zhǎng)邊應(yīng)當(dāng)劃分U個(gè)體素。

確定了最長(zhǎng)邊體素總量之后,體素的尺寸就用最長(zhǎng)邊長(zhǎng)除以U確定。這時(shí)把構(gòu)件按照頂點(diǎn)坐標(biāo)填入體素得到表達(dá)一個(gè)體素中有哪些構(gòu)件的體素化索引,接著把不包含構(gòu)件的體素從索引表中剔除。然后對(duì)體素尺寸進(jìn)行初次校驗(yàn)。本文升序排列每個(gè)體素中的構(gòu)件數(shù)量,取0.9倍數(shù)組長(zhǎng)度減1的構(gòu)件數(shù)目進(jìn)行校驗(yàn)。如果其值為1,則通過(guò)校驗(yàn)。這說(shuō)明有百分之九十的體素中只包含一個(gè)構(gòu)件。如果沒(méi)有通過(guò),則檢查0.8倍數(shù)組長(zhǎng)度減1,如果為2則通過(guò)校驗(yàn)。否則認(rèn)為校驗(yàn)不通過(guò),將最長(zhǎng)邊劃分體素?cái)?shù)加10重新進(jìn)行校驗(yàn)。如果不是第一次校驗(yàn),除了檢查體素中的構(gòu)件分布外還要檢查總記錄條數(shù)。本文規(guī)定獨(dú)立構(gòu)件數(shù)為N的場(chǎng)景體素索引長(zhǎng)度不能超過(guò)。如果不滿足該條件,迭代結(jié)束,取上次迭代結(jié)果作為體素化的尺度。

方才介紹的方法能夠取得較好的體素尺寸。本文還要解決一個(gè)體素化引起問(wèn)題:同一體素中會(huì)有構(gòu)件尺寸差異過(guò)大的情況。單體素中可能會(huì)包含一根柱子和三個(gè)消防噴頭。消防噴頭的面片十分復(fù)雜但包圍盒體積僅為柱子的幾十分之一。在精確地檢測(cè)兩個(gè)構(gòu)件是否干涉前,本文采用AABB包圍盒先行測(cè)試,直接剔除同一體素中明顯不相交的構(gòu)件對(duì),顯著地提升了場(chǎng)景構(gòu)件的檢測(cè)效率。

WebBIM是基于WebGL渲染的場(chǎng)景。場(chǎng)景中的構(gòu)件均由三角形組成。精確的碰撞檢測(cè)結(jié)果是根據(jù)構(gòu)件對(duì)的最近三角面片是否碰撞確定的。但JavaScript目前未有成熟的計(jì)算幾何庫(kù),我們需要自行實(shí)現(xiàn)三角面片之間的距離算法。筆者通過(guò)擴(kuò)展了平面Voronoi域的概念來(lái)找出兩個(gè)三角形之間的最近點(diǎn)對(duì)。此方法涉及較多的空間向量叉積運(yùn)算。本文在計(jì)算性能較差的前端使用拉格朗日恒等式用向量?jī)?nèi)積簡(jiǎn)化了叉積計(jì)算,提高了計(jì)算效率。

4 輕量化場(chǎng)景剖切關(guān)鍵技術(shù)

用戶希望通過(guò)WebBIM平臺(tái)實(shí)現(xiàn)移除視線遮擋物的功能。即希望查看位于部分構(gòu)件之后的構(gòu)件。例如,希望拆掉屋頂,看到房屋的平面布置。或是希望看到墻面后的房間布置圖。總之,用戶希望將精力集中在感興趣的部分空間。這個(gè)需求的本質(zhì)是在場(chǎng)景中去除不感興趣的構(gòu)件。在建筑設(shè)計(jì)表達(dá)中,有剖面圖的概念。對(duì)于比較復(fù)雜的設(shè)計(jì),例如室內(nèi)樓梯的布置,采用傳統(tǒng)的平面圖、立面圖不足以足夠明確地表達(dá)設(shè)計(jì)人員的意圖,需要在相應(yīng)的樓梯間位置增加一個(gè)剖視圖來(lái)把設(shè)計(jì)表達(dá)清楚。在我們的場(chǎng)景中也可以類(lèi)似地運(yùn)用這樣的概念,為用戶提供一個(gè)靈活操控的平面,我們將隱藏全部平面上側(cè)的構(gòu)件。

在第二節(jié)中本文已經(jīng)述及,在輕量化WebBIM場(chǎng)景中不宜頻繁更改網(wǎng)格中的構(gòu)件。因此實(shí)現(xiàn)剖切功能不宜在WebBIM場(chǎng)景中真正對(duì)網(wǎng)格進(jìn)行剖分。如果對(duì)網(wǎng)格進(jìn)行在線剖分,不僅要進(jìn)行繁重的網(wǎng)格重構(gòu)計(jì)算還難以將剖切功能關(guān)閉后還原網(wǎng)格的初始形態(tài)。

本文利用可編程著色器找到每個(gè)復(fù)合幾何體位于剖面上方的點(diǎn)對(duì)應(yīng)的像素,直接丟棄全部該像素的后續(xù)操作。如此我們?cè)趫?chǎng)景中就不會(huì)看到處在剖切面之上的像素,呈現(xiàn)出來(lái)的就自然是剖面后原本被遮擋的構(gòu)件。

如圖1所示,在渲染管線中光柵化形成的片元會(huì)逐一傳入片元著色器中。著色器將決定每個(gè)片元的顏色后將結(jié)果送入顏色緩沖區(qū),也就是即將渲染的部分。我們可以通過(guò)GLSL來(lái)對(duì)片元著色器進(jìn)行編程遴選出我們需要渲染的像素進(jìn)一步處理,否則將其丟棄。

計(jì)算時(shí)只需要把確定平面的四個(gè)參數(shù)組成的向量p=(a,b,c,d)與片元著色器中表示片元所對(duì)應(yīng)場(chǎng)景空間位置的分量vPosVec4=(x,y,z,w)做一個(gè)內(nèi)積。如果則說(shuō)明片元在平面上側(cè),應(yīng)該discard該圖元,這就實(shí)現(xiàn)了根據(jù)平面實(shí)現(xiàn)輕量化剖切的目的。

5 實(shí)驗(yàn)驗(yàn)證

本實(shí)驗(yàn)采用首鋼智慧城市項(xiàng)目提供的Revit模型來(lái)進(jìn)行。該Revit模型文件達(dá)1.41GB,三角面片數(shù)量達(dá)2000萬(wàn)余,構(gòu)件總數(shù)達(dá)3萬(wàn)5千余。Web端是通過(guò)一臺(tái)配置為Intel(R) Core(TM) i5-2400 CPU @3.10GHz處理器、8.0GB內(nèi)存、NVIDIA GeForce GTX1060顯卡的PC上訪問(wèn)。在沒(méi)有使用本文敘述的多分辨率網(wǎng)格時(shí),加載該模型時(shí)WebBIM平臺(tái)直接崩潰。筆者部署了本文敘述的大規(guī)模場(chǎng)景輕量級(jí)在線互動(dòng)編輯技術(shù)后,成功渲染了該模型,并且漫游時(shí)的平均幀率大于24。開(kāi)啟輕量化在線剖切后在其中漫游,幀率沒(méi)有受到顯著影響??梢?jiàn)在大規(guī)模WebBIM場(chǎng)景中應(yīng)用可編程著色器實(shí)現(xiàn)剖切功能的優(yōu)越性能。通過(guò)應(yīng)用本文提出的WebBIM輕量級(jí)在線互動(dòng)編輯技術(shù)確實(shí)提高了平臺(tái)的承載力并對(duì)平臺(tái)進(jìn)行了實(shí)用功能擴(kuò)充。

6 結(jié)論

本文介紹了在WebBIM平臺(tái)渲染大規(guī)模場(chǎng)景會(huì)面臨的技術(shù)瓶頸——瀏覽器的資源限制,以及通過(guò)多分辨率網(wǎng)格技術(shù)來(lái)降低場(chǎng)景同時(shí)渲染的三角面片總數(shù)來(lái)提高場(chǎng)景承載力的優(yōu)化方案,還介紹了在Web平臺(tái)實(shí)現(xiàn)兩個(gè)BIM系統(tǒng)的實(shí)用功能,剖切與碰撞檢測(cè)的關(guān)鍵技術(shù)。縱觀全文,有如下一些關(guān)鍵技術(shù)優(yōu)化點(diǎn):

(1)為了保證平臺(tái)的渲染幀率,需要對(duì)建筑構(gòu)件進(jìn)行分類(lèi),只對(duì)少部分構(gòu)件復(fù)雜的構(gòu)件應(yīng)用多分辨率網(wǎng)格。

(2)對(duì)于特殊的板類(lèi)構(gòu)件,如中的藍(lán)色幕墻,使用OBB包圍盒更好的替代邊塌陷等通用網(wǎng)格壓縮法。

(3)調(diào)度不同精度的構(gòu)件的策略要考慮用戶的漫游習(xí)慣,用戶的持續(xù)漫游時(shí)間是較好的參考指標(biāo)。

(4)在線碰撞檢測(cè)宜做好在線預(yù)處理,使用場(chǎng)景體素化索引和構(gòu)件的逆索引可以快速確定一個(gè)構(gòu)件周?chē)臉?gòu)件。

(5)對(duì)于建筑構(gòu)件大小差異過(guò)大的問(wèn)題,宜結(jié)合使用體素化與AABB包圍盒。

(6)通過(guò)可編程著色器運(yùn)用GPU的高性能圖形處理能力來(lái)控制像素的顯示來(lái)實(shí)現(xiàn)剖切,而不是實(shí)際對(duì)網(wǎng)格進(jìn)行剖分。

使用上述關(guān)鍵技術(shù)能夠顯著地提高WebBIM平臺(tái)的模型承載力并提高平臺(tái)的實(shí)用性。

參考文獻(xiàn):

[1] Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, Werner Stuetzle: "Mesh Optimization". SIGGRAPH '93, the 20th annual conference on Computer graphics and interactive techniques,19-26.

[2] 張東培,謝寧,劉小軍, 等. 網(wǎng)上大規(guī)模地下空間的輕量級(jí)實(shí)時(shí)繪制系統(tǒng)[J].計(jì)算機(jī)科學(xué)與探索,2015(9):1034-1043,2015.

[3] 劉小軍,張東培,謝寧, 等.大規(guī)模地下空間在線展示關(guān)鍵技術(shù)[J].光學(xué)精密工程,2015,23(3).

猜你喜歡
建筑信息模型碰撞檢測(cè)
全新預(yù)測(cè)碰撞檢測(cè)系統(tǒng)
基于BIM的鐵路信號(hào)室外設(shè)備布置與碰撞檢測(cè)方法
Unity3D中碰撞檢測(cè)問(wèn)題的研究
BIM在設(shè)計(jì)企業(yè)的應(yīng)用經(jīng)驗(yàn)
特高壓換流站工程建設(shè)利用信息化提升管控能力研究
BIM技術(shù)在工程造價(jià)咨詢行業(yè)的應(yīng)用研究
信息技術(shù)在工程造價(jià)計(jì)算與管理中的應(yīng)用
商(2016年27期)2016-10-17 06:39:53
BIM技術(shù)下的某辦公樓項(xiàng)目管線碰撞檢測(cè)
苍梧县| 玉田县| 府谷县| 滁州市| 武冈市| 新建县| 山西省| 莲花县| 万盛区| 大安市| 九龙坡区| 青河县| 扎兰屯市| 平武县| 博客| 白城市| 哈尔滨市| 高唐县| 灵山县| 百色市| 博白县| 江油市| 四川省| 正阳县| 建阳市| 徐汇区| 定兴县| 观塘区| 广安市| 台安县| 县级市| 桃源县| 离岛区| 呼玛县| 封开县| 尼勒克县| 湖南省| 和硕县| 南和县| 阿克| 内丘县|