一种地貌生成方法、装置、计算机设备和存储介质与流程

文档序号:22549658发布日期:2020-10-17 02:23阅读:146来源:国知局
一种地貌生成方法、装置、计算机设备和存储介质与流程

本发明实施例涉及图像处理技术领域,尤其涉及一种地貌生成方法、装置、计算机设备和存储介质。



背景技术:

在游戏制作过程中,通常需要对大世界中的环境、地形等内容进行设计制作。其中,针对斜坡样地貌,通常是基于地形雕刻工具进行制作。用户首先通过高度抬升方法雕刻地形形成阶梯状的地貌粗模,再通过高度平滑方法逐步使地形逼近最终的斜坡地貌效果。

但是,上述制作过程中需要用户在局部反复地抬升与平滑地形,制作效率比较低;当斜坡地貌需要配合周围地貌进行整体调整时,例如调整坡度,需要重新制作,成形后的修改性比较差。



技术实现要素:

本发明实施例提供一种地貌生成方法、装置、计算机设备和存储介质,以提高地形生成制作的效率。

第一方面,本发明实施例提供了一种地貌生成方法,该方法包括:

根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面;

根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标值为预设坐标值,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离;

在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点;

根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

可选的,所述根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面,包括:

当所述锚点的数量为二时,以所述两个锚点间距离为长,以所述宽度为宽生成一个矩形斜坡曲面;

当所述锚点的数量大于二时,根据相邻的两个锚点间向量的向量积判断是否需要在相邻的两个斜坡曲面之间增加一个平台斜坡曲面,若是,则根据相邻的两个锚点间向量对应的三个锚点的世界坐标计算并生成两个矩形斜坡曲面和一个平台斜坡曲面,否则,以所述三个锚点中相邻的两个锚点间距离为长,相应的斜坡曲面的宽度为宽生成对应的矩形斜坡曲面。

可选的,根据相邻两个锚点间向量的向量积判断是否需要在相邻的两个矩形斜坡曲面之间增加一个平台斜坡曲面,包括:

当所述相邻两个锚点间向量的向量积沿所述设定轴方向的坐标不为零时,确定需要在相邻的两个矩形斜坡曲面之间增加一个平台斜坡曲面。

可选的,所述对每个所述斜坡曲面点进行高度值采样,包括:

将沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点在世界坐标系下高度值作为所述斜坡曲面点的采样高度值。

可选的,所述根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,包括:

将所述斜坡曲面点的高度值与采样高度值进行插值计算得到所述斜坡曲面点的最终高度值;

所述地形高度图区域内非斜坡曲面点的高度值作为所述非斜坡曲面点的最终高度值。

可选的,所述插值计算的插值系数根据所述斜坡曲面点与所述斜坡曲面的边缘的过渡范围确定。

可选的,所述插值系数的确定过程包括:

当预设过渡范围阈值为零时,所述插值系数为一;

当预设过渡范围阈值非零时,计算沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点与所述斜坡曲面的边缘的最小距离,根据所述最小距离与所述预设过渡范围阈值的比值确定所述插值系数。

第二方面,本发明实施例还提供了一种地貌生成装置,该装置包括:

地形网格生成模块,用于根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面;

范围确定模块,用于根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标值为预设坐标值,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离;

高度采样模块,用于在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点;

地貌生成模块,用于根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

可选的,地形网格生成模块具体用于:

当所述锚点的数量为二时,以所述两个锚点间距离为长,以所述宽度为宽生成一个矩形斜坡曲面;

当所述锚点的数量大于二时,根据相邻的两个锚点间向量的向量积判断是否需要在相邻的两个斜坡曲面之间增加一个平台斜坡曲面,若是,则根据相邻的两个锚点间向量对应的三个锚点的世界坐标计算并生成两个矩形斜坡曲面和一个平台斜坡曲面,否则,以所述三个锚点中相邻的两个锚点间距离为长,相应的斜坡曲面的宽度为宽生成对应的矩形斜坡曲面。

可选的,地形网格生成模块还用于:

当所述相邻两个锚点间向量的向量积沿所述设定轴方向的坐标不为零时,确定需要在相邻的两个矩形斜坡曲面之间增加一个平台斜坡曲面。

可选的,高度采样模块具体用于:

将沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点在世界坐标系下高度值作为所述斜坡曲面点的采样高度值。

可选的,所述地貌生成模块具体用于:

将所述斜坡曲面点的高度值与采样高度值进行插值计算得到所述斜坡曲面点的最终高度值;

所述地形高度图区域内非斜坡曲面点的高度值作为所述非斜坡曲面点的最终高度值。

可选的,所述插值计算的插值系数根据所述斜坡曲面点与所述斜坡曲面的边缘的过渡范围确定。

可选的,所述插值系数的确定过程包括:

当预设过渡范围阈值为零时,所述插值系数为一;

当预设过渡范围阈值非零时,计算沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点与所述斜坡曲面的边缘的最小距离,根据所述最小距离与所述预设过渡范围阈值的比值确定所述插值系数。

第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例中任一所述的地貌生成方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如发明实施例中任一所述的地貌生成方法。

本发明实施例通过由用户输入锚点、斜坡宽度以及地形高度图等信息,使计算机程序根据锚点的世界坐标生成斜坡网格,进而根据斜坡网格和地形高度图确定斜坡网格对应的地形高度图区域,然后,在地形高度图区域内标记斜坡网格点,并对每个斜坡网格点进行高度值采样,最终根据地形高度图区域内各数据点的高度值及斜坡网格点的采样高度值确定斜坡网格中各数据点的最终高度值,并根据确定结果生成目标地貌图,解决现有斜坡地形雕刻过程中用户逐点反复进行地形高度调整生成目标地貌效率低的问题;可以实现计算机程序根据用户输入的参数自动生成目标地貌图像,提高目标地貌图像制作效率,并且提高地貌图像的可修改性。

附图说明

图1是本发明实施例一中的地貌生成方法的流程图;

图2是本发明实施例一中的一段斜坡的地貌示意图;

图3是本发明实施例一中的过斜坡曲面点直线与斜坡曲面的交点到斜坡曲面边缘最小距离的示意图;

图4是本发明实施例二中的地貌生成方法的流程图;

图5是本发明实施例二中的两段斜坡的地貌示意图;

图6是本发明实施例二中的多段斜坡地貌的锚点设置及斜坡曲面示意图;

图7是本发明实施例三中的地貌生成装置的结构示意图;

图8是本发明实施例四中的计算机设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。

实施例一

图1为本发明实施例一提供的地貌生成方法的流程图,本实施例可适用于对图像中斜坡地貌元素生成的情况,该方法可以由地貌生成装置实现,该装置配置于计算机设备中,具体可通过设备中的软件和/或硬件来实施。如图1所示,地貌生成方法具体包括:

s110、根据用户输入的两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面。

锚点通常是作为一种标记,来定义一个文档或是网页链接等内容的位置,在本实施例中,将锚点作为斜坡地貌的标记点,锚点定义了每一段斜坡的端点的高度,那么,根据两个锚点的坐标以及两个锚点间斜坡的宽度便可以生成一段斜坡曲面。其中,斜坡的端点是指斜坡这一倾斜曲面的起点和终点。例如图2所示的一段斜坡地貌示意图中的p0点和p1点,其中,p0点和p1点处的括号里的数字表示p0点和p1点的世界坐标系坐标。

具体的,斜坡曲面的生成过程可以是:当用户在图像制作界面(如数字制作应用界面)输入了两个锚点之后,即可确定这两个锚点在世界坐标系中的坐标值,进而可以确定两个锚点间的向量以及两个锚点间的距离,也即两个锚点间向量的长度。然后,以这两个锚点间的距离为长,以用户输入的这两个锚点间的斜坡曲面的宽度为宽生成一个矩形斜坡曲面。记斜坡的宽度为w,斜坡中点pcenter=(p0+p1)/2,纵轴vforward=normalize(p1-p0),即p0到p1方向的单位向量,横轴vright=normalize(vup×vforward),即y轴正方向单位向量与纵轴单位向量进行叉乘得到的单位向量,尺寸(length(p1-p0)/2,w/2)分别为矩形在纵轴与横轴上的覆盖范围。其中,normalize表示对向量v=(x,y,z)进行归一化。vup=(0,1,0)为方向竖直方向上(y轴正方向)的方向向量。length表示取向量的模。

