一種基于WebGL的大批量傾斜攝影測量三維模型加載方法
【技術領域】
[0001]本發明涉及數字地球模型渲染技術,尤其涉及一種基于WebGL的大批量傾斜攝影測量三維模型加載方法。
【背景技術】
[0002]隨著HTML5規范逐漸深入人心,基于HTML5的應用開始火熱起來,利用HTML5技術來渲染三維數字城市模型也成為數字地球、數字城市開發者的一個熱點。然而,由于HTML5種所使用的WebGL技術使用JavaScript綁定OpenGL ES 2.0進行三維模型渲染,因此在渲染效率上很難與桌面系統特別是原生態的OpenGL程序相提并論。而另一方面,隨著傾斜攝影測量技術的發展,現在的數字城市中已開始大量采用這種清晰、逼真且建模自動化程度較高的三維模型。但與傳統主要通過手動建模的數字城市相比,基于傾斜攝影測量模型構建的數字城市模型數量更多、渲染任務量更大。無論是WebGL的渲染效率還是Internet上的數據下載速度暫時都受到制約的情況下,如何對大批量傾斜攝影測量模型的渲染/加載策略/方法進行改進,使之能滿足通過瀏覽器進行數字城市的順利加載、滿足互聯網上的三維模型瀏覽需要就成為一個亟待解決的重要問題。
【發明內容】
[0003]本發明要解決的技術問題在于針對現有技術中的缺陷,提供一種基于WebGL的大批量傾斜攝影測量三維模型加載方法。
[0004]本發明解決其技術問題所采用的技術方案是:一種基于WebGL的大批量傾斜攝影測量三維模型加載方法,包括以下步驟:
[0005]1)將所有傾斜攝影測量三維模型按照縮放級別進行劃分;
[0006]2)對分組后的傾斜攝影測量三維模型按照縮放級別和經瑋度范圍進行數據分片,每一個分片保存為一個分片模型;并保存以下分片信息:分片等級;每一等級的模型分片數;每一個模型分片所對應的坐標范圍;
[0007]3)對分片模型文件進行加載分組,分組步驟如下:
[0008]3.1)確定整個數字城市將要被加載的縮放等級;
[0009]3.2)確定該等級下的分組數;所述每個縮放等級下的分組數為事先設定;
[0010]3.3)確定該等級下的每個分組的區域范圍,根據分組的區域范圍確定每個分組中包括的分片模型;
[0011]4)批量三維模型動態加載;
[0012]4.1)由當前數字城市場景瀏覽的攝像機參數,計算攝像機的范圍以確定需要加載的模型分組等級;
[0013]4.2)由當前攝像機的中心點位置,與當前加載等級的分組范圍比較,判斷其落入的分組,加載相應分組所對應的全部三維模型;
[0014]4.3)當攝像機發生縮放操作時,計算將要加載的模型分組等級,如果與原等級不同,判斷當前已加載的是否為最大模型分組等級且模型加載量超過60%,若是則攝像機的后續縮放過程中將不再刪除已經加載的三維模型;否則刪除已加載的三維模型,轉而加載新的等級下的分組模型;
[0015]4.4)當攝像機發生移動操作時,則依據步驟4.2)判斷需要加載的模型分組是否已經被加載了,如果沒有則進行加載。
[0016]按上述方案,所述步驟2)中分片工具為三維處理軟件。
[00?7] 按上述方案,所述步驟2)中分片信息記錄在LODTree.xml中。
[0018]按上述方案,所述步驟3)中由讀入的模型分片信息制定分組策略,主要遵循的原則有:每一分組的切片模型數量為7至15個;每一分組中的切片模型相鄰;不同等級的模型分組所對應的切片模型數有明顯的差別;最低等級的所有模型切片只對應一個分組。
[0019]本發明產生的有益效果是:本發明通過使用一種模型的分組動態加載策略使得大批量的傾斜攝影測量三維模型可以無插件的呈現/渲染在Web瀏覽器上,在本發明基礎上可實現數字城市的跨平臺展示。
【附圖說明】
[0020]下面將結合附圖及實施例對本發明作進一步說明,附圖中:
[0021]圖1是本發明中實施例的模型分組方法流程圖;
[0022]圖2是本發明實施數字城市批量模型動態加載方法流程圖。
【具體實施方式】
[0023]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
[0024]如圖1所示,一種基于WebGL的大批量傾斜攝影測量三維模型加載方法,包括以下步驟:
[0025]1)將所有傾斜攝影測量三維模型按照縮放級別進行劃分;
[0026]2)對分組后的傾斜攝影測量三維模型按照縮放級別和經瑋度范圍進行數據分片,每一個分片保存為一個分片模型;并保存以下分片信息:分片等級;每一等級的模型分片數;每一個模型分片所對應的坐標范圍;
[0027]3)讀入模型分片信息(LODTree.xml);
[0028]由模型分片所產生的LODTree.xml文件中讀入模型分片信息來決定如何進行模型分組;
[0029]這些分片信息主要包括,(1)分片等級;(2)每一等級的模型分片數;(3)每一個模型分片所對應的坐標范圍及其模型數據路徑。
[0030]4)分組策略制定;
[0031]由讀入的模型分片信息制定分組策略,主要遵循的原則有:
[0032]a)每一分組的切片模型數量不宜太多,但也不宜太少。最好在10個左右。
[0033]b)每一分組中的切片模型盡量相鄰,以便于從切片模型坐標范圍(XY方向)中計算到分組范圍(XY方向坐標范圍)。
[0034]C)模型分組的等級之間所對應的切片模型數盡量有比較明顯的差別。
[0035]D)最低等級的模型分組數設置為1。
[0036]5)模型拷貝
[0037]按照4)所確定的分組等級數建立文件夾如(0,1,2…分別代表等級0,1,2等),分別將各個等級所對應的分片模型拷貝到這些文件夾中。為了達到Webgl對模型渲染的需要,這些模型需要統一轉換成bgltf格式。
[0038]6)分組等級范圍及最大等級模型數記錄
[0039]為了確定攝像機進行縮放時進入到的是哪一個分組等級。需要記錄下每個分組等級中的視野范圍。該范圍計算就是取該等級下的所有切片分組的XY坐標范圍,計算其平均值并記錄下來。對于最大等級的模型分組,需要記錄下該等級下的所有模型的個數。
[0040]7)模型分組信息記錄
[0041 ]以CZML文件格式記錄下所有模型分組信息。
[0042]其中
[0043]CZML文件名為該模型分組對應的經瑋度范圍。如122.955_39.675_122.984_39.682.czml代表該分組的經瑋度范圍為經度(122.955-122.984),瑋度(39.675-39.682)。
[0044]CZML中記錄了組成該分組的所有模型分片坐標信息和對應的模型路徑。文件采用j son 格式記錄這些信息,形如:[{post1n: ,model: },{post 1n: ,model:} , {post1n:,model:}…]。posit1n代表模型顯示位置坐標,model代表模型路徑。本發明中對批量傾斜攝影測量模型分組方法見圖1。
[0045]8)批量模型動態加載步驟,本發明中基于Webgl的批量傾斜攝影測量模型動態加載方法見圖2;
[0046]8.1)初始加載時加載最低等級的模型分組中的模型,由于最低等級中的模型分組數為1,也就是所有該等級下的模型都被加載出來;
[0047]8.2)當用戶進行縮放操作時,對用戶當前的攝像機參數進行計算并與步驟6)中記錄的等級范圍對比,判斷其是否進入了另一個等級;
[0048]8.3)如果在8.2中得到的加載等級與之前的等級不等則移除當前所加載的所有模型,轉而加載新的加載等級下的模型;
[0049]8.4)在步驟8.3)中如果進行縮放操作前,已經加載到最大等級的模型了。則需要判斷該等級模型數加載量是否已經超過了 60%。如果已經超過了則不再移除這些已經加載了的模型。
[0050]8.5)在用戶的移動操作時,計算攝像機中心落在當前等級的哪一個模型分組范圍內。如果該范圍所對應的模型分組沒有被加載,則將其進行加載,并將該范圍信息存儲到已加載模型分組范圍集合中。由于每個模型分組的范圍被記錄在其文件名上,所以可以將這些分組模型名進行索引,就可以快速判斷出攝像機中心落在哪個矩形范圍內。
[0051]應當理解的是,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,而所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。
【主權項】
1.一種基于WebGL的大批量傾斜攝影測量三維模型加載方法,其特征在于,包括以下步驟: 1)將所有傾斜攝影測量三維模型按照縮放級別進行劃分; 2)對分組后的傾斜攝影測量三維模型按照縮放級別和經瑋度范圍進行數據分片,每一個分片保存為一個分片模型;并保存以下分片信息:分片等級;每一等級的模型分片數;每一個模型分片所對應的坐標范圍; 3 )對分片模型文件進行加載分組,分組步驟如下: 3.1)確定整個數字城市將要被加載的縮放等級; 3.2)確定該等級下的分組數;所述每個縮放等級下的分組數為事先設定; 3.3)確定該等級下的每個分組的區域范圍,根據分組的區域范圍確定每個分組中包括的分片模型; 4)批量三維模型動態加載; 4.1)由當前數字城市場景瀏覽的攝像機參數,計算攝像機的范圍以確定需要加載的模型分組等級; 4.2)由當前攝像機的中心點位置,與當前加載等級的分組范圍比較,判斷其落入的分組,加載相應分組所對應的全部三維模型; 4.3)當攝像機發生縮放操作時,計算將要加載的模型分組等級,如果與原等級不同,判斷當前已加載的是否為最大模型分組等級且模型加載量超過60%,若是則攝像機的后續縮放過程中將不再刪除已經加載的三維模型;否則刪除已加載的三維模型,轉而加載新的等級下的分組模型; 4.4)當攝像機發生移動操作時,則依據步驟4.2)判斷需要加載的模型分組是否已經被加載了,如果沒有則進行加載。2.根據權利要求1所述的方法,其特征在于,所述步驟2)中分片工具為三維處理軟件。3.根據權利要求1所述的方法,其特征在于,所述步驟2)中分片信息記錄在LODTree.xml中。4.根據權利要求1所述的方法,其特征在于,所述步驟3)中由讀入的模型分片信息制定分組策略,主要遵循的原則有:每一分組的切片模型數量為7至15個;每一分組中的切片模型相鄰;模型分組的等級之間所對應的切片模型數有明顯的差別;最低等級的模型分組數設置為1。
【專利摘要】本發明公開了一種基于WebGL的大批量傾斜攝影測量三維模型加載方法,該方法包括以下步驟:1)傾斜攝影測量模型的分片與分組;2)基于WebGL的三維模型動態加載。本發明通過以上這些方法與策略來實現基于HTML5的數字三維城市展現,在本發明方法的基礎上可實現瀏覽器上的傾斜攝影測量三維數字城市。
【IPC分類】G06F17/30
【公開號】CN105426488
【申請號】CN201510814628
【發明人】余翔宇
【申請人】中國地質大學(武漢)
【公開日】2016年3月23日
【申請日】2015年11月20日