本发明涉及地形场景模拟技术领域,特别是涉及一种基于沃利噪声的环形山地形生成方法及装置。
背景技术:
计算机图形学中,对平面地形或者球体星球进行三维建模的方法是,给定一个平面位置坐标或者球体星球的经纬度坐标,然后返回给定的坐标所对应的高度值。
上述方法基于沃利噪声,并且做了一定的修改。沃利噪声(worleynoise)又被称为细胞噪声(cellnoise),是根据网格控制点的势力范围对空间区域进行划分的方法。沃利噪声常用于生成细胞、水波、岩石等物体的纹理。
但是,采用上述方法生成带有环形山的地形场景时,返回的高度值,并不十分合适,并且所需步骤十分繁琐。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种基于沃利噪声的环形山地形生成方法及装置,可以快速、实时、高效地生成带有环形山的地形场景。
为实现上述目的,本发明提供的基于沃利噪声的环形山地形生成方法,包括以下步骤:
按照固定步长生成网格点;
移动网格点,移动距离小于固定步长;
以每一网格点和与每一网格点距离最近的网格点之间的距离的二分之一作为每一网格点作为圆心的随机圆的半径,生成随机圆;
基于预设的坐标位置,以及预设的高度比例值,计算预设的坐标位置的高度值;
根据预设的坐标位置的高度值,以及随机圆,生成环形山地形。
所述基于预设的坐标位置,以及预设的高度比例值,计算预设的坐标位置的高度值步骤进一步包括步骤:
计算预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离;
基于预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,和与预设的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,计算预设的坐标位置的高度值。
进一步地,所述的基于沃利噪声的环形山地形生成方法,还包括步骤:
基于输入的坐标位置和与输入的坐标位置距离最近的网格点之间的距离,和与输入的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,判断输入的坐标位置是否位于以与输入的坐标位置距离最近的网格点作为圆心的随机圆生成的环形山地形上。
进一步地,所述按照固定步长生成网格点的步骤是,二维平面下生成的网格点为正方形分布;三维立体下生成的网格点为立方体分布。
为实现上述目的,本发明提供的基于沃利噪声的环形山地形生成装置,包括:网格点生成模块、网格点移动模块、半径确定模块、高度值确定模块和环形山地形生成模块,其中,
所述网格点生成模块,用于按照固定步长生成网格点;
所述网格点移动模块,用于移动网格点,移动距离小于固定步长;
所述半径确定模块,用于以每一网格点和与每一网格点距离最近的网格点之间的距离的二分之一作为每一网格点作为圆心的随机圆的半径,生成随机圆;
所述高度值确定模块,用于基于预设的坐标位置,以及预设的高度比例值,计算预设的坐标位置的高度值;
所述环形山地形生成模块,用于根据预设的坐标位置的高度值,以及随机圆,生成环形山地形。
所述高度值确定模块,进一步用于计算预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离;以及用于基于预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,和与预设的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,计算预设的坐标位置的高度值。
进一步地,所述高度值确定模块,还用于基于输入的坐标位置和与输入的坐标位置距离最近的网格点之间的距离,和与输入的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,判断输入的坐标位置是否位于以与输入的坐标位置距离最近的网格点作为圆心的随机圆生成的环形山地形上。
所述网格点生成模块,进一步用于二维平面下生成的网格点为正方形分布;以及用于三维立体下生成的网格点为立方体分布。
本发明的基于沃利噪声的环形山地形生成方法和装置,基于输入的一个采样点的坐标值,输出一个该采样点对应的高度值,从而能够在地形场景中随机生成环形山,进而用于模拟出陨石坑或火山坑的效果。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的基于沃利噪声的环形山地形生成方法流程图;
图2为根据本发明的在二维平面上生成随机圆的状态示意图;
图3为根据本发明的在三维球面上生成随机圆的状态示意图;
图4为根据本发明的在其他几何曲面上生成随机圆的状态示意图;
图5为根据本发明的基于沃利噪声的环形山地形生成方法生成的星球效果图;
图6为根据本发明的基于沃利噪声的环形山地形生成装置架构图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的基于沃利噪声的环形山地形生成方法流程图,下面将参考图1,对本发明的基于沃利噪声的环形山地形生成方法进行详细描述。
在步骤110,按照固定步长生成网格点。
该步骤中,按照固定步长生成规则的网格点:二维平面下生成的网格点为正方形分布,三维立体下生成的网格点为立方体分布。
在步骤120,移动网格点,移动距离小于固定步长的一半。
该步骤中,对网格点进行随机移动,移动方向随机生成,移动距离也随机生成,但不超过固定步长的一半;其中,移动后的网格点作为随机圆的圆心。
在步骤130,以每一网格点和与每一网格点距离最近的网格点之间的距离的二分之一作为每一网格点作为圆心的随机圆的半径,生成随机圆。
该步骤中,首先,计算出每一个网格点与其周围相邻网格点的最近距离:二维平面下,每一个网格点周围有8个相邻网格点;三维空间下,每一个网格点周围有26个相邻网格点。
然后,以计算的最近距离作为该一个网格点对应的随机圆的半径,生成随机圆。
图2-4分别为根据本发明的生成随机圆的状态示意图,其中,图2为在二维平面上生成随机圆的状态示意图,图3为在三维球面上生成随机圆的状态示意图;图4为在其他几何曲面上生成随机圆的状态示意图。
在步骤140,基于预设的坐标位置,以及预设的高度比例值,计算预设的坐标位置的高度值
该步骤中,首先计算预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,即基于预设的坐标位置,找出预设的坐标位置周围距离其最近的一个网格点,并计算该一个网格点与预设的坐标位置之间的距离。
然后,基于预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,和与预设的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,计算预设的坐标位置的高度值。
在步骤150,根据预设的坐标位置的高度值,以及随机圆,生成环形山地形。
该步骤中,基于预设的坐标位置、预设的坐标位置的高度值以及随机圆,生成环形山地形。
图5为根据本发明的基于沃利噪声的环形山地形生成方法生成的星球效果图,如图5所示,生成了具有环形山地形效果的星球。
优选地,基于输入的坐标位置和与输入的坐标位置距离最近的网格点之间的距离,和与输入的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,判断输入的坐标位置是否位于以与输入的坐标位置距离最近的网格点作为圆心的随机圆生成的环形山地形上。
图6为根据本发明的基于沃利噪声的环形山地形生成装置架构图,如图6所示,本发明的基于沃利噪声的环形山地形生成装置600,包括:网格点生成模块610、网格点移动模块620、半径确定模块630、高度值确定模块640和环形山地形生成模块650,其中,
网格点生成模块610,用于按照固定步长生成网格点。
进一步地,按照固定步长生成规则的网格点:二维平面下生成的网格点为正方形分布,三维立体下生成的网格点为立方体分布。
网格点移动模块620,用于移动网格点,移动距离小于固定步长。
具体而言,对网格点进行随机移动,移动方向随机生成,移动距离也随机生成,但不超过固定步长;其中,移动后的网格点作为随机圆的圆心。
半径确定模块630,用于以每一网格点和与每一网格点距离最近的网格点之间的距离的二分之一作为每一网格点作为圆心的随机圆的半径,生成随机圆。
具体而言,首先,计算出每一个网格点与其周围相邻网格点的最近距离:二维平面下,每一个网格点周围有8个相邻网格点;三维空间下,每一个网格点周围有26个相邻网格点。
然后,以计算的最近距离作为该一个网格点对应的随机圆的半径,生成随机圆。
高度值确定模块640,用于基于预设的坐标位置,以及预设的高度比例值,计算预设的坐标位置的高度值。
具体而言,首先计算预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,即基于预设的坐标位置,找出预设的坐标位置周围距离其最近的一个网格点,并计算该一个网格点与预设的坐标位置之间的距离。
然后,基于预设的坐标位置和与预设的坐标位置距离最近的网格点之间的距离,和与预设的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,计算预设的坐标位置的高度值。
环形山地形生成模块650,用于根据预设的坐标位置的高度值,以及随机圆,生成环形山地形。
进一步地,基于预设的坐标位置、预设的坐标位置的高度值以及随机圆,生成环形山地形。
高度值确定模块640,还用于基于输入的坐标位置和与输入的坐标位置距离最近的网格点之间的距离,和与输入的坐标位置距离最近的网格点作为圆心的随机圆的半径,两者之间比例值,以及预设的高度比例值,判断输入的坐标位置是否位于以与输入的坐标位置距离最近的网格点作为圆心的随机圆生成的环形山地形上。
本发明的基于沃利噪声的环形山地形生成方法和装置,基于输入的一个采样点的坐标值,输出一个该采样点对应的高度值,从而能够在地形场景中随机生成环形山,进而用于模拟出陨石坑或火山坑的效果。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。