这里可以理解的是,生成的矩形斜坡曲面是一个由若干个三角形组成的地形网格,矩形斜坡曲面的轮廓即为斜坡地貌的轮廓。

s120、根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标点已知,坐标值为预设的坐标值,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离。

其中,地形高度图是在游戏世界中的一个场景下,各个数据点(像素点)位置处的高度值,可由用户自定义输入或是按照用户设定规则自动生成的高度值。例如,在某一场景下,包括平坦的道路和数目,那么可以设定道路与树木高度值的差值、道路的高度值以及道路高度的波动幅度值等参数,根据已知任意数据点高度值生成其他数据点的高度值。具体的,假设地形区域为一个长和宽分别为m和n的矩形区域,在该矩形区域内各像素点的地表高度图为h(i,j),其中,i=1,2,…,m;j=1,2,…,n。

进一步的,由于矩形斜坡曲面表示的地形是在场景中的一部分,那么在地形高度图的某一个区域中,表示的是矩形斜坡曲面中各像素点的地表高度。在地貌生成的过程中,则需要确定矩形斜坡曲面中像素点对应的地表高度值,作为高度调整的初始值。地形高度图的原点在世界坐标系中的坐标点是已知的,那么即可将地形高度图的数据点与世界坐标系中的数据点(像素点)一一对应,记h(1,1)对应游戏世界坐标系坐标点为(x0,z0),且相邻数据点在x轴方向上间隔δx,z轴方向上间隔δz。这是由于在游戏制作过程中通常将大地所在平面记为x-z平面。此外,根据锚点的坐标以及矩形斜坡曲面的长度和宽度,可以确定矩形斜坡曲面在游戏世界坐标系中x-z平面的坐标范围为(xstart,zstart)至(xend,zend),则对应的地形高度图区域为(floor((xstart-x0)/δx),floor((zstart-z0)/δz)),至(ceil((xend-x0)/δx),ceil((zend-z0)/δz))。其中,floor操作代表向下取整,ceil操作代表向上取整。记上述地形高度图区域范围分别为:(i0,j0)=(floor((xstart-x0)/δx),floor((zstart-z0)/δz));(i1,j1)=(ceil((xend-x0)/δx),ceil((zend-z0)/δz))。

s130、在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点。

具体的,对每一个在(i0,j0)到(i1,j1)范围内的数据点(i,j),判断过该数据点世界坐标点沿设定轴方向的直线l是否与斜坡曲面相交,如果相交,则该数据点斜坡高度值为l与斜坡曲面交点对应的高度值,并标记为斜坡曲面点;如果不相交,标记为非斜坡曲面点。这是因为在经过斜坡曲面的世界坐标与地形高度图的坐标换算之后,得到的地形网格对应的地形高度图区域范围会大于斜坡曲面的范围,其中一些数据点并不属于斜坡曲面。这里需要说明的是,在本实施例中,将大地所在平面记为xz平面,那么设定轴方向记为y轴的正方向。若大地所在平面非xz平面,那么设定轴方向也会相应的调整,调整为与大地所在平面垂直的方向。

进一步的,将沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点在世界坐标系下高度值作为所述地形网格点的采样高度值。这一采样高度值是根据交点在斜坡曲面中所在三角形面片的顶点的顶点坐标进行计算得到的高度值。

s140、根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

地形高度图区域内各数据点的高度值是各数据点在游戏大世界中的地表高数初始值,对于非斜坡曲面点的高度值即为其最终的高度值,也就是非斜坡曲面点的高度值不发生变化。而对于斜坡曲面点的最终高度值,则需要根据其初始值以及采样高度值进行计算得到最终高度值。

具体的,计算过程是首先将斜坡曲面点的采样高度值作为所述斜坡曲面点的目标高度值;然后,将斜坡曲面点的高度值(也就是初始值)与目标高度值进行插值计算得到所述斜坡曲面点的最终高度值。在一种优选的实施方式中,可以将斜坡曲面点的采样高度值加上一个随机噪声值作为斜坡曲面点的目标高度值,以使斜坡曲面更加自然。其中,随机噪声值可以是一个连续变化的噪声函数值,在图形学中的噪声表示为rn[-1,1],(n=1,2,3...)的连续变化函数,而且没有明显的重复特征。

