本發(fā)明屬于計算機圖形學領(lǐng)域,具體地,涉及一種用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量模型的三維可視化引擎及在web應(yīng)用程序中的調(diào)用方法。
背景技術(shù):
bim技術(shù)旨在解決設(shè)計、建造、運維過程中的可視化溝通與信息共享問題,在土木工程領(lǐng)域得到日益廣泛的應(yīng)用?;赽im模型的三維可視化和建筑全生命周期參數(shù)化管理,是現(xiàn)代大型復雜建筑的研究方向之一。由于大型建筑體量巨大、構(gòu)件數(shù)目繁多,對bim模型三維可視化的要求越來越高。而且由于bim模型是建筑信息管理的載體,承載的管理屬性也越來越復雜。因此,基于云+端的模式,進行全生命周期的建造信息可視化、信息協(xié)同共享,需要一個流暢的三維可視化實時渲染的引擎,來支持用戶對于大體量(億以上面片數(shù))的bim模型進行三維可視化實時瀏覽。
由于硬件計算水平的限制,目前市場上的國內(nèi)外以建模為主的軟件并不能有效的解決這個問題,多數(shù)以鏈接的模式,分區(qū)建模和用模,且對云+端的應(yīng)用模式中客戶端的顯示計算性能要求過高,離市場實用性的要求還有不少的差距。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明提供了一種用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量bim模型的三維可視化引擎及web應(yīng)用程序調(diào)用方法,實時對bim模型進行三維場景的挑選和剔除,自動對場景進行多級lod加載,以適應(yīng)客戶端硬件計算水平。
為實現(xiàn)上述目的,本發(fā)明采用如下方案:
一種基于bim模型的三維可視化引擎,該可視化引擎包括地形模型生成系統(tǒng)、多源模型支持系統(tǒng)、場景生成系統(tǒng)、模型資源加載系統(tǒng)和模型交互場景管理系統(tǒng)。
多源模型支持系統(tǒng)將不同格式模型與地形模型生成系統(tǒng)進行組合之后形成一個完整模型,該模型經(jīng)過資源轉(zhuǎn)換之后通過場景生成系統(tǒng)的自動計算形成不同層次的模型文件。場景調(diào)度與交互系統(tǒng)通過場景調(diào)度與交互模塊進行模型文件的加載與交互,以保證用戶進行三維場景的實時交互。
地形模型生成系統(tǒng):負責基于dlg數(shù)字線劃圖進行地形場景的生成,并將分層地理信息數(shù)據(jù)存儲到數(shù)據(jù)庫中。
多源模型支持系統(tǒng):負責對接不同的建模工具,將不同的建模工具所建的模型,按照模型所在的坐標位置組合在場景中,并安放在地形模型生成系統(tǒng)中的場景位置。
場景生成系統(tǒng):通過對整體模型的資源進行優(yōu)化、按照場景中的觀察者位置,對場景進行挑選和剔除,并自動進行多級lod的實時計算。
模型資源加載系統(tǒng):支持系統(tǒng)以云+端的模式進行三維場景數(shù)據(jù)從服務(wù)器到客戶端的在線傳輸和離線下載。
模型交互場景管理系統(tǒng):用于在場景中進行用戶視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互功能,滿足用戶多種用模型需求。
所述地形模型生成子系統(tǒng),包括三維數(shù)字高程的提取、地形三角網(wǎng)生成與優(yōu)化、地形紋理貼圖、水面場景優(yōu)化、樹木布置優(yōu)化等的地形地貌因素的建模及優(yōu)化。
所述多源模型生成子系統(tǒng),包括對市場上主流的建模軟件進行模型、包括紋理、材質(zhì)及建模過程中記錄的屬性數(shù)據(jù)進行無損的導入,并將模型按照空間位置和地形信息進行配準。
所述場景生成子系統(tǒng),包括對導入場景中的模型,根據(jù)動態(tài)松弛二叉樹算法進行資源的重新計算、確保場景的挑選和剔除的高效,對場景中的模型自動進行細節(jié)lod算法。并將場景生成的模型文件存放在服務(wù)器上。
所述場景生成子系統(tǒng)包括如下系統(tǒng):
系統(tǒng)1:用于利用revit軟件將單個原始bim模型轉(zhuǎn)換為單個構(gòu)件的模型文件,通過集合,形成多個構(gòu)件的模型文件集合。
系統(tǒng)2:用于將模型文件集合合并為頂層空間塊,利用減面算法對面數(shù)進行精簡。將頂層空間塊保存為空間二叉樹的一個節(jié)點。
系統(tǒng)3:用于以8n為基數(shù)對頂層空間塊劃分為多個小空間塊,同時利用減面算法使每個空間塊面數(shù)等于原始面數(shù),且小于一定的面數(shù)為止,經(jīng)過面數(shù)精簡將各個小空間塊保存為空間二叉樹的各個節(jié)點。
系統(tǒng)4:用于將空間塊節(jié)點資源集合用于實時渲染,渲染時根據(jù)當前空間塊與相機的距離,以及相機的視場角、屏幕分辨率,計算出當前空間塊的屏幕空間誤差,根據(jù)誤差大小決定是否繼續(xù)向下一層劃分。將不再繼續(xù)劃分層次的空間塊作為渲染對象進行渲染。
系統(tǒng)5:用于利用gpu的異步遮擋查詢功能,動態(tài)剔除掉被遮擋的空間塊,進一步降低渲染負載。
所述模型資源加載系統(tǒng),支持模型文件服務(wù)器與客戶端之間的模型加載服務(wù);當客戶端登陸系統(tǒng)時,系統(tǒng)檢索本地沒有相應(yīng)的模型緩存文件時,系統(tǒng)提示客戶進行離線更新或在線更新,在線更新時,通過特殊的算法進行不同細節(jié)lod的模型的在線加載,確保用戶能夠流暢的進行模型的加載與更新;
所述模型交互場景管理系統(tǒng),用于在網(wǎng)頁和應(yīng)用程序中提供三維可視化瀏覽服務(wù)。在場景中進行用戶視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互操作,滿足用戶多種用模需求。
一種基于bim模型的三維可視化引擎的web應(yīng)用程序調(diào)用方法,采用上述的三維可視化引擎,其特征在于,具體包括以下步驟:
步驟1:根據(jù)數(shù)字線劃圖、dem數(shù)據(jù)等,通過配準生成地形模型;
步驟2:根據(jù)不同的建模軟件,提供深度繼承于三維建模工具的模型上傳和轉(zhuǎn)換工具,并在三維的場景中,根據(jù)統(tǒng)一的坐標系統(tǒng),自動進行不同模型之間、模型與地形之間的位置配準;
步驟3:利用場景生成工具,整合地形模型數(shù)據(jù),對整體模型的資源進行優(yōu)化,按照場景中的觀察者位置,對場景進行挑選和剔除,并自動進行多級lod的實時計算,將生成的模型資源放在模型轉(zhuǎn)換服務(wù)器上;
步驟4:以云+端的模式進行三維場景數(shù)據(jù)以不同細節(jié)lod層級從服務(wù)器到客戶端的在線傳輸和離線下載;
步驟5:根據(jù)客戶端的請求,在場景中進行視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互功能。
所述步驟3包括如下步驟:
步驟3.1:利用revit軟件將單個原始bim模型轉(zhuǎn)換為單個構(gòu)件的模型文件,通過集合,形成多個構(gòu)件的模型文件集合。
步驟3.2:將模型文件集合合并為頂層空間塊,利用減面算法對面數(shù)進行精簡。將頂層空間塊保存為空間二叉樹的一個節(jié)點。
步驟3.3:以8n為基數(shù)對頂層空間塊劃分為多個小空間塊,同時利用減面算法使每個空間塊面數(shù)等于原始面數(shù),且小于一定的面數(shù)為止,經(jīng)過面數(shù)精簡將各個小空間塊保存為空間二叉樹的各個節(jié)點。
步驟3.4:將空間塊節(jié)點資源集合用于實時渲染,渲染時根據(jù)當前空間塊與相機的距離,以及相機的視場角、屏幕分辨率,計算出當前空間塊的屏幕空間誤差,根據(jù)誤差大小決定是否繼續(xù)向下一層劃分。將不再繼續(xù)劃分層次的空間塊作為渲染對象進行渲染。
步驟3.5:同時利用gpu的異步遮擋查詢功能,動態(tài)剔除掉被遮擋的空間塊,進一步降低渲染負載。
附圖說明
圖1為用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量bim模型的三維可視化引擎
圖2為用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量bim模型的web應(yīng)用程序調(diào)用方法
具體實施方式
下面結(jié)合具體實例對本發(fā)明進行詳細說明。以下實例將有助于本領(lǐng)域的技術(shù)人員進一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進。這些都屬于發(fā)明的保護范圍。
如圖1所示,一種用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量bim模型的三維可視化引擎,包括地形模型生成系統(tǒng)、多源模型支持系統(tǒng)、場景生成系統(tǒng)、模型資源加載系統(tǒng)、模型交互場景管理系統(tǒng)。
其特征在于:地形模型生成系統(tǒng)負責基于dlg數(shù)字線劃圖進行地形場景的生成,并將分層地理信息數(shù)據(jù)存儲到數(shù)據(jù)庫中;多源模型支持系統(tǒng)將對接不同的建模工具,將不同建模工具所建的模型,按照模型所在的坐標位置組合在場景中,并安放在合適的位置;場景生成系統(tǒng)通過對整體模型的資源進行優(yōu)化、按照場景中的觀察者位置,對場景進行挑選和剔除,并自動進行多級lod的實時計算;模型資源加載系統(tǒng)支持系統(tǒng)以云+端的模式進行三維場景數(shù)據(jù)從服務(wù)器到客戶端的在線傳輸和離線下載;模型交互場景管理系統(tǒng)用于在場景中進行用戶視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互功能,滿足用戶多種用模需求。
地形模型生成系統(tǒng),根據(jù)數(shù)字線劃圖、dem數(shù)據(jù)等,通過配準生成地形模型,通過地形自動lod算法,無縫加載各層級lod,確保地形精確的進行加載和顯示。支持局部平面地形和地球球面地形;支持超海量數(shù)據(jù)的分頁調(diào)度;支持地形無縫lod過渡,地形網(wǎng)格能夠在高低精度間平滑過渡。此系統(tǒng)負責地形場景的生成,并將分層地理信息數(shù)據(jù)存儲到數(shù)據(jù)庫中。
多源模型支持系統(tǒng),系統(tǒng)支持常用建模工具所建立的模型,通過系統(tǒng)提供的深度繼承于各建模工具的二次開發(fā)接口所建立的轉(zhuǎn)換工具,或通過標準的數(shù)據(jù)ifc格式中轉(zhuǎn),將多源的模型按照模型所在的坐標位置加載到三維引擎所生成的場景中,自動進行不同模型之間、模型與地形之間的位置配準。
場景生成系統(tǒng),對導入場景中的模型,根據(jù)動態(tài)松弛二叉樹算法對模型整體資源進行優(yōu)化,動態(tài)的根據(jù)觀察者的距離遠近、及位置(視錐體)對場景進行挑選和剔除,并自動進行多級lod的實時計算,將生成的模型資源放在模型轉(zhuǎn)換服務(wù)器上。
模型資源加載系統(tǒng),系統(tǒng)以云+端的模式進行三維場景數(shù)據(jù)從服務(wù)器到客戶端的在線傳輸和離線下載,當客戶端登陸系統(tǒng)時,系統(tǒng)檢索本地沒有相應(yīng)的模型緩存文件時,系統(tǒng)提示客戶進行離線更新或在線更新,在線更新時,通過特殊的算法進行不同細節(jié)lod的模型的在線加載,確保用戶能夠流暢的進行模型的加載與更新。
模型交互管理系統(tǒng),在場景中進行視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互功能,滿足各種用模需求。在用戶使用的過程中,系統(tǒng)通過算法自動的進行場景的挑選和剔除,根據(jù)客戶端的顯卡及顯存(顯示計算能力),自動進行場景計算(場景的可視構(gòu)件及面片數(shù)的加減),將場景的渲染的三角面數(shù),始終維持在一個客戶端可計算的數(shù)量級內(nèi),確保用戶的使用效果。
優(yōu)選地,所述場景生成子系統(tǒng)包括如下系統(tǒng):
系統(tǒng)1:用于利用revit軟件將單個原始bim模型轉(zhuǎn)換為單個構(gòu)件的模型文件,通過集合,形成多個構(gòu)件的模型文件集合。
系統(tǒng)2:用于將模型文件集合合并為頂層空間塊,利用減面算法對面數(shù)進行精簡。將頂層空間塊保存為空間二叉樹的一個節(jié)點。
系統(tǒng)3:用于以8n為基數(shù)對頂層空間塊劃分為多個小空間塊,同時利用減面算法使每個空間塊面數(shù)等于原始面數(shù),且小于一定的面數(shù)為止,經(jīng)過面數(shù)精簡將各個小空間塊保存為空間二叉樹的各個節(jié)點。
系統(tǒng)4:用于將空間塊節(jié)點資源集合用于實時渲染,渲染時根據(jù)當前空間塊與相機的距離,以及相機的視場角、屏幕分辨率,計算出當前空間塊的屏幕空間誤差,根據(jù)誤差大小決定是否繼續(xù)向下一層劃分。將不再繼續(xù)劃分層次的空間塊作為渲染對象進行渲染。
系統(tǒng)5:用于利用gpu的異步遮擋查詢功能,動態(tài)剔除掉被遮擋的空間塊,進一步降低渲染負載。
如圖2所示,用于在網(wǎng)頁中動態(tài)實時瀏覽超大體量bim模型的web應(yīng)用程序調(diào)用方法,包括如下步驟:
步驟1:根據(jù)數(shù)字線劃圖、dem數(shù)據(jù)等,通過配準生成地形模型;
根據(jù)數(shù)字高程模型,提取三維數(shù)字高程,生成與優(yōu)化地形三角網(wǎng),并依據(jù)地形紋理貼圖、水面場景優(yōu)化、樹木布置優(yōu)化等的地形地貌因素進行地形場景的建模及優(yōu)化;
步驟2:根據(jù)不同的建模軟件,提供深度繼承于三維建模工具的模型上傳和轉(zhuǎn)換工具,并在三維的場景中,根據(jù)統(tǒng)一的坐標系統(tǒng),自動進行不同模型之間、模型與地形之間的位置配準;
多源模型生成系統(tǒng)支持對市場上主流的建模軟件進行模型、包括紋理、材質(zhì)及建模過程中記錄的屬性數(shù)據(jù)的無損導入,并根據(jù)統(tǒng)一的坐標系統(tǒng),將模型按照空間位置和地形信息進行配準。
步驟3:利用場景生成工具,整合地形模型數(shù)據(jù),對整體模型的資源進行優(yōu)化,按照場景中的觀察者位置,對場景進行挑選和剔除,并自動進行多級lod的實時計算,將生成的模型資源放在模型轉(zhuǎn)換服務(wù)器上;
對于導入場景中的模型,根據(jù)動態(tài)松弛二叉樹算法進行資源的重新計算、確保場景的挑選和剔除的高效,對場景中的模型進行自動的細節(jié)lod算法。并將場景生成的模型文件,包括動態(tài)松弛二叉樹算法、自動細節(jié)lod算法、和渲染計算、渲染文件存放服務(wù)器。
步驟4:以云+端的模式進行三維場景數(shù)據(jù)以不同細節(jié)lod層級從服務(wù)器到客戶端的在線傳輸和離線下載;
當客戶端登陸系統(tǒng)時,系統(tǒng)檢索本地沒有相應(yīng)的模型緩存文件時,系統(tǒng)提示客戶進行離線更新或在線更新,在線更新時,通過特殊的算法進行不同細節(jié)lod的模型的在線加載,確保用戶能夠流暢的進行模型的加載與更新。
步驟5:根據(jù)客戶端的請求,在場景中進行視圖瀏覽、視圖快照、場景標注、空間量測、空間剖切、屬性查詢、圖文關(guān)聯(lián)等模型交互功能。
在用戶使用的過程中,系統(tǒng)通過算法自動的進行場景的挑選和剔除,根據(jù)客戶端的顯卡及顯存(顯示計算能力),自動進行場景計算(場景的可視構(gòu)件及面片數(shù)的加減),將場景的渲染的三角面數(shù),始終維持在一個客戶端可計算的數(shù)量級內(nèi),確保用戶的使用效果。
所述步驟3包括如下步驟:
步驟3.1:利用revit軟件將單個原始bim模型轉(zhuǎn)換為單個構(gòu)件的模型文件,通過集合,形成多個構(gòu)件的模型文件集合。
步驟3.2:將模型文件集合合并為頂層空間塊,利用減面算法對面數(shù)進行精簡。將頂層空間塊保存為空間二叉樹的一個節(jié)點。
步驟3.3:以8n為基數(shù)對頂層空間塊劃分為多個小空間塊,同時利用減面算法使每個空間塊面數(shù)等于原始面數(shù),且小于一定的面數(shù)為止,經(jīng)過面數(shù)精簡將各個小空間塊保存為空間二叉樹的各個節(jié)點。
步驟3.4:將空間塊節(jié)點資源集合用于實時渲染,渲染時根據(jù)當前空間塊與相機的距離,以及相機的視場角、屏幕分辨率,計算出當前空間塊的屏幕空間誤差,根據(jù)誤差大小決定是否繼續(xù)向下一層劃分。將不再繼續(xù)劃分層次的空間塊作為渲染對象進行渲染。
步驟3.5:同時利用gpu的異步遮擋查詢功能,動態(tài)剔除掉被遮擋的空間塊,進一步降低渲染負載。