專利名稱:三維gis地形渲染方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像渲染技術(shù)領(lǐng)域,特別是涉及一種三維GIS地形渲染方法,和一種 三維GIS地形渲染系統(tǒng)。
背景技術(shù):
近年來在電力行業(yè),尤其在主網(wǎng)生產(chǎn)領(lǐng)域通過三維GIS來復(fù)現(xiàn)三維地形并解決業(yè) 務(wù)問題已越來越受到業(yè)務(wù)部門的重視,但其目前普遍三維GIS產(chǎn)品的性能已無法支撐日益 提升的業(yè)務(wù)新要求。而渲染技術(shù)是影響三維地形仿真性能的一個(gè)核心技術(shù),因此一直是計(jì) 算機(jī)圖形學(xué)以及地理信息系統(tǒng)等相關(guān)領(lǐng)域的研究重點(diǎn)。
三維地形渲染可視化需要解決海量的復(fù)雜地形模型的渲染速度和渲染場(chǎng)景真實(shí) 性,與計(jì)算機(jī)圖形硬件有限的繪制能力之間的矛盾這個(gè)核心問題,目前在電力行業(yè)普遍 采用傳統(tǒng)的通過LOD控制的方式進(jìn)行三維GIS地形渲染,主要的技術(shù)有三種一是以不 規(guī)則三角網(wǎng)格(TIN)的方式實(shí)現(xiàn),但這種方法不利于場(chǎng)景渲染和管理;二是以Geometry Clipmaps (GC)的方式實(shí)現(xiàn),但其又無法精確控制誤差;之后基于四叉樹分割的方法最為廣 泛。其優(yōu)點(diǎn)在于,基于CPU網(wǎng)格動(dòng)態(tài)構(gòu)建,結(jié)合視點(diǎn)和網(wǎng)格粗糙度,可以很好地控制誤差, 但由于交互處理的數(shù)據(jù)量巨大,這種方法需進(jìn)行大量的預(yù)計(jì)算,CPU的開銷非常大,一般的 CPU和帶寬無法達(dá)到很高的渲染速度和很逼真的渲染效果。發(fā)明內(nèi)容
基于此,本發(fā)明提供一種三維GIS地形渲染方法和系統(tǒng),能有效提升三維GIS地形 場(chǎng)景渲染的速度,數(shù)據(jù)處理過程更簡單快速。
一種三維GIS地形渲染方法,包括如下步驟
載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形數(shù)據(jù) 的矩形網(wǎng)格;
將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格;
計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度 是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn);
對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行四叉樹分割;
對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的地形 數(shù)據(jù),生成地形圖元并渲染。
—種三維GIS地形渲染系統(tǒng),包括第一分割模塊、裁切模塊、判斷模塊、第二裁切 模塊和渲染模塊;
所述第一分割模塊用于載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分 割,生成所述地形數(shù)據(jù)的矩形網(wǎng)格;
所述裁切模塊用于將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格;
所述判斷模塊用于計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn);
所述第二裁切模塊用于對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行 四叉樹分割;
所述渲染模塊用于對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩 形網(wǎng)格對(duì)應(yīng)的地形數(shù)據(jù),生成地形圖元并渲染。
上述三維GIS地形渲染方法和系統(tǒng),基于四叉樹分割原理對(duì)龐大的地形數(shù)據(jù)進(jìn)行 簡單化處理,通過視錐體裁切能快速地剔除當(dāng)前不需顯示的數(shù)據(jù);本發(fā)明能有效提升三維 GIS地形場(chǎng)景渲染的速度,在保證三維地形渲染逼真效果的前提下,減少CPU開銷的同時(shí), 能提高GPU實(shí)時(shí)渲染的效率,從而有效提升三維GIS地形場(chǎng)景渲染的速度,同時(shí)也能避免因 GPU難以回溯導(dǎo)致的處理困難。
圖1為本發(fā)明三維GIS地形渲染方法在一實(shí)施例中的流程示意圖。
圖2為一實(shí)施例中四叉樹分割的示意圖。
圖3為一實(shí)施例中T型裂縫的示意圖。
圖4為一實(shí)施例中三角化處理的示意圖。
圖5為本發(fā)明三維GIS地形渲染系統(tǒng)在一實(shí)施例中的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明,但本發(fā)明的實(shí)施方式不限于 此。
如圖1所示,是本發(fā)明三維GIS地形渲染方法在一較佳實(shí)施例中的流程示意圖,包 括如下步驟
S11、載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形 數(shù)據(jù)的矩形網(wǎng)格;
將獲取的三維GIS地形數(shù)據(jù)看作一個(gè)矩形網(wǎng)格,對(duì)整個(gè)地形數(shù)據(jù)進(jìn)行四叉樹分 割,將整個(gè)三維GIS地形數(shù)據(jù)分割成多個(gè)矩形網(wǎng)格;如圖2所示是四叉樹分割的示意圖,將 整幅地形圖進(jìn)行四叉樹遞歸分割,得到多個(gè)小矩形網(wǎng)格,從而將原始地形數(shù)據(jù)組織成由固 定大小的規(guī)則的矩形塊網(wǎng)格,通過遍歷算法并每個(gè)矩形網(wǎng)格進(jìn)行標(biāo)注,即可獲取每個(gè)矩形 網(wǎng)格的地形數(shù)據(jù),因此能大幅提高后續(xù)的數(shù)據(jù)處理速度,非常適合GPU并行處理。
S12、將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格;
根據(jù)當(dāng)前顯示設(shè)備的分辨率大小,對(duì)不需顯示的矩形網(wǎng)格進(jìn)行裁切,只保留當(dāng)前 需顯示的地形數(shù)據(jù),采用視錐體裁切方法能快速地剔除掉無需顯示的地形數(shù)據(jù)。
在一較佳實(shí)施例中,所述視錐體裁切的步驟具體為
獲取當(dāng)前需顯示的地形范圍,生成視錐體;
獲取每個(gè)所述矩形網(wǎng)格中的地形高度最大值,生成與每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的軸 對(duì)稱包圍盒;
判斷每一個(gè)所述軸對(duì)稱包圍盒與所述視錐體六個(gè)裁切平面的關(guān)系,裁切掉與所述 視錐體相離的軸對(duì)稱包圍盒。
S13、計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染 精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn);
在一較佳實(shí)施例中,計(jì)算渲染精度的方法
根據(jù)右式計(jì)算所述矩形網(wǎng)格的粗糙度斗=-max IdhJ,dι=1····6
其中,Cl1為所述粗糙度,d為當(dāng)前分辨率下矩形網(wǎng)格的邊長,Clhi為所述矩形網(wǎng)格四 邊和兩條對(duì)角線的高程平均值與矩形網(wǎng)格的中點(diǎn)高程之差Mhi越小代表地形越平坦,這樣 其要求精度可低,反之則要求精度高;
計(jì)算幾何網(wǎng)格到視點(diǎn)的歐式距離;
根據(jù)右式計(jì)算所述矩形網(wǎng)格的渲染精度f = ~...,CiCmax(Cdpl)
其中,f為所述渲染精度,L為所述歐式距離,C為預(yù)設(shè)值。
S14、對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行四叉樹分割;
根據(jù)計(jì)算得到的矩形網(wǎng)格的渲染精度,與預(yù)設(shè)的精度閾值比較,若達(dá)不到預(yù)設(shè)標(biāo) 準(zhǔn),則需將該矩形網(wǎng)格繼續(xù)進(jìn)行四叉樹分割,以保證后續(xù)渲染時(shí)能達(dá)到精度要求。
對(duì)達(dá)不到渲染精度要求的,則繼續(xù)采用四叉樹分割方法進(jìn)行分割,將矩形網(wǎng)格再 次細(xì)化,每一次分割后,都對(duì)得到的更小的矩形網(wǎng)格再次進(jìn)行渲染精度的計(jì)算,若該矩形網(wǎng) 格達(dá)到預(yù)設(shè)標(biāo)準(zhǔn),則可停止四叉樹分割。
S15、對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的 地形數(shù)據(jù),生成地形圖元并渲染;
從步驟S14中獲取到了渲染精度符合預(yù)設(shè)標(biāo)準(zhǔn)的矩形網(wǎng)格,則可對(duì)矩形網(wǎng)格進(jìn)行 渲染;可由GPU遍歷所述四叉樹分割生成的每個(gè)網(wǎng)格,直接對(duì)每個(gè)矩形網(wǎng)格的高程的原始 數(shù)據(jù)進(jìn)行處理,以紋理的方式輸出,再由GPU的幾何著色器對(duì)紋理逐步采樣,將圖元送交像 素著色器渲染至設(shè)備。
如圖3所示,由于地形數(shù)據(jù)的連續(xù)性,若相鄰兩個(gè)矩形網(wǎng)格之間的分辨率不同,兩 個(gè)臨近的地形圖元具有不同的細(xì)節(jié)層次時(shí),具有較高細(xì)節(jié)的地形圖元會(huì)具有更多的結(jié)點(diǎn), 以及高程信息,但兩者的共享邊界會(huì)出現(xiàn)T型裂縫;
因此在渲染前,還可包括步驟
比較相鄰兩個(gè)所述矩形網(wǎng)格的分辨率;
若分辨率相同,則生成所述地形圖元并渲染;可通過GPU的幾何著色器對(duì)每個(gè)矩 形網(wǎng)格中包含的紋理數(shù)據(jù)進(jìn)行逐步采樣,生成地形圖元;再通過GPU的像素著色器將地形 圖元渲染在顯示設(shè)備上。
若分辨率不同,則先采用T型裂縫消除法消除兩個(gè)所述矩形網(wǎng)格共享邊界的裂 縫,再生成所述地形圖元并渲染;
這里采用T型裂縫消除法來進(jìn)行裂縫消除,當(dāng)矩形網(wǎng)格的分辨率較低時(shí),要對(duì)該 矩形網(wǎng)格的結(jié)點(diǎn)進(jìn)行“三角化”調(diào)整,引入“過渡集策略”,即利用四叉樹分裂規(guī)則的傳遞規(guī) 則,通過添加額外的分裂節(jié)點(diǎn),對(duì)矩形網(wǎng)格任意分割為多個(gè)三角形;如圖4所示為對(duì)一矩形 網(wǎng)格進(jìn)行三角化的處理過程;通過控制繪制節(jié)點(diǎn)之間的層次差來達(dá)到避免裂縫的目的,其 優(yōu)勢(shì)為所訪問的數(shù)據(jù)均被限制在當(dāng)前層,從而避免了回溯遞歸等結(jié)構(gòu),也無須隨機(jī)訪問四叉樹節(jié)點(diǎn),適合GPU處理。
對(duì)應(yīng)地,本發(fā)明還提供一種三維GIS地形渲染系統(tǒng),包括第一分割模塊51、裁切模塊52、判斷模塊53、第二裁切模塊54和渲染模塊55 ;
所述第一分割模塊51用于載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形數(shù)據(jù)的矩形網(wǎng)格;
將獲取的三維GIS地形數(shù)據(jù)看作一個(gè)矩形網(wǎng)格,對(duì)整個(gè)地形數(shù)據(jù)進(jìn)行四叉樹分割,將整個(gè)三維GIS地形數(shù)據(jù)分割成多個(gè)矩形網(wǎng)格;如圖2所示是四叉樹分割的示意圖,將整幅地形圖進(jìn)行四叉樹遞歸分割,得到多個(gè)小矩形網(wǎng)格,從而將原始地形數(shù)據(jù)組織成由固定大小的規(guī)則的矩形塊網(wǎng)格,通過遍歷算法并每個(gè)矩形網(wǎng)格進(jìn)行標(biāo)注,即可獲取每個(gè)矩形網(wǎng)格的地形數(shù)據(jù),因此能大幅提高后續(xù)的數(shù)據(jù)處理速度,非常適合GPU并行處理。
所述裁切模塊52用于將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格;
根據(jù)當(dāng)前顯示設(shè)備的分辨率大小,對(duì)不需顯示的矩形網(wǎng)格進(jìn)行裁切,只保留當(dāng)前需顯示的地形數(shù)據(jù),采用視錐體裁切方法能快速地剔除掉無需顯示的地形數(shù)據(jù)。
在一較佳實(shí)施例中,所述裁切模塊52具體用于
獲取當(dāng)前需顯示的地形范圍,生成視錐體;
獲取每個(gè)所述矩形網(wǎng)格中的地形高程最大值,生成與每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的軸對(duì)稱包圍盒;
判斷每一個(gè)所述軸對(duì)稱包圍盒與所述視錐體六個(gè)裁切平面的關(guān)系,裁切掉與所述視錐體相離的軸對(duì)稱包圍盒。
所述判斷模塊53用于計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn);
在一較佳實(shí)施例中,所述判斷模塊53還用于根據(jù)右式計(jì)算所述矩形網(wǎng)格的粗糙度:
權(quán)利要求
1.一種三維GIS地形渲染方法,其特征在于,包括如下步驟 載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形數(shù)據(jù)的矩形網(wǎng)格; 將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格; 計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn); 對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行四叉樹分割; 對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的地形數(shù)據(jù),生成地形圖元并渲染。
2.根據(jù)權(quán)利要求1所述的三維GIS地形渲染方法,其特征在于,所述將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格的步驟具體包括 獲取當(dāng)前需顯示的地形范圍,生成視錐體; 獲取每個(gè)所述矩形網(wǎng)格中的地形高程最大值,生成與每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的軸對(duì)稱包圍盒; 判斷每一個(gè)所述軸對(duì)稱包圍盒與所述視錐體六個(gè)裁切平面的關(guān)系,裁切掉與所述視錐體相離的軸對(duì)稱包圍盒。
3.根據(jù)權(quán)利要求1所述的三維GIS地形渲染方法,其特征在于,所述計(jì)算渲染精度的步驟具體包括根據(jù)右式計(jì)算所述矩形網(wǎng)格的粗糙應(yīng)
4.根據(jù)權(quán)利要求1所述的三維GIS地形渲染方法,其特征在于,所述在生成地形圖元并渲染的步驟前還包括步驟 比較相鄰兩個(gè)所述矩形網(wǎng)格的分辨率; 若分辨率相同,則生成所述地形圖元并渲染; 若分辨率不同,則先采用T型裂縫消除法消除兩個(gè)所述矩形網(wǎng)格共享邊界的裂縫,再生成所述地形圖元并渲染。
5.一種三維GIS地形渲染系統(tǒng),其特征在于,包括第一分割模塊、裁切模塊、判斷模塊、第二裁切模塊和渲染模塊; 所述第一分割模塊用于載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形數(shù)據(jù)的矩形網(wǎng)格; 所述裁切模塊用于將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格; 所述判斷模塊用于計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn); 所述第二裁切模塊用于對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行四叉樹分割; 所述渲染模塊用于對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的地形數(shù)據(jù),生成地形圖元并渲染。
6.根據(jù)權(quán)利要求5所述的三維GIS地形渲染系統(tǒng),其特征在于,所述裁切模塊具體用于 獲取當(dāng)前需顯示的地形范圍,生成視錐體; 獲取每個(gè)所述矩形網(wǎng)格中的地形高程最大值,生成與每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的軸對(duì)稱包圍盒; 判斷每一個(gè)所述軸對(duì)稱包圍盒與所述視錐體六個(gè)裁切平面的關(guān)系,裁切掉與所述視錐體相離的軸對(duì)稱包圍盒。
7.根據(jù)權(quán)利要求5所述的三維GIS地形渲染系統(tǒng),其特征在于,所述判斷模塊還用于 根據(jù)右式計(jì)算所述矩形網(wǎng)格的粗糙度噸
8.根據(jù)權(quán)利要求5所述的三維GIS地形渲染系統(tǒng),其特征在于,還包括比較消除模塊,所述比較消除模塊用于 比較相鄰兩個(gè)所述矩形網(wǎng)格的分辨率; 若分辨率相同,則生成所述地形圖元并渲染; 若分辨率不同,則先采用T型裂縫消除法消除兩個(gè)所述矩形網(wǎng)格共享邊界的裂縫,再生成所述地形圖元并渲染。
全文摘要
本發(fā)明公開一種三維GIS地形渲染方法,包括載入三維GIS的地形數(shù)據(jù),對(duì)所述地形數(shù)據(jù)進(jìn)行四叉樹分割,生成所述地形數(shù)據(jù)的矩形網(wǎng)格;將所述矩形網(wǎng)格進(jìn)行視錐體裁切,得到需顯示的矩形網(wǎng)格;計(jì)算每個(gè)所述需顯示的矩形網(wǎng)格的渲染精度,判斷每個(gè)所述矩形網(wǎng)格的渲染精度是否達(dá)到預(yù)設(shè)標(biāo)準(zhǔn);對(duì)未達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則再次進(jìn)行四叉樹分割;對(duì)達(dá)到所述預(yù)設(shè)標(biāo)準(zhǔn)的每個(gè)所述矩形網(wǎng)格,則根據(jù)每個(gè)所述矩形網(wǎng)格對(duì)應(yīng)的地形數(shù)據(jù),生成地形圖元并渲染。對(duì)應(yīng)地本發(fā)明還公開一種三維GIS地形渲染系統(tǒng)。本發(fā)明能有效提升三維GIS地形場(chǎng)景渲染的速度,數(shù)據(jù)處理過程更簡單快速。
文檔編號(hào)G06T17/05GK103035023SQ20121050106
公開日2013年4月10日 申請(qǐng)日期2012年11月29日 優(yōu)先權(quán)日2012年11月29日
發(fā)明者魏焱, 杜旭, 齊志剛, 顏璟儀, 賴翠君, 陳炯聰, 洪成佳, 劉森, 甘杉, 湯彧 申請(qǐng)人:廣東電網(wǎng)公司電力科學(xué)研究院