其中,插值计算的插值系数根据斜坡曲面点与斜坡曲面的边缘的过渡范围确定。这里要说明的是过渡指的是不同地形变化之间的过渡,例如斜坡曲面之外的区域是与斜坡曲面表示的地形不同的地形,示例性的可以是平地,平地与斜坡之间不是突变的,而是有一个高度渐变的过程。不同地形之间的变化如果没有过渡的话会显得画面不自然。

具体的,插值系数的确定过程包括:当预设过渡范围阈值为零时,所述插值系数为一,也就是高度值即为目标高度值;当预设过渡范围阈值非零时,计算沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点与所述斜坡曲面的边缘的最小距离,根据所述最小距离与所述预设过渡范围阈值的比值确定所述插值系数。沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点(下文中简称交点)与所述斜坡曲面的边缘的最小距离可参考图3所示的距离d。图3左侧为一个由有两个三角形组成的矩形的地形网格,交点到这一矩形的各个边的距离中最小的一个即为d;图3右侧为一个包含多个三角形的地形网格,仍然是交点到这一地形网格边缘的最小距离作为d。在这里,记预设过渡范围阈值为d0(参考图2中d0,即为实线与虚线之间的宽度),插值系数为t,那么t=clamp01(d/d0),其中,clamp01操作代表当数值小于0时取0,当数值大于1时取1,其余情况保持不变。此外,记最终高度值为h,原始高度值为h0,目标高度值为h1;那么,h(1t)×h0+t×h1。

进一步的,当确定了斜坡曲面对应的地形高度图区域内各个数据点的最终高度值,游戏引擎或是其他图像处理程序可根据最终的高度值生成目标地貌图。利用本实施例的地貌生成方法,根据图2中的p0和p1两个锚点,以及预设的斜坡曲面宽度,可得到的目标地貌图,即图2中的斜坡。

本实施例的技术方案,通过由用户输入两个锚点、两个锚点间斜坡曲面的宽度以及地形高度图等信息,使计算机程序根据锚点坐标以及斜坡曲面宽度生成斜坡曲面作为地形网格,根据斜坡曲面和地形高度图确定斜坡曲面对应的地形高度图区域,然后,在地形高度图区域内标记斜坡曲面点,并对每个斜坡曲面点进行高度值采样,最终根据地形高度图区域内各数据点的高度值以及斜坡曲面点的采样高度值确定地形网格中各数据点的最终高度值,并根据确定结果生成目标地貌图,解决现有斜坡地形雕刻过程中用户逐点反复进行地形高度调整生成目标地貌效率低的问题;可以实现计算机程序根据用户输入的参数自动生成目标地貌图像,提高目标地貌图像制作效率,并且提高地貌图像的可修改性。

实施例二

图4为发明实施例二提供的一种地貌生成方法的流程图。本实施例在上述实施例中各个可选方案基础上进一步优化,以说明生成多段斜坡地貌的过程。如图4所示,本发明实施例中提供的地貌生成方法包括如下步骤:

s210、根据用户输入的三个或三个以上数量的锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面。

具体的,当用户输入的锚点有三个或三个以上时,则说明生成的目标斜坡地貌包括两段或两段以上斜坡。此时,要考虑相邻的两段斜坡曲面之间是否需要增加一个连接平台。当相邻的两段斜坡曲面相连接的边之间不存在夹角,仅倾斜程度不同时,则不需要增加旋转平台;当相邻的两段斜坡曲面相连接的边之间存在夹角时,则需要增加旋转平台,否则会使两个斜坡曲面之间的连接处发生断裂,不能保证两个斜坡曲面之间的连贯性。可类比于两个楼层之间的楼梯,如二楼至三楼的楼梯,在二楼半位置处会有一个平台,连接两段楼梯。

在本实施例中,先以三个锚点为例说明如何生成斜坡曲面:

如图5所示,在图中用户输入了p0、p1和p2三个锚点,首先,根据相邻的两个锚点间向量的向量积判断是否需要在相邻的两个斜坡曲面之间增加一个平台斜坡曲面,即判断向量p1p0×向量p1p2得到的向量的y坐标值是否为非0值。若是,则根据相邻的两个锚点间向量(向量p1p0和向量p1p2)对应的三个锚点(p0、p1和p2)的世界坐标计算并生成两个矩形斜坡曲面和一个平台斜坡曲面,否则,以所述三个锚点中相邻的两个锚点间距离为长,相应的斜坡曲面的宽度为宽生成对应的矩形斜坡曲面。

