公开/公告号CN112634381A
专利类型发明专利
公开/公告日2021-04-09
原文格式PDF
申请/专利权人 深圳雷霆数字娱乐有限公司;
申请/专利号CN202011518710.5
发明设计人 刘珏江;
申请日2020-12-21
分类号G06T7/90(20170101);G06T11/00(20060101);
代理机构35203 厦门市新华专利商标代理有限公司;
代理人罗恒兰
地址 518000 广东省深圳市前海深港合作区前湾一路1号A栋201室
入库时间 2023-06-19 10:32:14
技术领域
本发明涉及计算机领域,具体涉及一种游戏中随机地图贴图的生成方法、装置、可读存储介质及计算机软件程序产品。
背景技术
开放世界大地图是现在比较热门的游戏组成部分之一,而很多开放世界的生成方式为随机生成,以减少定制大地图繁重的任务量。
对于游戏表现而言,贴图表现是不可或缺的一个组成部分,对于随机的大型地图而言,较少的贴图数量会导致场景出现强烈的重复感,这就需要美术提供较多的贴图来解决,但这样又会给美术人员带来较大的重复的工作量,影响游戏的开发效率,且即使有大量的贴图,随机的时候也可能会有同一张贴图连续出现的问题,从而带来比较明显的重复现象。
有鉴于此,本发明人针对上述地图贴图存在的问题进行深入构思,遂产生本案。
发明内容
本发明的目的在于提供一种游戏中速记地图贴图的生成方法、、装置、可读存储介质及计算机软件程序产品,以运用少量的贴图生成大型随机地图,并解决因少量贴图带来的重复感问题。
为实现上述目的,本发明采用的技术方案是:
一种游戏中随机地图贴图的生成方法,其包括
初始控制图创建步骤;创建初始控制图,并设置初始控制中每个像素的颜色对应RGBA通道值,所述初始控制图创建数为原始贴图的1/4;
对于每一初始控制图,执行以下步骤,生成控制图:
像素标记值计算步骤;根据初始控制图与地形网格的长宽比,计算初始控制图的像素在地形中的坐标值,然后求取该像素的像素标记值;
像素权重列表计算步骤;对于初始控制图中的每一像素,将其像素标记值加上偏移值得到偏移像素标记值,根据偏移像素标记值确定其所在的区间,并设置权重,构建该像素的权重列表;
控制图生成步骤;将像素权重列表中的权重作为RGBA四个通道的值,构建该像素值,得到控制图;
地图贴图生成步骤;将上述步骤生成的控制图混合原始贴图,形成地图贴图。
所述像素权重列表计算步骤中,设置权重具体如下:
若偏移像素标记值在某个原始贴图设置的标记值区间内,将对应原始贴图下标的权重标记为1,表示该点采样该区间对应的原始贴图;
若偏移像素标记值低于第一张原始贴图的最低标记值,将第一个原始贴图权重标记为1,表示低于所有原始贴图最低标记值的点采样第一张贴图;若像素标记值高于最高区间的最高值,将最后一张原始贴图权重标记为1,表示采样最后一张原始贴图;
若偏移像素标记值在某两个原始贴图的标记值区间之间,大于上一个标记值区间的最高值,小于下一个标记值区间的最低值,根据上一个标记值区间的最高值、该偏移像素标记值、下一个标记值区间的最低值这三个值确定混合比例,得到两原始贴图的权重,表示该点采样两张贴图并通过一定的比例进行混合。
所述像素权重列表计算步骤中,若偏移像素标记值在某两个原始贴图的标记值区间之间,两原始贴图的权重计算如下:
下一原始贴图的权重为:(像素偏移标记值–上一个区间的最高值)/ 该标记值;
上一原始贴图的权重为:1–下一原始贴图的权重。
所述方法还包括权重数组创建步骤,所述权重数组的长度为一初始控制图的像素的个数;权重数组的数量为原始贴图数量,为初始控制图的四倍,对应初始控制图像素颜色的四个通道;
所述权重数组用于在像素权重列表计算步骤中存储像素的权重值。
所述像素权重列表计算步骤中,所述偏移值的计算如下:
利用柏林函数计算初始噪声值,处理后得到实际噪声值;实际噪声值乘以偏移系数后得到偏移值。
所述偏移系数包括最大偏移系数和最小偏移系数;所述偏移值的计算如下:
若实际噪声值小于0,乘以最小偏移系数,得到偏移值;若实际噪声值大于0,乘以最大偏移系数,得到偏移值。
所述像素标记值计算步骤中,像素标记值计算具体如下:
首先,根据初始控制图中的像素映射到地形的坐标h(x, y),计算该点h左下方网格点h0(i, j),右上方网格点h1(iCeil, jCeil),由上述两个点的坐标可以得到左上方网格点h2(i,jCeil),右下方网格点h3(iCeil,j);其中,i=floor(x),j=floor(y),iCeil=ceil(x),
jCeil=ceil(j);floor代表向下取整,指不大于该值的最大整数;ceil代表向上取整,指不小于该值的最小整数;
然后,获取上述四个点h0、h1、h2、h3对应的地形标记值;
最后,根据上述周围四个点h0、h1、h2、h3双线性插值得到该点h的标记值即为初始控制图的像素标记值。
一种游戏中随机地图贴图的生成装置,其包括
初始控制图创建模块,用于创建初始控制图,并设置初始控制中每个像素的颜色对应RGBA通道值,所述初始控制图创建数为原始贴图的1/4;
控制图生成模块,包括像素标记值计算单元、像素权重列表计算单元、控制图生成单元;
所述像素标记值计算单元用于根据初始控制图与地形网格的长宽比,计算初始控制图的像素在地形中的坐标值,并求取该像素的像素标记值;
所述像素权重列表计算单元用于将初始控制图的每一像素标记值加上偏移值得到偏移像素标记值,根据偏移像素标记值确定其所在的区间,并设置权重,构建该像素的权重列表;
所述控制图生成单元用于将像素权重列表中的权重作为RGBA四个通道的值构建该像素值,得到控制图;
地图贴图生成模块,用于将生成的控制图混合原始贴图形成地图贴图。
所述像素权重列表计算单元设置权重如下:
若偏移像素标记值在某个原始贴图设置的标记值区间内,将对应原始贴图下标的权重标记为1,表示该点采样该区间对应的原始贴图;
若偏移像素标记值低于第一张原始贴图的最低标记值,将第一个原始贴图权重标记为1,表示低于所有原始贴图最低标记值的点采样第一张贴图;若像素标记值高于最高区间的最高值,将最后一张原始贴图权重标记为1,表示采样最后一张原始贴图;
若偏移像素标记值在某两个原始贴图的标记值区间之间,大于上一个标记值区间的最高值,小于下一个标记值区间的最低值,根据上一个标记值区间的最高值、该偏移像素标记值、下一个标记值区间的最低值这三个值确定混合比例,得到两原始贴图的权重,表示该点采样两张贴图并通过一定的比例进行混合。
所述像素权重列表计算单元用于计算权重时,若偏移像素标记值在某两个原始贴图的标记值区间之间,两原始贴图的权重计算如下:
下一原始贴图的权重为:(像素偏移标记值–上一个区间的最高值)/ 该标记值;
上一原始贴图的权重为:1–下一原始贴图的权重。
所述装置还包括权重数组创建模块,用于创建权重数组,所述权重数组用于在像素权重列表计算步骤中存储像素的权重值;
所述权重数组的长度为一初始控制图的像素的个数;权重数组的数量为原始贴图数量,为初始控制图的四倍,对应初始控制图像素颜色的四个通道。
所述像素权重列表计算单元对偏移值的计算如下:
利用柏林函数计算初始噪声值,处理后得到实际噪声值;实际噪声值乘以偏移系数后得到偏移值。
所述偏移系数包括最大偏移系数和最小偏移系数;所述像素权重列表计算单元对偏移值的计算为:若实际噪声值小于0,乘以最小偏移系数,得到偏移值;若实际噪声值大于0,乘以最大偏移系数,得到偏移值。
所述像素标记值计算单元用于计算像素标记值,具体如下:
首先,根据初始控制图中的像素映射到地形的坐标h(x, y),计算该点h左下方网格点h0(i, j),右上方网格点h1(iCeil, jCeil),由上述两个点的坐标可以得到左上方网格点h2(i,jCeil),右下方网格点h3(iCeil,j);其中,i=floor(x),j=floor(y),iCeil=ceil(x),
jCeil=ceil(j);floor代表向下取整,指不大于该值的最大整数;ceil代表向上取整,指不小于该值的最小整数;
然后,获取上述四个点h0、h1、h2、h3对应的地形标记值;
最后,根据上述周围四个点h0、h1、h2、h3双线性插值得到该点h的标记值即为初始控制图的像素标记值。
一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-7任一项所述的随机地图贴图的生成方法。
一种计算机软件程序产品所述计算机软件程序产品在终端设备上运行时,使得所述终端设备执行如权利要求1-7任一项所述的随机地图贴图的生成方法。
采用上述方案后,本发明采用原始贴图并结合地形标记数据以区间的形式生成控制图,然后将生成的控制图混合原始贴图生成最终的地图贴图。随机的方式使美术人员不必提供大量的不重复贴图,少量的贴图即可实现不重复的效果图片混合给美术带来了更大的操作空间,可以产生更加丰富的效果。而且,由于控制图的生成与地形标记数据相关,可以创建出符合地形特征的控制图;将不同特色区域赋予不同的初始标记值,在特色区域的对应区间中采用相应的贴图组,可以更好的保留该区域的外观等区域特色。
附图说明
图1为初始控制图的标记值计算示意图;
图2为权重设置示意图。
具体实施方式
本发明揭示了一种游戏中随机地图贴图的生成方法,其包括以下步骤:
步骤1、提供原始贴图;
原始贴图由美术人员提供,原始贴图包含多组贴图,每组贴图由一张漫反射贴图和对应的法线图组成。实际应用中,美术人员可以提供少量的原始贴图,本发明实例中,美术人员提供的原始贴图包含8组贴图。
步骤2、生成控制图;
步骤2.1、创建初始控制图,创建数量为原始贴图数量的1/4,并设置所有初始控制图中每个像素的颜色值对应的RGBA通道值。
本发明实例中,需要创建两张初始控制图,设置的RGBA通道值均为1000。
步骤2.2、对于每一初始控制图,计算初始控制图的像素标记值,利用该标记值生成控制图。具体如下:
步骤2.21、获取地形网格长w、宽h,计算地形所有点的标记值,地形中某点的标记值用来区分该点所处的贴图层级,用来混合贴图。本发明中,对地形中的点的标记值的计算方法不做限定。
步骤2.22、根据控制图长cw、宽ch与地形网格长宽分别计算横轴和纵轴的比例;其中,横轴比例比例r0=w/cw,纵轴比例r1=h/ch;该横轴和纵轴的比例用来通过网格数据计算控制图数据。
步骤2.23、对于控制图中每个像素点,根据该像素点在控制图中的位置(ci,cj)与对应坐标轴比例,获取该像素点在地图中的坐标(x,y),其中,x=r0/2+r0*ci,y=r1/2+r1*cj;然后计算该像素点的地图标记值。
如图1所示,本实施例中,控制图中每个像素点的地图标记值计算如下:
首先,根据控制图中的像素点映射到地图中的坐标点h(x,y),计算该点h左下方网格点h0(i,j),右上方网格点h1(iCeil,jCeil),由上述两个点的坐标可以得到左上方网格点h2(i,jCeil),右下方网格点h3(iCeil,j);其中,i=floor(x),j=floor(y),iCeil=ceil(x),jCeil=ceil(j);floor代表向下取整,指不大于该值的最大整数;ceil代表向上取整,指不小于该值的最小整数。
然后,获取上述四个点h0、h1、h2、h3对应的地图标记值。
最后,根据上述周围四个点h0、h1、h2、h3双线性插值得到该点h的标记值,即为初始控制图的像素标记值。
步骤2.3、创建权重数组,数组个数为贴图组的数量,为控制图数量的四倍,对应控制图像素颜色的四个通道。而每个数组长度为上述初始控制图的像素个数。
权重数组主要是用来存储下述生成的控制图的权重值,以便工作人员能够直观地了解所生成的控制图与地形之间的关系,便于工作人员进行反馈调节相关的参数设置。
本实例中使用8张原始贴图,需要生成2张控制图,8个权重数组,前四个数组中的值分别对应第一张控制图每个像素四个通道的值,对应前四张原始贴图的混合权重;后四个数组中的值分别对应第二张控制图每个像素四个通道的值,对应后四张原始贴图的混合权重。权重的功能是标记采样哪一张贴图,或者哪几张贴图按照怎样的比例进行混合。
步骤2.4、对于每一个控制图的每个像素点标记值,计算该位置的像素权重列表。计算方式如下:
步骤2.41、对于每一个像素,根据该像素在控制图中的位置(ci,cj),利用柏林函数计算初始噪声值,该值在0~1之间,将该值调整到-1~1之间,调整方式为(噪声值–0.5)*2,得到实际噪声值。
步骤2.42、实际噪声值乘以一定的系数得到标记值偏移值,原标记值加上偏移值得到偏移之后的标记值;
本实例中采用如下方案:根据配置的噪声最大偏移系数和最小偏移系数,根据实际噪声值的大小计算实际偏移值:如果噪声值小于0,乘以最小偏移系数,得到偏移值;如果噪声值大于0,乘以最大偏移系数,得到偏移值。本专利所在实例共计算两次噪声,两个噪声值分开计算偏移值,再将原标记值分别加上两个偏移值,得到最终标记值。
本实施例在控制图的生成过程中采用了偏移值的方式,并结合最大偏移值和最小偏移值,有效控制噪声对像素标记值的影响。
步骤2.43、根据像素偏移之后的标记值得到其所在的标记值区间,根据标记值区间设置权重,参考图2所示,具体描述如下:
若偏移像素标记值在某个原始贴图设置的标记值区间内,将对应原始贴图下标的权重标记为1,表示该点采样该区间对应的原始贴图;
若偏移像素标记值低于第一张原始贴图的最低标记值,将第一个原始贴图权重标记为1,表示低于所有原始贴图最低标记值的点采样第一张贴图;若像素标记值高于最高区间的最高值,将最后一张原始贴图权重标记为1,表示采样最后一张原始贴图;
若偏移像素标记值在某两个原始贴图的标记值区间之间,大于上一个标记值区间的最高值,小于下一个标记值区间的最低值,根据上一个标记值区间的最高值、该偏移像素标记值、下一个标记值区间的最低值这三个值确定混合比例,得到两原始贴图的权重,表示该点采样两张贴图并通过一定的比例进行混合。
本实施例中,两原始贴图的权重计算如下:
下一原始贴图的权重为:(像素偏移标记值–上一个区间的最高值)/ 该标记值;上一原始贴图的权重为:1–下一原始贴图的权重。
步骤2.44、根据步骤2.43得到所有贴图在该像素点位置的混合权重,构建该像素点的权重列表,列表中每个值分别对应某个贴图的混合权重。对于所有像素点的权重列表,贴图的顺序一致。同时将该像素点对应的所有贴图的混合权重,依次存放到对应的权重数组的对应位置上。
步骤2.5、根据像素权重列表,依次作为RGBA四个通道的值,构建对应控制图该位置的像素,从而得到控制图。
如图2所示,如果标记值在某个区间内部,则采用该区间对应的贴图组,如果标记值在两个区间之间,则混合相邻两个区间对应的原始贴图组,原始贴图1混合比例为差值1/标记值差值,原始贴图2混合比例为差值2/标记值差值。
步骤3、利用控制图混合各原始贴图,形成目标贴图。
本实施例中,混合方法如下:为地形中各组贴图赋予某个标记值区间,贴图组从前往后,贴图对应的标记值区间依次增大,每个区间不互相重叠,本发明的一个简单实例中,第一个贴图对应的标记值区间为-70~-30,第二个贴图对应的标记值区间为20~100;对于混合后贴图的每一个像素,根据对应控制图中像素每个通道的值,以及该通道对应贴图组对应,计算该像素的最终颜色值,从而得到最终混合后的贴图。
上述方法中,采用原始贴图并结合地形标记数据以区间的形式生成控制图,然后将生成的控制图混合原始贴图生成最终的地图贴图。由此可以降低原始贴图的使用量,同时也有效避免了因少量贴图带来的重复感问题。而且,由于控制图的生成与地形标记数据相关,可以创建出符合地形特征的控制图,例如将不同特色区域赋予不同的初始标记值,利用柏林噪声进行一次随机化,在特色区域的对应区间中采用相应的贴图组,可以更好的保留该区域的外观等区域特色。
此外,本发明通过记录控制图生成过程中的权重,存放至权重数组,可以方便导出前面步骤生成的控制图,与实际地形效果做一个比较,以便工作人员更加直观的看到控制图对地形贴图的影响,为后续可能的改动提供参考。在实际应用过程中,如果无需比较参考,也可不记录权重,即不用设置权重数组。
基于同一发明构思,本发明还揭示了一种游戏中随机地图贴图的生成装置,其包括初始控制图创建模块、控制图生成模块和地图贴图生成模块。
初始控制图创建模块用于创建初始控制图,并设置初始控制中每个像素的颜色对应RGBA通道值,所述初始控制图创建数为原始贴图的1/4。
所述控制图生成模块,包括像素标记值计算单元、像素权重列表计算单元、控制图生成单元。
其中,像素标记值计算单元用于根据初始控制图与地形网格的长宽比,计算初始控制图的像素在地形中的坐标值,并求取该像素的像素标记值。
具体地,像素标记值计算单元获取地形网格长w、宽h,计算地形所有点的标记值,地形中某点的标记值用来区分该点所处的贴图层级,用来混合贴图。本发明中,对地形中的点的标记值的计算方法不做限定。
然后,像素标记值计算单元根据控制图长cw、宽ch与地形网格长宽分别计算横轴和纵轴的比例;其中,横轴比例比例r0=w/cw,纵轴比例r1=h/ch;该横轴和纵轴的比例用来通过网格数据计算控制图数据。
最后,对于控制图中每个像素点,像素标记值计算单元根据该像素点在控制图中的位置(ci,cj)与对应坐标轴比例,获取该像素点在地图中的坐标(x,y),其中,x=r0/2+r0*ci,y=r1/2+r1*cj;然后计算该像素点的地图标记值。
参照图1所示,本实施例中,控制图中每个像素点的地图标记值计算如下:
首先,根据控制图中的像素点映射到地图中的坐标点h(x,y),计算该点h左下方网格点h0(i,j),右上方网格点h1(iCeil,jCeil),由上述两个点的坐标可以得到左上方网格点h2(i,jCeil),右下方网格点h3(iCeil,j);其中,i=floor(x),j=floor(y),iCeil=ceil(x),jCeil=ceil(j);floor代表向下取整,指不大于该值的最大整数;ceil代表向上取整,指不小于该值的最小整数。
然后,获取上述四个点h0、h1、h2、h3对应的地图标记值。
最后,根据上述周围四个点h0、h1、h2、h3双线性插值得到该点h的标记值,即为初始控制图的像素标记值。
像素权重列表计算单元用于将初始控制图的每一像素标记值加上偏移值得到偏移像素标记值,根据偏移像素标记值确定其所在的区间,并设置权重,构建该像素的权重列表。
本实施例中,像素权重列表计算单元对偏移值的计算如下:
利用柏林函数计算初始噪声值,处理后得到实际噪声值;实际噪声值乘以偏移系数后得到偏移值。更进一步地,本实施例中,偏移系数包括最大偏移系数和最小偏移系数,所以,像素权重列表计算单元对偏移值的计算为:若实际噪声值小于0,乘以最小偏移系数,得到偏移值;若实际噪声值大于0,乘以最大偏移系数,得到偏移值。
本实施例中,像素权重列表计算单元设置权重如下:
若偏移像素标记值在某个原始贴图设置的标记值区间内,将对应原始贴图下标的权重标记为1,表示该点采样该区间对应的原始贴图;
若偏移像素标记值低于第一张原始贴图的最低标记值,将第一个原始贴图权重标记为1,表示低于所有原始贴图最低标记值的点采样第一张贴图;若像素标记值高于最高区间的最高值,将最后一张原始贴图权重标记为1,表示采样最后一张原始贴图;
若偏移像素标记值在某两个原始贴图的标记值区间之间,大于上一个标记值区间的最高值,小于下一个标记值区间的最低值,根据上一个标记值区间的最高值、该偏移像素标记值、下一个标记值区间的最低值这三个值确定混合比例,得到两原始贴图的权重,表示该点采样两张贴图并通过一定的比例进行混合。本实施例中,下一原始贴图的权重为:(像素偏移标记值–上一个区间的最高值)/该标记值;上一原始贴图的权重为:1–下一原始贴图的权重。
控制图生成单元用于将像素权重列表中的权重作为RGBA四个通道的值构建该像素值,得到控制图。
地图贴图生成模块,用于将生成的控制图混合原始贴图形成地图贴图。
还包括权重数组创建模块,用于创建权重数组,所述权重数组用于在像素权重列表计算步骤中存储像素的权重值;
所述权重数组的长度为一初始控制图的像素的个数;权重数组的数量为原始贴图数量,为初始控制图的四倍,对应初始控制图像素颜色的四个通道。
基于同一发明构思,本发明还揭示了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的随机地图贴图的生成方法。
基于同一发明构思,本发明还揭示了一种计算机软件程序产品,盖计算机软件程序产品在终端设备上运行时,使得所述终端设备执行如上所述的随机地图贴图的生成方法。
综上,本发明的关键在于,本发明采用原始贴图并结合地形标记数据以区间的形式生成控制图,然后将生成的控制图混合原始贴图生成最终的地图贴图。由此可以降低原始贴图的使用量,同时也有效避免了因少量贴图带来的重复感问题。而且,由于控制图的生成与地形标记数据相关,可以创建出符合地形特征的控制图;将不同特色区域赋予不同的初始标记值,利用柏林噪声进行一次随机化,在特色区域的对应区间中采用相应的贴图组,可以更好的保留该区域的外观等区域特色。
以上所述,仅是本发明实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
机译: 高精度地图生成方法,高精度地图生成设备,计算机设备,非瞬态计算机可读存储介质和计算机程序产品
机译: 具有存储的游戏程序,信息处理系统,信息处理装置和用于生成具有虚拟空间和地图图像的图像的游戏图像的信息处理方法的计算机可读非暂时性存储介质
机译: 抽吸组件生成装置,一种控制抽吸分量生成装置的方法,以及存储程序的计算机可读存储介质