亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        大規(guī)模復(fù)雜BIM場景的Web展示方案

        2017-12-13 17:18:29胡錦亮
        電腦知識與技術(shù) 2017年33期

        胡錦亮

        摘要:BIM(Building Information Modeling)是基于三維數(shù)字設(shè)計解決方案所構(gòu)建的“可視化”數(shù)字建筑模型,而網(wǎng)頁處理大規(guī)模3D場景有一定的性能缺陷?,F(xiàn)在探索提出了BIM與Web大規(guī)模場景結(jié)合的繪制方案。首先,對大規(guī)模BIM數(shù)據(jù)進(jìn)行體素化處理,然后通過區(qū)域劃分將數(shù)據(jù)劃分為多個連通區(qū)域,最后使用基于視錐增量式關(guān)注域(Frustum Of Interests)對一個連通區(qū)域的數(shù)據(jù)加載進(jìn)行進(jìn)一步的性能優(yōu)化,提出了一整套的加載方案。最終通過實驗,證明了方案的有效性。

        關(guān)鍵詞: BIM; Web3D技術(shù); FOI; 連通圖; 網(wǎng)頁技術(shù)

        中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)33-0226-03

        Abstract: BIM (Building Information Modeling) is Based on the three-dimensional digital design solution built by the "visual" digital building model, and web processing large-scale 3D scene has some performance flaws. Now explores the drawing scheme of combining BIM with Web large scale scene. First, the bulk BIM data is voxelized, and the data is divided into multiple connected regions by region division. Finally, the data loading of a connected region Based on the Frustum of Interests is used to further Performance optimization, put forward a set of loading schema. Finally, through the experiment, proved the effectiveness of the method.

        Key words:BIM; Web3D; FOI; connect graph; web technology

        1 概述

        當(dāng)前是一個大數(shù)據(jù)的時代,各行業(yè)的數(shù)據(jù)規(guī)模和種類都在以前所未有的速度增長。建筑業(yè)更是如此,隨著智慧城市的發(fā)展,建筑大數(shù)據(jù)需要包含整個建筑生命周期中的所有數(shù)據(jù),同時對數(shù)據(jù)進(jìn)行很好的管理,BIM正是處理建筑大數(shù)據(jù)的有力武器。

        建筑信息模型BIM(Building Information Modeling)是基于三維數(shù)字設(shè)計解決方案所構(gòu)建的“可視化”數(shù)字建筑模型,近年來,作為建筑信息化與計算機(jī)3D可視化交叉合作滲透的新興技術(shù),BIM已經(jīng)成為建設(shè)及土木行業(yè)信息化發(fā)展的一項重要技術(shù)。BIM技術(shù)的應(yīng)用使原來大規(guī)模(形體關(guān)系復(fù)雜、設(shè)施管線布置錯綜、設(shè)計實施運(yùn)維困難)建筑數(shù)據(jù)信息的集成、表達(dá)、更新以及傳遞共享越來越簡捷。

        隨著互聯(lián)網(wǎng)時代的到來,基于Web3D渲染的場景加載技術(shù)也應(yīng)運(yùn)而生,BIM與Web3D技術(shù)相結(jié)合,可以更方便地在網(wǎng)頁上構(gòu)建三維的虛擬世界。但是由于瀏覽器的局限性,其內(nèi)存無法容納很大規(guī)模的數(shù)據(jù)同時加載,在這種情況下,如何在網(wǎng)頁端處理如此大規(guī)模的BIM場景,同時實現(xiàn)展示流暢,是一個挑戰(zhàn)。

        本文主要研究并提出了一套基于BIM與Web3D技術(shù)的大規(guī)模Web場景加載的方案。方案首先對BIM數(shù)據(jù)進(jìn)行解析,得到體素化的模型數(shù)據(jù);然后對場景進(jìn)行連通性分塊,減少同時需要加載的數(shù)據(jù)量;然后基于FOI [1-4]思想,保證在一個視點只需要加載最少的數(shù)據(jù),從而進(jìn)一步減少數(shù)據(jù)量。最后通過實際數(shù)據(jù)實驗,證明本文提出的方案是可行的。本方案主要使用WebGL以及網(wǎng)頁開發(fā)技術(shù)。

        2 數(shù)據(jù)預(yù)處理

        2.1 BIM數(shù)據(jù)解析

        我們所關(guān)注的模型標(biāo)準(zhǔn)是BIM,BIM(Building Information Modeling)作為新一代智能建造核心技術(shù)的標(biāo)準(zhǔn),在移動互聯(lián)網(wǎng)上實現(xiàn)大規(guī)模BIM 場景在線可視化具有十分重要的意義。我們以主流的BIM 格式IFC(Industry Foundation Classes)為輸入數(shù)據(jù),對大規(guī)模三維BIM場景數(shù)據(jù)進(jìn)行深入的語義分析,提出一套輕量級的Web3d數(shù)據(jù)解析方案,對原始數(shù)據(jù)進(jìn)行預(yù)處理。

        BIM模塊之間的關(guān)系錯綜復(fù)雜,一個IFC文件中的實例可以被映射到多個其他所導(dǎo)出的IFC文件中,這樣就使得IFC文件很難去管理,對于網(wǎng)絡(luò)傳輸也有很大影響。一些研究[5-7]已經(jīng)證實這些冗余數(shù)據(jù)是阻礙BIM存儲和傳輸?shù)闹饕?fù)擔(dān)。所以需要對IFC數(shù)據(jù)進(jìn)行輕量化工作。

        通過研究,我們提出了一個方案,在保持IFC原始文件格式的前提下,對整個IFC文件的內(nèi)容、引用進(jìn)行掃描分析,查找并去除IFC文件中一些由于數(shù)據(jù)重復(fù)引起的冗余信息,提取出模型片元對應(yīng)的點的坐標(biāo)、片元的法向量、片元的顏色等等有用的信息,并對所提取出的信息進(jìn)行格式化,最終得到方便網(wǎng)絡(luò)傳輸以及瀏覽器端解析的數(shù)據(jù),以此來降低BIM的數(shù)據(jù)量,并適應(yīng)網(wǎng)絡(luò)的快捷傳輸與網(wǎng)頁在線渲染。

        2.2 基于連通圖的場景劃分

        由于場景規(guī)模太大,我們可以在合適的情況(如模型內(nèi)部環(huán)境)下,將模型數(shù)據(jù)按照一定的規(guī)范劃分為多個區(qū)塊,在合適的時間加載合適的模型區(qū)塊,同時刪除不可見區(qū)塊及時清除瀏覽器緩存,這樣可以大幅度降低所占用的瀏覽器內(nèi)存,避免瀏覽器內(nèi)存溢出導(dǎo)致崩潰的問題。

        基于數(shù)據(jù)解析后得到的基于體素的模型數(shù)據(jù),我們提出了一個基于連通圖的區(qū)塊劃分方案。我們將模型按照封閉性劃分為多個區(qū)塊,各個封閉區(qū)塊只有通過一個或多個的數(shù)據(jù)有限的“出入口”與別的區(qū)塊連通,通過結(jié)合視點與“出入口”的位置信息就可以判斷是否該進(jìn)行場景切換,我們根據(jù)這些“出入口”可以繪制出一個連通圖,從而確定場景切換的具體時機(jī)和規(guī)范。連通關(guān)系如圖1所示。

        在完成場景劃分后,我們可以根據(jù)當(dāng)前視點的位置確定需要加載的部分場景,而通過場景漫游移動視點時,根據(jù)連通點動態(tài)調(diào)整所需要顯示的場景,從而大幅度減少需要加載的數(shù)據(jù)。

        3 基于FOI的漸進(jìn)式加載技術(shù)

        在實際環(huán)境中,人的視野是有限的,超出這個界限的區(qū)域或不可見或模糊不清,實際上人所關(guān)注的區(qū)域正是在視野內(nèi)[8] 。通過確定當(dāng)前視點位置對模型數(shù)據(jù)進(jìn)行過濾,這是一種輕量化的解決方案。

        同時,結(jié)合數(shù)據(jù)處理階段所解析得到的基于網(wǎng)格體素的模型數(shù)據(jù),我們可以更方便得計算視野區(qū)域內(nèi)的模型數(shù)據(jù),不需要去判斷每一個模型片元是否在視野范圍內(nèi),而只要去判斷規(guī)格簡單的體素盒是否在視野中即可,然后間接決定該體素盒對用的多個模型片元是否在視野中,減少判斷難度和判斷次數(shù)。

        根據(jù)上述思想,我們提出了FOI (Frustum Of Interests)的概念,即視錐增量式關(guān)注域,其主要思路是近似模擬人的可視域,根據(jù)視點以及視錐區(qū)域計算算法動態(tài)計算需要渲染的模型片元,這樣就可以做到只調(diào)度視錐范圍內(nèi)的模型數(shù)據(jù),而對其他數(shù)據(jù)不加載,概念圖2如下。

        當(dāng)用戶在場景中漫游時,視點處于不同的位置往往有不同的FOI域,這就要求我們裝載的數(shù)據(jù)是實時變化的,由于重繪的時間間隔較短,F(xiàn)OI域在每個間隔內(nèi)的變化也是可計算的,根據(jù)行為的不同視錐區(qū)域往往只變化一個體素單位大小或者改變很小的角度,根據(jù)這一理論,我們提出了IFC大規(guī)模數(shù)據(jù)的傳輸調(diào)度機(jī)制,關(guān)鍵步驟如下:

        (1) 拾取當(dāng)前視點對應(yīng)的可見區(qū)域FOI內(nèi)的所有IFC構(gòu)件。

        (2) 發(fā)送數(shù)據(jù)請求到服務(wù)器端,請求數(shù)據(jù)庫中的IFC構(gòu)件的數(shù)據(jù)信息;

        (3) 服務(wù)器傳輸獲取的數(shù)據(jù)信息到客戶端;

        (4) 客戶端進(jìn)行渲染;

        (5) 根據(jù)漫游的行為(停頓、前進(jìn)、轉(zhuǎn)身)狀態(tài)應(yīng)用增量式FOI替換算法計算視錐內(nèi)新增的IFC構(gòu)件和被移除的構(gòu)件;

        (6) 根據(jù)獲取的變化信息對數(shù)據(jù)進(jìn)行處理,至(1)步;

        以上步驟思路大致為:初始化視點在一個確定的位置,這時計算根據(jù)當(dāng)前視點以及視線朝向計算視錐內(nèi)的模型,然后根據(jù)體素信息把響應(yīng)的體素模型渲染出來;當(dāng)在場景中進(jìn)行漫游時,動態(tài)調(diào)用FOI替換算法計算當(dāng)前視點的位置對比上一步視點所需要去掉以及增加的體素,然后進(jìn)行模型動態(tài)調(diào)整。

        在FOI概念中最核心的是FOI替換算法,這也是我們對計算diff進(jìn)行的輕量化操作。當(dāng)視點變化時,我們需要再次計算模型片元是否在視錐范圍內(nèi)??紤]到diff操作是頻繁觸發(fā)的,如果我們依然按照初始化時對所有體素盒進(jìn)行遍歷操作來判斷,那么所需要的計算量極大,很容易造成頁面崩潰卡死。FOI替換算法巧妙地減少了計算量。其核心思想是:首先約定每個計算周期的視點位置相對于上一個計算周期的視點位置變化不超過一個體素格距離(根據(jù)視點移動速度設(shè)置合適的計算周期),這樣我們只需要對視錐外層的體素進(jìn)行增減判斷就可以了,而不需要遍歷所有體素。通過這種diff算法,我們在減少計算量和減少內(nèi)存消耗兩方面進(jìn)行了輕量化處理。

        4 瀏覽器輕量化技術(shù)

        4.1 多線程技術(shù)

        有了上述的數(shù)據(jù)處理以及算法實現(xiàn)基礎(chǔ),我們還要具體結(jié)合Web瀏覽器端的具體情況。瀏覽器處理數(shù)據(jù)、計算和渲染圖形的能力比較差,在本課題中,瀏覽器需要同時完成分析處理場景數(shù)據(jù)、渲染大規(guī)模模型、發(fā)送數(shù)據(jù)請求等一系列工作。如果不能夠優(yōu)化瀏覽器性能,提升瀏覽器處理能力,那么必然會導(dǎo)致很嚴(yán)重的瀏覽器卡頓,影響用戶體驗。傳統(tǒng)的javascript只支持單線程編程,在處理數(shù)據(jù)量較大的計算時會遇到性能瓶頸。

        HTML5中提出了多線程webworker的概念,使得瀏覽器可以使用利用多線程去完成一些復(fù)雜的工作。在本文工作中,我們將網(wǎng)絡(luò)交互(如發(fā)送請求以及獲取數(shù)據(jù))、FOI算法計算數(shù)據(jù)差異放在獨立的一個線程中去處理,而在瀏覽器主線程中只負(fù)責(zé)模型的渲染工作。

        4.2 異步場景渲染

        良好的用戶交互和用戶視覺體驗是可視化場景加載非常重要的要求。目前渲染模型有兩種方式:發(fā)送多個請求獲取數(shù)據(jù),拿到所有數(shù)據(jù)后統(tǒng)一進(jìn)行模型的渲染;或者每發(fā)送一個數(shù)據(jù)請求都調(diào)用渲染接口進(jìn)行部分?jǐn)?shù)據(jù)渲染。

        我們常規(guī)選擇的方法是方法一,這種方法在數(shù)據(jù)下載時,頁面呈現(xiàn)空白狀態(tài),用戶可能會感覺頁面卡死或者網(wǎng)絡(luò)報錯,當(dāng)數(shù)據(jù)量比較大時,數(shù)據(jù)全部下載占用的時間比較長,用戶體驗很不好。

        方法二是在下載數(shù)據(jù)的同時也進(jìn)行模型渲染,配合上文提到的多線程技術(shù),可以使兩個步驟同步執(zhí)行,用戶可以馬上看見模型一塊一塊出現(xiàn),而不用等待很長時間,這樣用戶體驗比較好。同時我們進(jìn)行了進(jìn)一步的優(yōu)化,比如添加Modal層防止用戶在模型加載時非法操作以及設(shè)置模型出現(xiàn)的順序(通常以視點當(dāng)前位置開始出現(xiàn),然后向四周蔓延為最佳順序)。

        4.3 函數(shù)節(jié)流

        本文所提出方案是基于場景漫游的,視點在場景中漫游時,F(xiàn)OI算法頻繁被觸發(fā),而可能移動距離,視點還處于當(dāng)前體素塊中,這樣就白白消耗了系統(tǒng)的性能,容易造成頁面的卡頓。我們使用了函數(shù)節(jié)流的方法,確定一個最小時間范圍,如果在這個范圍內(nèi)重復(fù)觸發(fā),則不會調(diào)用算法去檢查差異,當(dāng)超過這個最小時間則觸發(fā)一次,并重新計算時間,javascript實現(xiàn)的節(jié)流算法如下:

        function throttle(method,delay,duration){

        var timer=null, begin=new Date();

        return function(){

        var context=this, args=arguments, current=new Date();;

        clearTimeout(timer);

        if(current-begin>=duration){

        method.apply(context,args);

        begin=current;

        }else{

        timer=setTimeout(function(){

        method.apply(context,args);

        },delay);}}}

        通過該方法,根據(jù)場景漫游的速度設(shè)置合理的最小時間,可以減少檢查更新的次數(shù),進(jìn)一步減輕瀏覽器計算的負(fù)擔(dān)。

        5 實驗結(jié)果

        最后本文通過實驗對上述提出的方法進(jìn)行了測試。測試環(huán)境為 Windows 10 操作系統(tǒng),使用 Chrome 瀏覽器進(jìn)行展示,硬件 配置為 Intel(R) Core(TM) i5-2400 CPU @3.10GHz 處理器、4.0GB 內(nèi)存、NVIDIA GeForce GTX460 顯卡。模型數(shù)據(jù)大小為200M,進(jìn)行5次加載漫游實驗。使用方案前后對比如表1所示。

        從表1可以看出,使用本文方案后,防止了頁面的崩潰,縮短了模型的加載時間,減少了內(nèi)存消耗量,同時場景的FPS顯著提高,這些都提高了用戶的使用體驗;而在使用以往直接加載方案時,頁面時常出現(xiàn)崩潰情況,且加載時間較長,內(nèi)存占用較高,頁面也有明顯的卡頓現(xiàn)象。測試效果如圖3所示。

        圖3 測試效果圖

        6 結(jié)論

        以上實驗表明,本文提出的方案適合大規(guī)模BIM模型在瀏覽器端的加載以及渲染,減少系統(tǒng)資源消耗,優(yōu)化模型加載,提高用戶體驗,為瀏覽器端大規(guī)模場景渲染提供了方向。

        參考文獻(xiàn):

        [1] Wang W, Jia J. An incremental smlaoi algorithm for progres? sive downloading large scale webvr scenes[C]. Proceedings of the 14th International Conference on 3D Web Technology. ACM, 2009: 55-60.

        [2] Falby J, Zyda M, Pratt D, et.al. Npsnet: hierarchical data structures for real-time three-dimensional visual simulation [J]. Computer Graphics, 1993, 17(1):65-69.

        [3] Schuwerk C, Chaudhari N, Steinbach E. An area-of-interest based communication architecture for shared haptic virtual en? vironments[C]. Haptic Audio Visual Environments and Games (HAVE), 2013 IEEE International Symposium on. IEEE, 2013: 57-62.

        [4] 賈金原, 王偉, 王明飛,等. 基于多層增量式可擴(kuò)展扇形興趣 區(qū)域的大規(guī)模 DVE 場景對等漸進(jìn)式傳輸機(jī)制[J]. 計算機(jī)學(xué) 報, 2014, 37(6):1324-1334.

        [5] L. Zhang, R. Issa, Ontology based partial building information model extraction,J. Comput. Civ. Eng. 27 (6) (2013) 576-584.

        [6] J. Won, G. Lee, C. Cho, No-schema algorithm for extracting a partial model from an IFC instance model, J. Comput. Civ. Eng. 27 (6) (2013) 585-592.

        [7] Y.-H. Lin, Y.-S. Liu, G. Gao, X.-G. Han, C.-Y. Lai,M. Gu, The IFC-based path planning for 3D indoor spaces, Adv. Eng. Inform. 27 (2) (2013) 189-205.

        [8] 王偉, 賈金原, 張晨曦, 等. 大規(guī)模虛擬場景漸進(jìn)式傳輸?shù)难?究進(jìn)展[J]. 計算機(jī)科學(xué), 2010, 37(2):38-43.

        中文字幕天堂网| 亚洲国产精品无码久久一区二区| 久久精品国产亚洲av香蕉| 精品久久久久久久久久中文字幕 | 亚洲麻豆视频免费观看| 久久亚洲av无码西西人体| 欧美国产日产一区二区| Jizz国产一区二区| 久久99国产综合精品女同| 日本又色又爽又黄又免费网站| 久久久久亚洲精品天堂| 美女裸体无遮挡黄污网站| 毛片在线视频成人亚洲| 男人和女人做爽爽视频| 初尝黑人嗷嗷叫中文字幕| 国产精品人成在线观看| 男女做羞羞事的视频网站| 老太脱裤子让老头玩xxxxx| 在线播放人成午夜免费视频| 国产精品一区二区三区蜜臀| 亚洲国产性夜夜综合另类| 农村欧美丰满熟妇xxxx| 国产精品久久无码不卡黑寡妇| 久久五月精品中文字幕| 蜜桃视频在线看一区二区三区 | 99精产国品一二三产品香蕉| 无码av一区在线观看| 日本女同av在线播放| 亚洲av日韩av永久无码下载| 日本夜爽爽一区二区三区| 国产高清丝袜美腿视频在线观看| 日韩三级一区二区不卡| 在线视频观看免费视频18| 一本无码av一区二区三区| 一本到亚洲av日韩av在线天堂| 国产乱人对白| 妇女性内射冈站hdwwwooo| 在线免费观看亚洲天堂av| 少妇高潮太爽了在线看| 一本色道久久99一综合| 偷拍区亚洲区一区二区|