具体的,不增加平台斜坡曲面时,可按照实施例一中的方法,分别以p0和p1、p1和p2为锚点生成预设宽度的两个矩形斜坡曲面即可。当需要增加平台斜坡曲面时,先计算出平台斜坡曲面与两个矩形斜坡曲面间的连接锚点s1与s2,然后再计算平台斜坡曲面的中心点s0和张角,平台斜坡曲面为一个扇形。

计算过程如下:

v10h=normalize(p0.x-p1.x,0,p0.z-p1.z);

v12h=normalize(p2.x-p1.x,0,p2.z-p1.z);

vaxis=normalize((v10h+v12h)/2);

d=w/2×(vaxis·v10h)/length(vaxis×v10h);

s1=p1+d×v10h;

s2=p1+d×v12h。

其中,v10h是锚点p1至p0的向量在x-z平面的投影向量的单位向量,v12h锚点p1至p2的向量在x-z平面的投影向量的单位向量,w为相邻两个锚点间矩形斜坡曲面的宽度。

如果(v10h×v12h).y<0,则s0=s1+w/2×normalize(v10h×vup),否则s0=s1-w/2×normalize(v10h×vup),扇形半径r=w,扇形张角半角单位向量vaxis(即扇形的角平分线),扇形张角(即角s1s0s2)弧度d=normalize(s0-s1)·vaxis,从而可以确定扇形的平台斜坡曲面。进而计算并生成这一平台斜坡曲面所连接的两个矩形斜坡曲面。可按照实施例一中的方法,分别以p0和s1、s2和p2为锚点生成两个预设宽度的矩形斜坡曲面即可。

进一步的,当用户输入的锚点的数量为三个以上时,如图6所示的多段斜坡的锚点示意图中,设置有6个锚点(黑色圆点),那么可以以每三个相邻的锚点按照上述过程确定相邻的两个斜坡曲面或者是相邻的两个斜坡曲面和连接两个斜坡曲面的平台斜坡曲面。

s220、根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标值为预设坐标值,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离。

s230、在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点。

s240、根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

步骤s220-s240可参考步骤s120-s140。

本实施例的技术方案,通过由用户输入三个及以上数量的锚点、两个锚点间斜坡曲面的宽度以及地形高度图等信息,使计算机程序根据锚点坐标以及斜坡曲面宽度生成斜坡曲面作为地形网格,根据斜坡曲面和地形高度图确定斜坡曲面对应的地形高度图区域,然后,在地形高度图区域内标记斜坡曲面点,并对每个斜坡曲面点进行高度值采样,最终根据地形高度图区域内各数据点的高度值以及斜坡曲面点的采样高度值确定地形网格中各数据点的最终高度值,并根据确定结果生成目标地貌图,解决现有斜坡地形雕刻过程中用户逐点反复进行地形高度调整生成目标地貌效率低的问题;可以实现计算机程序根据用户输入的参数自动生成目标地貌图像,提高目标地貌图像制作效率,并且提高地貌图像的可修改性。

实施例三

图7示出了本发明实施例三提供的一种地貌生成装置的结构示意图,本发明实施例可适用于对生成图像中斜坡地貌元素的情况。

如图7所示,本发明实施例中地貌生成装置,包括:地形网格生成模块310、范围确定模块320、高度采样模块330和地貌生成模块340。

其中,地形网格生成模块310,用于根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面;范围确定模块320,用于根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标值为预设坐标值,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离;高度采样模块330,用于在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点;地貌生成模块340,用于根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

本实施例的技术方案,通过由用户输入锚点、斜坡宽度以及地形高度图等信息,使计算机程序根据锚点的世界坐标生成斜坡网格,进而根据斜坡网格和地形高度图确定斜坡网格对应的地形高度图区域,然后,在地形高度图区域内标记斜坡网格点,并对每个斜坡网格点进行高度值采样,最终根据地形高度图区域内各数据点的高度值及斜坡网格点的采样高度值确定斜坡网格中各数据点的最终高度值,并根据确定结果生成目标地貌图,解决现有斜坡地形雕刻过程中用户逐点反复进行地形高度调整生成目标地貌效率低的问题;可以实现计算机程序根据用户输入的参数自动生成目标地貌图像,提高目标地貌图像制作效率,并且提高地貌图像的可修改性。

