[发明专利]一种局部精度约束的三维地形生成方法有效
申请号: | 201510259693.0 | 申请日: | 2015-05-20 |
公开(公告)号: | CN104851131B | 公开(公告)日: | 2017-11-07 |
发明(设计)人: | 徐希悦;贾永;唐强;张南峰;石磊 | 申请(专利权)人: | 北京控制工程研究所 |
主分类号: | G06T17/05 | 分类号: | G06T17/05 |
代理公司: | 中国航天科技专利中心11009 | 代理人: | 臧春喜 |
地址: | 100080 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 局部 精度 约束 三维 地形 生成 方法 | ||
技术领域
本发明涉及一种三维地形生成方法,特别是一种局部精度约束的三维地形生成方法,属于三维可视化技术领域。
背景技术
在数字化和信息化的今天,随着地理信息应用领域的不断拓展,传统的二维地图已不能满足人们的需要,人们开始逐渐关注具有丰富地形地貌信息的三维地形图。但由于自然地形复杂多样,计算机处理能力有限,在这个领域存在着可视化处理精度有限、三维显示效果缺乏真实感等问题。
目前三维可视化领域普遍应用3D MAX、VUE和VTB等成熟商用建模软件实现三维地形生成。上述商业建模软件在三维地形的实际生成过程中,普遍存在生成地形整体精度受限和局部地形精度无法修改的不足,如3D MAX软件主要利用高程数据影像结合精细纹理处理技术生成地形,生成地形高程受限于高程数据的影像,无法动态修改;VUE软件生成地形数据的分辨率一般低于2048×2048,生成的地形高程在后期采用滤波方式改变局部地形的形态,无法针对局部地形的分辨率进行精细化二次处理;VTB软件只对地形数字高程模型文件进行三维构建和显示,地形的高程依赖于原始数据,无法进行二次修改。
发明内容
本发明解决的技术问题是:针对上述地形生成方法精度的不足,提供一种针对局部精度约束的三维地形生成方法,通过对菱形正方形算法的优化,实现约束控制,使生成地形形态更接近自然形态,通过局部约束条件,引入固定形态数据产生高度逼真的自然效果,并通过提取中间部分网格,进行中心约束,极大提高了地形精度;本发明生成数据量大,可以根据要求生成整体高分辨率数据,且满足局部精度要求;在存储时通过使用较为复杂的链表结构存储数据点,降低了物理内存大区域连续分配的问题。
本发明所采用的技术方案是:一种局部精度约束的三维地形生成方法,步骤如下:
(1)根据预先给定地形点的个数创建数据存储网格模型,将预先给定地形点的高程数据和该数据在数据存储网格模型中所处的行列数存储在数据存储网格模型中;所述预先给定地形点为待生成三维地形的边点和中心点,且相邻预先给定地形点的连线构成矩形网格;
(2)将当前地形点在当前数据存储网格模型中所处的行列数更新为当前地形点在一次三维地形细分后的数据存储网格模型中所处的行列数;
(3)利用矩形网格中最小网格单元的四个顶点高程数据求得每个最小网格单元的中心点高程数据,更新数据存储网格模型,并将求得的每个最小网格单元的中心点高程数据和该数据在更新后的数据存储网格模型中所处的行列数存储在更新后的数据存储网格模型中;
(4)以最小网格单元的顶点和中心点为菱形的顶点,以最小网格单元边线的中心点为菱形的中心构建菱形,并利用菱形各顶点的数据计算每个最小网格单元边线中心点的高程数据,并将求得的每个最小网格单元边线中心点的高程数据和该数据在更新后的数据存储网格模型中所处的行列数存储在更新后的数据存储网格模型中;
(5)利用最小网格单元边线中心点的高程数据更新每个最小网格单元的中心点高程数据,将求得的每个最小网格单元的中心点高程数据和该数据在更新后的数据存储网格模型中所处的行列数存储在更新后的数据存储网格模型中,完成一次三维地形细分;
(6)重复步骤(3)~步骤(5),直到三维地形整体精度达到要求;
(7)选取目标区域,并将目标区域内步骤(1)预先给定的地形点和步骤(3)~步骤(6)求得的最小网格单元边线中心点以及最小网格单元中心点中相邻的点连接,构成新的矩形网格,代替步骤(1)中的矩形网格,将dHeight变为原数值的1/(2r),重复步骤(2)~步骤(5),直至所选取的三维地形局部精度符合预设的要求;所述r为凹凸度常数;
(8)重复步骤(2)~步骤(7),直至所形成三维地形的所有局部精度符合预设的要求;
(9)引入外部约束数据,对步骤(8)中获得的三维地形进行修正,获得最终的三维地形。
所述步骤(3)中利用矩形网格中最小网格单元的四个顶点高程数据求得每个最小网格单元的中心点高程数据,具体由公式:
E=(A+B+C+D)/4+random(-dHeight/2,dHeight/2)
给出,其中,A,B,C,D分别表示最小网格单元的四个顶点高程数据,E表示最小网格单元的中心点高程数据,dHeight表示最小网格单元的四个顶点中某一个顶点的高程数据。
所述步骤(4)中利用菱形各顶点的数据计算每个最小网格单元边线中心点的高程数据,具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京控制工程研究所,未经北京控制工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510259693.0/2.html,转载请声明来源钻瓜专利网。