本發明專利技術公開了一種基于kd樹的實時大規模地形可視化實現方法,包括下述步驟:將地形按點云空間分塊,并利用kd樹分層,離線地建立LOD模型,所述建立LOD模型是負責由地形點云數據獲得多分辨率模型數據以及模型的各分辨率間切換;在線時利用外部存儲算法將離線構造的LOD模型數據載入內存,所述外部存儲算法負責將外存的LOD模型數據向內存調度;對內存中的LOD模型數據使用簡化的地形剔除技術,所述地形數據剔除技術負責剔除不可見的LOD模型數據,減少傳輸到圖形硬件的數據量;利用三維引擎優化技術對剔除后的數據進一步的減少傳輸到圖形硬件的數據量以及計算量。本發明專利技術實現簡便,顯示效率高,在具有一般基于不規則三角網可視化算法優良的可視化效果的同時,大大提高了可視化速度。
【技術實現步驟摘要】
一種基于kd樹的實時大規模地形可視化實現方法
本專利技術涉及大規模地形點云的三維可視化的
,特別涉及一種基于kd樹的實時大規模地形可視化方法。
技術介紹
地形點云三維可視化,就是根據計算機圖形學的原理,將三維地形數據(包括離散的點云和點間形成的三角形片集的點序列)經過視圖變換、模型變換、投影變換和視區變換等一系列操作,最后在二維的屏幕上顯示出來。而當地形數據量很大時,要進行變換的操作數量也會隨之劇增,這就需要使用一些提高地形數據三維可視化效率的算法,才能滿足其實時顯示的要求。業界對高效的地形數據三維可視化研究的成果主要集中在LOD模型構造算法上面,對三維可視化的其他研究還包括地形數據剔除技術和三維引擎的優化使用等。LOD模型構造算法,能夠根據需求動態地調整顯示對象模型的精度,大大減小可視化的數據量,以達到提高可視化效率的目的。這種算法的關鍵是如何建立一個高效的多分辨率模型,涉及到二叉樹、四叉樹、kd樹等空間劃分方法、各種內存管理技術和各種Delaunay三角網更新或者規則點云分布三角網構建方法等。地形數據剔除技術,能夠在地形數據不會被顯示的時候將其剔除,即不發往圖形硬件去繪制,以大幅減少可視化的數據量,達到提升顯示速度的目的。該技術的關鍵是如何高效地定位可見的地形數據。三維引擎的優化使用,能夠在顯示地形數據量不變的情況下大大的減小傳輸的數據量和重復計算量,以大大提升顯示速度的目的。常見的優化有三角形條帶化和OpenGL頂點數組和索引數組的使用。現有的基于TIN的高質量的海量地形點云可視化算法,基本是采用了記錄三角網簡化的過程信息。雖然避開了實時進行Delaunay三角網的更新這一復雜的過程,但是復雜性仍然非常高,效率不理想。本專利技術的方法,正是在具有基于TIN可視化算法的高質量顯示的同時,很好地改善了效率。
技術實現思路
本專利技術的目的在于克服現有技術的缺點與不足,提供一種復雜性低、可視化效率高的基于kd樹的實時大規模地形可視化實現方法。為了達到上述目的,本專利技術采用以下技術方案:一種基于kd樹的實時大規模地形可視化實現方法,包括下述步驟:將地形按點云空間分塊,并利用kd樹分層,離線地建立LOD模型,所述建立LOD模型是負責由地形點云數據獲得多分辨率模型數據以及模型的各分辨率間切換;在線時利用外部存儲算法將離線構造的LOD模型數據載入內存,所述外部存儲算法負責將外存的LOD模型數據向內存調度;對內存中的LOD模型數據使用簡化的地形剔除技術,所述地形數據剔除技術負責剔除不可見的LOD模型數據,減少傳輸到圖形硬件的數據量;利用三維引擎優化技術對剔除后的數據進一步的減少傳輸到圖形硬件的數據量以及計算量。優選的,所述建立LOD模型,包括建立離線LOD模型和建立在線的LOD模型兩部分,所述建立離線LOD模型需要讀取三次點云數據文件:第一次讀取獲得點的總數,根據提前限定的每個分塊內的點的最大點數,設定每個分塊的位置和大小;第二次讀取記錄前面設定的每個分塊的內點數;第三次讀取時用經典的逐點插入法進行Delaunay三角化,并將對應分塊記錄的點數遞減;當遞減為零時,查找對應分塊內外接圓越過分塊邊緣的三角形和它們的頂點,記錄為分割三角帶和點云包圍圈;對在分塊內而不在點云包圍圈內的點進行改進的kd樹空間劃分,獲得按照樹的層次順序排列的存儲在一維數組點云數據,將該點云數據、分割三角帶和點云包圍圈存儲到外存中;清除該分塊占用的內存,繼續讀取,直到所有點云數據讀完。優選的,所述的改進的kd樹空間劃分包括第一改進和第二改進,所述第一改進是kd樹的劃分方向改為要劃分區域的長軸方向;第二改進是kd樹的劃分點為滿足每次劃分盡量將不完整的一層向左子樹分布。優選的,所述的建立在線的LOD模型,包括簡化的模型分辨率決策準則和動態更新Delaunay三角網兩部分;所述簡化的模型分辨率決策準則根據每個分塊內的點密度和分塊與視點的距離,計算出分塊需要切換至的模型分辨率,在長度為l的物體在與它相距d的視點的觀察下,被投影到屏幕上;且有如下的關系式:其中α為視角,Np為屏幕在視點視野范圍內的縱向切線上的像素數目,np是該物體投影到屏幕上在該切線上占用的像素數目;當np=1時,即此時物體投影到屏幕在切線上占用一個像素時,下式即為模型分辨率決策的基本準則,公式如下:此時,長度小于等于l的物體在屏幕上被壓縮在一個像素內,這時的物體的細節已經無法分辨了,所有在該物體上的點云只需用一個頂點表示即可。優選的,所述的動態更新Delaunay三角網使用一種成熟的插入和刪除點的Delaunay算法,同時在更新三角形的更新一個N×7的二位數組,其中N代表三角形的個數,7列分別是三角形的序號、三個頂點和三個頂點相對的相鄰三角形序號。該二維數組表示了整個三角網的拓撲結構。優選的,所述的外部存儲算法包括改進的數據預讀、視椎體投影的數據補充和增量計算三部分;所述改進的數據預讀使用了兩層的預讀區,即在一般預讀區外圍再設定一個分辨率更低的預讀區;所述的視椎體數據補充,是將視椎體映射到二維平面,然后找出與映射相交的分塊;所述的增量計算,是將由所述改進的數據預讀和所述的視椎體數據補充獲得的調度列表中的分塊中需要調度的數據,即對應需要分辨率的LOD模型數據和在內存中對應分塊中已有的數據做比較,算出需要調度的具體到一個點的數據。優選的,所述的地形數據剔除技術,與所述視椎體數據補充一致,并直接使用其計算結果。優選的,所述的三維引擎優化使用,由簡化的三角形條帶化和頂點對象緩沖區的使用兩部分組成;所述的簡化的三角形條帶化,基于一個包含三角形的序號、三角形逆時針排列的三個頂點和三角形的三個相鄰三角形的序號的三角網拓撲結構數據,并按照以下方法得出:優選的,所述的三維引擎優化使用的具體步驟如下:(a)根據結構矩陣,在三角網的外圍邊界上找出一個三角形A,該三角形必須滿足其三邊都有相鄰的三角形,然后找出A三角形的一個相鄰的三角形B,該三角形必須滿足其有一邊沒有相鄰的三角形,三角形B就是起始三角形;(b)螺旋式由外至內地找相鄰三角形,由起始三角形B開始,沿著遠離A的方向,在結構矩陣中依次查找出下一個相鄰的、靠外的三角形,標記并將其加入到三角形條帶中;(c)結束,當找不到沒有標記的三角形時,三角形條帶完畢,并查找出結構矩陣中沒有加入到條帶的三角形,單獨添加到游離三角形鏈中。優選的,所述的頂點對象緩沖區的使用是在一般的三維引擎優化,即OpenGL的頂點數組和索引數組結合使用的基礎上,加入頂點緩沖區對象的使用。本專利技術相對于現有技術具有如下的優點及效果:1、本專利技術實現簡便,顯示效率高,在具有一般基于不規則三角網可視化算法優良的可視化效果的同時,大大提高了可視化速度。2、本專利技術在外存中只存儲點云數據和少量的三角形數據,絕大多數的三角形數據實時地在內存中生成和存放,故較其他可視化算法大大減少了外存的使用。3、本專利技術充分利用了多核處理器的優勢,相比其他可視化算法更能適應以后的多核發展方向。4、本算法能容易地實現針對不同硬件平臺平衡顯示效果和顯示速度矛盾。附圖說明圖1是本專利技術算法的框圖;圖2本文檔來自技高網...