可选的,地形网格生成模块310具体用于:

当所述锚点的数量为二时,以所述两个锚点间距离为长,以所述宽度为宽生成一个矩形斜坡曲面;

当所述锚点的数量大于二时,根据相邻两个锚点间向量的向量积判断是否需要在相邻的两个矩形斜坡曲面之间增加一个平台斜坡曲面,若是,则以相邻的两个锚点间距离为长,相应的斜坡曲面的宽度为宽生成对应的矩形斜坡曲面,并根据相邻两个矩形斜坡曲面的锚点的坐标计算并生成平台斜坡曲面,否则,以相邻的两个锚点间距离为长,相应的斜坡曲面的宽度为宽生成对应的矩形斜坡曲面。

可选的,地形网格生成模块310还用于:

当所述相邻两个锚点间向量的向量积沿所述设定轴方向的坐标不为零时,确定需要在相邻的两个矩形斜坡曲面之间增加一个平台斜坡曲面。

可选的,高度采样模块330具体用于:

将沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点在世界坐标系下高度值作为所述斜坡曲面点的采样高度值。

可选的,所述地貌生成模块340具体用于:

将所述斜坡曲面点的高度值与采样高度值进行插值计算得到所述斜坡曲面点的最终高度值;

所述地形高度图区域内非斜坡曲面点的高度值作为所述非斜坡曲面点的最终高度值。

可选的,所述插值计算的插值系数根据所述斜坡曲面点与所述斜坡曲面的边缘的过渡范围确定。

可选的,所述插值系数的确定过程包括:

当预设过渡范围阈值为零时,所述插值系数为一;

当预设过渡范围阈值非零时,计算沿世界坐标设定轴方向且经过所述斜坡曲面点的直线与所述斜坡曲面的交点与所述斜坡曲面的边缘的最小距离,根据所述最小距离与所述预设过渡范围阈值的比值确定所述插值系数。

本发明实施例所提供的地貌生成装置可执行本发明任意实施例所提供的地貌生成方法,具备执行方法相应的功能模块和有益效果。

实施例四

图8是本发明实施例四中的计算机设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性计算机设备412的框图。图8显示的计算机设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图8所示,计算机设备412以通用计算设备的形式表现。计算机设备412的组件可以包括但不限于:一个或者多个处理器或者处理单元416,系统存储器428,连接不同系统组件(包括系统存储器428和处理单元416)的总线418。

总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)430和/或高速缓存存储器432。计算机设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储器428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储器428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明所描述的实施例中的功能和/或方法。

计算机设备412也可以与一个或多个外部设备414(例如键盘、指向设备、显示器424等)通信,还可与一个或者多个使得用户能与该计算机设备412交互的设备通信,和/或与使得该计算机设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口422进行。并且,计算机设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与计算机设备412的其它模块通信。应当明白,尽管图8中未示出,可以结合计算机设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元416通过运行存储在系统存储器428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的地貌生成方法,该方法主要包括:

根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面;

根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标点已知,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离;

在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点;

根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

实施例五

本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的地貌生成方法,该方法主要包括:

根据用户输入的至少两个锚点以及相邻的两个锚点间斜坡的宽度生成斜坡曲面;

根据所述斜坡曲面和地形高度图确定所述斜坡曲面对应的地形高度图区域,其中,所述地形高度图的原点在世界坐标系中的坐标点已知,且所述地形高度图中的相邻数据点在世界坐标系的各坐标轴方向上间隔预设距离;

在所述地形高度图区域内标记斜坡曲面点,并对每个所述斜坡曲面点进行高度值采样,其中,所述斜坡曲面点是沿世界坐标设定轴方向且经过数据点的直线与所述斜坡曲面相交时的数据点;

根据所述地形高度图区域内各数据点的高度值和所述斜坡曲面点的采样高度值,确定所述斜坡曲面中各数据点的最终高度值,并根据确定结果生成目标地貌图。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1