[發明專利]一種大場景中矢量地圖與高分辨率數字高程模型自動疊加渲染的方法無效
| 申請號: | 201210089319.7 | 申請日: | 2012-03-30 |
| 公開(公告)號: | CN102651141A | 公開(公告)日: | 2012-08-29 |
| 發明(設計)人: | 張立強;張良;楊玲 | 申請(專利權)人: | 北京師范大學 |
| 主分類號: | G06T15/00 | 分類號: | G06T15/00;G06T17/05 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100875 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 場景 矢量 地圖 高分辨率 數字 高程 模型 自動 疊加 渲染 方法 | ||
1.一種大場景中矢量地圖與高分辨率數字高程模型自動疊加渲染的方法,其特征在于,包括如下步驟:
步驟一:選擇矢量數據與地形疊加的細節層次模型
在預處理階段,計算矢量要素的最小包圍矩形框以及單調鏈的總個數nsub;設定值navg,將最小包圍矩形分割成個等大的子區域,這樣平均每個區域包含navg個單調鏈;對每個子區域,計算有哪些線要素完全或部分被其包含,記錄下這些線要素的編號,刪除不包含矢量要素的子區域。
渲染時,給出2個距離閾值f1和f2(f1>f2),確定從0到3共4個細節層次,場景漫游時,首先判斷每個子區域是否可見,如不可見,則其細節層次設為0,否則,求得其中心距視點的距離d,如果d>f1,設定其細節層次為1,若d<f1且d>f2,則細節層次為2,若d<f2則為3,判斷了子區域的細節層后,由此確定每個單調鏈的細節層次,一個單調鏈可能落于一個或多個子區域中,將包含它的子區域的最大細節層次設為本條單調鏈的細節層次。
步驟二:建立疊加的細節層次模型
線要素的顯示是以單調鏈為基本單元,如果一個單調鏈的細節層次是3,則將其用陰影體的方法渲染在地形上;如果是2,則將其簡化后的結果用陰影體的方法疊加在地形上;如果是1,則將其用三維線段的方式近似疊加在地形上;如果是0,則不予渲染。
對一個面要素來說,如果其邊界劃分成的單調鏈中,所有單調鏈的細節層次都等于0,則不作處理,若一個或多個單調鏈的細節層次大于1,則該面要素用陰影體的方法渲染;渲染時,由單調鏈再重組為多邊形,如果一單調鏈的細節層次為3,則該單調鏈本身參于重組,否則,簡化后的單調鏈參與重組;如果單調鏈的細節層次落于0和1之間,則采用紋理映射方法進行渲染。
步驟三:利用陰影體技術實現近視點矢量要素的疊加
當矢量地圖需要被精確疊加時,采用陰影體技術,首先構造每個矢量要素的陰影體,對于面要素來說,先計算其覆蓋區域的最高海拔和最低海拔,將面要素向上移到最高海拔處可得到上底面,向下移到最低海拔處可得下底面;對于線要素來說,先將擴展成細條狀后,再按照面陰影體的構建方法,構建出上下底面以及側面。
接下去,渲染陰影體,在地形渲染完成后,關閉對顏色緩存和深度緩存的寫操作,同時開啟對模板測試和對模板緩存的寫操作;渲染陰影體的背面,深度測試失敗處的模板緩存值加1;渲染陰影體的正面,設置深度測試失敗處的模板緩存值減1;最后關閉深度測試,開啟對顏色緩存的寫操作,用規定的顏色重新渲染陰影體的背面,同時渲染模板值不為0的位置。
步驟四:遠視點矢量要素的疊加
(1)利用插值算法實現遠視點線要素的疊加
在預處理階段,對線要素進行插值,求得插值點和線要素原頂點所在處的地形高度,在渲染時,將這些三維點連成線即可得到線要素與地形的疊加結果,為了避免“z-buffer?fighting”現象,將要素整體往上偏移,其偏移量應隨著離視點距離的增加而逐漸增加。
(2)用紋理映射實現遠視點面要素的疊加
利用顏色緩存渲染簡化后的面要素到顏色緩存,讀取顏色緩存至內存生成相應紋理圖,面要素覆蓋的地方為不透明或半透明,其它位置設為透明;用多重紋理方法將該紋理圖和地形的其它紋理映射到地形上;視點離近時,需要實時更新紋理圖,將紋理圖上該面要素覆蓋的區域的透明度設為0,將其設為完全透明;相反,隨著視點移動,渲染方式由陰影體技術改為紋理映射技術,則需將其紋理圖上的對應區域設為不透明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京師范大學,未經北京師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210089319.7/1.html,轉載請聲明來源鉆瓜專利網。