【技術保護點】
一種基于kd樹的實時大規模地形可視化實現方法,其特征在于,包括下述步驟:?將地形按點云空間分塊,并利用kd樹分層,離線地建立LOD模型,所述建立LOD模型是負責由地形點云數據獲得多分辨率模型數據以及模型的各分辨率間切換;?在線時利用外部存儲算法將離線構造的LOD模型數據載入內存,所述外部存儲算法負責將外存的LOD模型數據向內存調度;?對內存中的LOD模型數據使用簡化的地形剔除技術,所述地形數據剔除技術負責剔除不可見的LOD模型數據,減少傳輸到圖形硬件的數據量;?利用三維引擎優化技術對剔除后的數據進一步的減少傳輸到圖形硬件的數據量以及計算量。
【技術特征摘要】
1.一種基于kd樹的實時大規模地形可視化實現方法,其特征在于,包括下述步驟:將地形按點云空間分塊,并利用kd樹分層,離線地建立LOD模型,所述建立LOD模型是負責由地形點云數據獲得多分辨率模型數據以及模型的各分辨率間切換;在線時利用外部存儲算法將離線構造的LOD模型數據載入內存,所述外部存儲算法負責將外存的LOD模型數據向內存調度;對內存中的LOD模型數據使用簡化的地形剔除技術,所述地形數據剔除技術負責剔除不可見的LOD模型數據,減少傳輸到圖形硬件的數據量;利用三維引擎優化技術對剔除后的數據進一步的減少傳輸到圖形硬件的數據量以及計算量;所述建立LOD模型,包括建立離線LOD模型和建立在線的LOD模型兩部分,所述建立離線LOD模型需要讀取三次點云數據文件:第一次讀取獲得點的總數,根據提前限定的每個分塊內的點的最大點數,設定每個分塊的位置和大小;第二次讀取記錄前面設定的每個分塊的內點數;第三次讀取時用經典的逐點插入法進行Delaunay三角化,并將對應分塊記錄的點數遞減;當遞減為零時,查找對應分塊內外接圓越過分塊邊緣的三角形和它們的頂點,記錄為分割三角帶和點云包圍圈;對在分塊內而不在點云包圍圈內的點進行改進的kd樹空間劃分,獲得按照樹的層次順序排列的存儲在一維數組點云數據,將該點云數據、分割三角帶和點云包圍圈存儲到外存中;清除該分塊占用的內存,繼續讀取,直到所有點云數據讀完;所述的外部存儲算法包括改進的數據預讀、視椎體投影的數據補充和增量計算三部分;所述改進的數據預讀使用了兩層的預讀區,即在一般預讀區外圍再設定一個分辨率更低的預讀區;所述的視椎體數據補充,是將視椎體映射到二維平面,然后找出與映射相交的分塊;所述的增量計算,是將由所述改進的數據預讀和所述的視椎體數據補充獲得的調度列表中的分塊中需要調度的數據,即對應需要分辨率的LOD模型數據和在內存中對應分塊中已有的數據做比較,算出需要調度的具體到一個點的數據。2.根據權利要求1所述的基于kd樹的實時大規模地形可視化實現方法,其特征在于,所述的改進的kd樹空間劃分包括第一改進和第二改進,所述第一改進是kd樹的劃分方向改為要劃分區域的長軸方向;第二改進是kd樹的劃分點為滿足每次劃分盡量將不完整的一層向左子樹分布。3.根據權利要求1所述的基于kd樹的實時大規模地形可視化實現方法,其特征在于,所述的建立在線的LOD模型,包括簡化的模型分辨率決策準則和動態更新Delaunay三角網兩部分;所述簡化的模型分辨率決策準則根據每個分塊內的點密度和分塊與視點的距離,計算出分塊需要...
【專利技術屬性】
技術研發人員:裴海龍,姚定忠,
申請(專利權)人:華南理工大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。