一种通过地形块扩充地形的方法及其系统与流程
- 国知局
- 2024-07-11 16:34:51
本发明涉及游戏地图处理,特别是一种通过地形块扩充地形的方法及其系统。
背景技术:
1、在现有的游戏开发技术中,地形生成通常依赖于几种主流的方法。首先是基于高度图的生成方法,这种方法通过一张灰度图像来定义地形的高度信息,进而生成三维地形。其次,基于体素的生成方法,它在三维空间中直接操作体素地形来创建三维地形,这种方法对细节的控制更为精确。此外,还有基于分形算法的地形生成,这种方法能够模拟出自然地形中常见的复杂结构和纹理。
2、现有技术存在的几个缺点如下:基于高度图的方法对于地形的细节表现力有限,特别是在处理复杂地形时,往往难以达到理想的效果。基于体素的方法虽然精细,但在处理大规模地形时,计算资源和内存消耗巨大,不利于实时渲染。分形算法虽然能够生成自然的地形结构,但对于特定风格或人为设计的地形,其生成效果往往不够理想。
技术实现思路
1、为克服上述问题,本发明的目的是提供一种通过地形块扩充地形的方法,该方法能更加灵活,可控地形成地形,降低了地形生成的难度。
2、本发明采用以下方案实现:一种通过地形块扩充地形的方法,所述方法包括如下步骤:
3、步骤s1、预先设置一个默认地形,然后根据地形块大小,将地形进行切割成不同行列的地形块;
4、步骤s2、通过设置地形块笔刷,获取要添加的地形块对应的行和列;
5、步骤s3、在地形上选中位置,通过地形块笔刷添加地形块;
6、步骤s4、根据生成的地形块的长度和宽度来重新组合成最后的地形,最后对生成的地形的地形块进行渲染和展示。
7、进一步的,所述步骤s1具体为:预先设置一个默认地形,设置该默认地形的宽度、高度以及地形大小;根据地形的分辨率以及要分割的地形块的大小来确定要分割的地形块的数量,并将地形按照地形块大小进行切割成多个地形块;地形块的数量等于地形的分辨率除以地形块大小的平方,即计算方式为:地形块的数量=地形宽度*地形高度÷地形块大小÷地形块大小。
8、进一步的,所述获取要添加的地形块对应的行和列具体为:获取游戏地图的起始点,获取鼠标位置,将鼠标位置减去起始点位置,即可判断当前鼠标点击的相对位置坐标;
9、地形块的行=鼠标相对位置坐标的y轴坐标/地形块的大小;
10、地形块的列=鼠标相对位置坐标的x轴坐标/地形块的大小。
11、进一步的,所述步骤s3具体为:在地形上选中位置,通过地形块笔刷添加地形块,获取到对应地形块的行和列之后,需要判断当前行和列是否已经存在地形块,当不存在地形块时,进行添加地形块;当存在地形块时,不进行添加;在添加地形块时,会导致整个地形的行列随着地形块的增加而改变,需要判断该行或者该列是否超过原有地形的行和列;如果行或者列超过原有地形的行或者列,则需要对地形大小进行重置;
12、添加地形块后,对应列的地形的长度=添加的地形块的列*地形块大小;
13、添加地形块后,对应行的地形的宽度=添加的地形块的行*地形块大小。
14、进一步的,所述步骤s4具体为:通过地形块笔刷添加地形后,将所有的地形块组合在一起形成完整的地形;在完整的地形上对各个地形块进行高度、纹理、颜色权重以及光照属性的设置;通过设置地形高度,形成地形高度图;该地形高度图是一个灰度图像,每个像素的颜色值表示该点的高度;通过在高度图上不同像素的灰度值,创建出各种地形的起伏和山脉;通过设置地形纹理,形成地形纹理图;该地形纹理图是一个彩色图像,每个像素的颜色值表示该点的纹理信息;不同的颜色代表不同的地形材质,通过在地形纹理图上不同像素的颜色值,为地形表面分配不同的纹理材质,从而呈现出多样化的地形效果;通过设置地形层的颜色混合权重,形成地形混合图;该地形混合图是一个二维纹理图像,与地形高度图或地形纹理图具有相同的分辨率;每个像素代表地形上的一个点,像素的颜色值表示该点上各个地形层的混合权重;地形混合图的工作原理是根据像素的颜色值来计算各个地形层的混合比例,黑色表示没有该地形层,白色表示完全使用该地形层,而灰色则表示混合不同地形层的比例;在渲染地形时,根据地形混合图的像素颜色值来计算各个地形层的权重,并将各个地形层混合在一起;最后进行地形的渲染,根据地形块的属性和材质信息进行光照计算、纹理映射的操作,以呈现出逼真的地形效果。
15、本发明还提供了一种通过地形块扩充地形的系统,所述系统包括地形分割模块、地形块笔刷形成模块、地形块添加模块、地形形成模块;
16、所述地形分割模块,预先设置一个默认地形,然后根据地形块大小,将地形进行切割成不同行列的地形块;
17、所述地形块笔刷形成模块,通过设置地形块笔刷,获取要添加的地形块对应的行和列;
18、所述地形块添加模块,在地形上选中位置,通过地形块笔刷添加地形块;
19、所述地形形成模块,根据生成的地形块的长度和宽度来重新组合成最后的地形,最后对生成的地形的地形块进行渲染和展示。
20、进一步的,所述地形分割模块的实现方式具体为:预先设置一个默认地形,设置该默认地形的宽度、高度以及地形大小;根据地形的分辨率以及要分割的地形块的大小来确定要分割的地形块的数量,并将地形按照地形块大小进行切割成多个地形块;地形块的数量等于地形的分辨率除以地形块大小的平方,即计算方式为:地形块的数量=地形宽度*地形高度÷地形块大小÷地形块大小。
21、进一步的,所述获取要添加的地形块对应的行和列具体为:获取游戏地图的起始点,获取鼠标位置,将鼠标位置减去起始点位置,即可判断当前鼠标点击的相对位置坐标;
22、地形块的行=鼠标相对位置坐标的y轴坐标/地形块的大小;
23、地形块的列=鼠标相对位置坐标的x轴坐标/地形块的大小。
24、进一步的,所述步骤地形块添加模块的实现方式具体为:在地形上选中位置,通过地形块笔刷添加地形块,获取到对应地形块的行和列之后,需要判断当前行和列是否已经存在地形块,当不存在地形块时,进行添加地形块;当存在地形块时,不进行添加;在添加地形块时,会导致整个地形的行列随着地形块的增加而改变,需要判断该行或者该列是否超过原有地形的行和列;如果行或者列超过原有地形的行或者列,则需要对地形大小进行重置;
25、添加地形块后,对应列的地形的长度=添加的地形块的列*地形块大小;
26、添加地形块后,对应行的地形的宽度=添加的地形块的行*地形块大小。
27、进一步的,所述地形形成模块的实现方式具体为:通过地形块笔刷添加地形后,将所有的地形块组合在一起形成完整的地形;在完整的地形上对各个地形块进行高度、纹理、颜色权重以及光照属性的设置;通过设置地形高度,形成地形高度图;该地形高度图是一个灰度图像,每个像素的颜色值表示该点的高度;通过在高度图上不同像素的灰度值,创建出各种地形的起伏和山脉;通过设置地形纹理,形成地形纹理图;该地形纹理图是一个彩色图像,每个像素的颜色值表示该点的纹理信息;不同的颜色代表不同的地形材质,通过在地形纹理图上不同像素的颜色值,为地形表面分配不同的纹理材质,从而呈现出多样化的地形效果;通过设置地形层的颜色混合权重,形成地形混合图;该地形混合图是一个二维纹理图像,与地形高度图或地形纹理图具有相同的分辨率;每个像素代表地形上的一个点,像素的颜色值表示该点上各个地形层的混合权重;地形混合图的工作原理是根据像素的颜色值来计算各个地形层的混合比例,黑色表示没有该地形层,白色表示完全使用该地形层,而灰色则表示混合不同地形层的比例;在渲染地形时,根据地形混合图的像素颜色值来计算各个地形层的权重,并将各个地形层混合在一起;最后进行地形的渲染,根据地形块的属性和材质信息进行光照计算、纹理映射的操作,以呈现出逼真的地形效果。
28、本发明的有益效果在于:(1)灵活性:地形块生成方法允许用户根据需求自由选择和组合地形块,从而创建出丰富多样的地形;这种灵活性使得地形生成更加符合用户的期望和创意。(2)直观性:通过直观的用户交互界面,用户可以轻松地编辑和调整地形块的属性和位置,实现地形的快速生成和修改;这大大降低了地形生成的难度和学习成本。(3)可控性:用户可以直接干预地形的生成过程,通过调整地形块的属性和组合方式来达到预期的效果;这使得地形生成更加可控和可预测。
本文地址:https://www.jishuxx.com/zhuanli/20240615/80036.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。