本发明涉及计算机视觉,尤其涉及一种基于三次样条插值的三维地形自动建模方法及装置。
背景技术:
1、三次样条插值函数是一种常用的数值分析方法,可以通过给定的一组散点数据来拟合出一条光滑的连续函数曲线。其基本思想是用低次多项式逼近一段小区间内的数据,并利用这些多项式的连接处衔接条件来保证整个曲线的光滑性。提出一种高效易用的网格数据结构,可以重新划分地形网格,进行细分或平滑,使用该网格数据结构进行开发,结合三次样条插值函数,完成地形网格优化生成任务。
2、三次样条插值函数拥有着不可忽视的优点。三次样条插值函数轻便且易于实现,采用分段插值,有效降低插值次数,可以对已知的参数数据进行分析处理,进行必要的插值、拟合等,以达到所需要的数据精度,拟合出来的曲线更加符合实际情况。结合提出的网格数据结构编程开发,可以更简单高效得到逼真的地形。
3、在现有技术中,分形景观地形生成、物理侵蚀模拟算法和遗传算法等多种基于编程实现地形生成的不同方法。
4、上述各种都是基于编程实现的地形自动生成的方法,通过给定的数据集创建表面网格,在表面网格基础上生成地形,其他方法利用现有地形的斑块、小规模或微观特征来合成满足宏观约束(全局约束)的新地形。
5、分形景观地形生成法是较流行的编程方法,分形方法效率高,但操作较难,往往不容易限制,也缺乏现实性;物理侵蚀模拟算法会受到模拟物理过程的影响,支持侵蚀过程中材料的溶解、运输和沉积等效应,可以较真实还原现实世界地形地貌,但算法复杂,耗费时间长;遗传算法可以使用一些初始数据进行输入,通过遗传算法产生所需的各种地形,允许给定一些概念或期望特征下生成地形,这种方法效率高,但生成的结果难以控制。
6、现有技术亟需克服的是操作复杂,获取地形所需参数难度大的问题。
技术实现思路
1、本发明通过提供一种基于三次样条插值的三维地形自动建模方法及装置,解决了现有技术中分型景观地形生成操作复杂,获取地形所需的参数难度大的问题,实现了从高度图生成基础地形网格出发,结合三次样条插值函数,自动优化建模过程中生成的地形网格,使生成的地形模型具有较高的真实度、可信度。
2、第一方面,本发明提供了一种基于三次样条插值的三维地形自动建模方法,该方法包括:
3、获取地形高度图,利用所述地形高度图建立地形高度网格,并计算所述地形高度网格中各顶点的法线信息;其中,所述法线信息包括:面法线和顶点法线;
4、利用三次样条差值函数对所述地形高度网格进行优化,得到优化后的地形网格;
5、利用所述各顶点的法线信息和所述优化后的地形网格,得到最终的地形网格。
6、结合第一方面,在一种可能的实现方式中,所述获取地形高度图,并利用所述地形高度图建立地形高度网格,包括:
7、创建与所述地形高度图相同大小的基础网格,确定所述地形高度图中每个像素点在所述基础网格中的位置;
8、将所述地形高度图中的各像素点的像素值映射至所述基础网格中,得到所述形高度网格;其中,所述地形图中的各像素点的像素值为所述高度网格对应顶点的高度值。
9、结合第一方面,在一种可能的实现方式中,所述将所述地形高度图中的各像素点的像素值映射至所述基础网格中,得到所述形高度网格,包括:
10、判断所述地形高度图上的各像素点映射至所述基础网格中时的映射位置处是否存在对应顶点;
11、若存在,则将所述像素点映射至所述映射位置处的顶点上,得到所述形高度网格;
12、若不存在,则利用所述映射位置周围各顶点到所述映射位置处的距离对周围各顶点进行高度赋值,得到所述形高度网格。
13、结合第一方面,在一种可能的实现方式中,所述面法线的计算公式,包括:
14、nface=cross[(x2-x1,y2-y1,z2-z1),(x3-x1,y3-y1,z3-z1)]+...+
15、cross[(x1-xn,y1-yn,z1-zn),(x2-xn,y2-yn,z2-zn)]
16、cross(a,b)=(a1,a2,a3)*(b1,b2,b3)
17、=(a2b3-a3b2,a3b1-a1b3,a1b2-a2b1)
18、其中,(x1,y1,z1)表示示例顶点1;(x2,y2,z2)表示示例顶点2;(a1,a2,a3)表示示例顶点a;(b1,b2,b3)表示示例顶点b。
19、结合第一方面,在一种可能的实现方式中,所述顶点法线的计算公式,包括:
20、
21、归一化顶点法线:
22、
23、
24、其中,(nx,ny,nz)表示顶点法向量。
25、结合第一方面,在一种可能的实现方式中,所述利用三次样条差值函数对所述地形高度网格进行优化,得到优化后的地形网格,包括:
26、获取多个所述地形高度网格中的各个顶点的三维坐标,并确定各个顶点间的设定三次函数;其中,所述设定三次函数服从约束条件;
27、利用三次多项式、三次多项式的一阶导数和三次多项式的二阶导数对所述三次函数的系数进行求解;
28、利用所述系数和所述设定三次函数,得到三次函数,并利用所述三次函数得到所述优化后的地形网格。
29、结合第一方面,在一种可能的实现方式中,所述利用所述各顶点的法线信息和所述优化后的地形网格,得到最终的地形网格,包括:将所述各顶点的法线信息替换至所述优化后的地形网格中顶点的法线信息。
30、第二方面,本发明提供了一种基于三次样条插值的三维地形自动建模装置,该装置包括:
31、地形网格建立模块,用于获取地形高度图,利用所述地形高度图建立地形高度网格,并计算所述地形高度网格中各顶点的法线信息;其中,所述法线信息包括:面法线和顶点法线;
32、优化网格模块,用于利用三次样条差值函数对所述地形高度网格进行优化,得到优化后的地形网格;
33、输出模块,用于利用所述各顶点的法线信息和所述优化后的地形网格,得到最终的地形网格。
34、第三方面,本发明提供了一种基于三次样条插值的三维地形自动建模服务器,该服务器包括存储器和处理器;
35、所述存储器用于储存计算机可执行指令;
36、所述处理器用于执行所述计算机可执行指令,以实现基于三次样条插值的三维地形自动建模方法。
37、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质有可执行指令,计算机执行所述可执行指令时能够实现基于三次样条插值的三维地形自动建模方法。
38、本发明中提供的一个或多个技术方案,至少具有如下技术效果或优点:
39、本发明应用于建模过程中三维地形自动生成,提出在三维地形建模过程中结合三次样插值函数,包括抽取、重新划分网格、细分或平滑等多种算法处理地形表面网格,对建模过程中生成的地形网格进行优化,创建平滑的地形表面,同时减少陡坡伪影对地形的影响。
1.一种基于三次样条插值的三维地形自动建模方法,其特征在于,包括:
2.根据权利要求1所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述获取地形高度图,并利用所述地形高度图建立地形高度网格,包括:
3.根据权利要求2所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述将所述地形高度图中的各像素点的像素值映射至所述基础网格中,得到所述形高度网格,包括:
4.根据权利要求1所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述面法线的计算公式,包括:
5.根据权利要求1所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述顶点法线的计算公式,包括:
6.根据权利要求1所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述利用三次样条差值函数对所述地形高度网格进行优化,得到优化后的地形网格,包括:
7.根据权利要求1所述的基于三次样条插值的三维地形自动建模方法,其特征在于,所述利用所述各顶点的法线信息和所述优化后的地形网格,得到最终的地形网格,包括:
8.一种基于三次样条插值的三维地形自动建模装置,其特征在于,包括:
9.一种基于三次样条插值的三维地形自动建模服务器,其特征在于,包括存储器和处理器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质有可执行指令,计算机执行所述可执行指令时能够实现如权利要求1-7任一项所述的基于三次样条插值的三维地形自动建模方法。