游戏角色染色方法、装置、用户终端及游戏系统的制作方法_3

文档序号:9480060阅读:来源:国知局
可能很小,因此可将输入参数的百分比扩大到-200到200的范围,以满足尽可能多的变色需求。
[0106]需要说明的是,在本发明实施例中,为了达到特定的染色效果,可能需要对同一个待染色区域同时使用多种染色算法,这些方案也在本发明的保护范围之内,在此不再赘述。
[0107]需要说明的是,在本发明实施例中,还可有其他蒙版生成算法及染色算法,也可通过添加蒙版生成算法及染色算法对所述游戏角色染色装置进行扩展,这些方案也在本发明的保护范围之内,本发明在此不做赘述。
[0108]显然,在上述选择染色算法的同时,所述游戏角色染色装置还可能需要玩家同时输入染色所需的颜色改变参数,比如亮度变化值或变化百分比,红、绿、蓝三原色的颜色改变值或改变的百分比等参数,由于这是本领域技术人员的公知常识,本发明在此不做赘述。
[0109]然后,标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0110]在本发明实施例中,在通过计算得到各个待染色区域,并将染色算法配置给每个待染色区域后,所述游戏角色染色装置可生成一个标记所述第一贴图上的每个像素点归属的待染色区域及染色算法的蒙版信息。
[0111]在一个可能的实施例中,所述蒙版信息可表示为一个二维数组,该二维数组的下标表示了其在所述第一贴图对应的像素点坐标,值表示了一个待染色区域的编号,且每个待染色区域的编号会和一个染色算法对应。
[0112]例如,如图4所示,若所述第一贴图为一个9X11的贴图,则相应的,生成的所述蒙版信息也为一个9X11的二维数组,所述二维数组与所述第一贴图上的每个像素点一一对应。其中,在所述二维数组中,数组的值表示了对应的像素点所属的待染色区域的编号,而具有相同的值的相邻的像素点则组成形成一个待染色区域。如图2所示,二维数组中值为0、1、2、3对应的像素点组合形成了多个待染色区域的编号。
[0113]在本发明实施例中,假设所述游戏角色为一个游戏人物,假定玩家选定游戏人物的头部区域,且对所述头部区域的染色操作为将头部的颜色改变为黄色,选定游戏人物的身体区域,且对身体区域的染色操作为将身体区域的颜色调亮;选定游戏人物的腿部区域,且对所述腿部区域的染色操作为将腿部区域的颜色转变为灰度,而其他区域不做处理。此时,所述游戏角色装置可根据玩家输入的染色参数生成如图4所示的蒙版信息,其中,二维数组值为1对应的区域对应于游戏人物的头部区域,其配置的染色算法为通道混合算法,二维数组值为2对应的区域对应于游戏人物的身体区域,其配置的染色算法为色相变换算法,二维数组值为3对应的区域对应于游戏人物的脚部区域,其配置的染色算法为灰度图转换算法,二维数组值为0对应的区域对应于游戏人物的其他区域,其配置的染色算法为不染色。
[0114]需要说明的是,在本发明的一个实施例中,可将二维数组为0对应的像素点组合形成的待染色区域定义为不进行染色的待染色区域,如可将玩家未选择的第一贴图的区域内的像素点对应的二维数组的值均定义为0,当然,也可有其他定义方法,本发明不做具体限定。
[0115]需要说明的是,在本发明实施中,每个二维数组的值对应一个待染色区域的编号,而每个待染色区域的编号根据玩家输入的染色参数已配置了一种染色算法或多种染色算法的组合。
[0116]在本发明的另一个实施例中,玩家在通过所述染色编辑器输入所述染色参数可包括蒙版生成参数及染色算法,所述游戏角色染色装置获取所述染色参数,并根据所述染色参数生成所述第一贴图的蒙版信息,具体地:
[0117]首先,根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域。
[0118]然后,标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0119]在本发明实施例中,蒙版生成算法由所述游戏角色染色装置预先设置,所述游戏角色染色装置可根据玩家选择的蒙版生成参数选取对应的蒙版生成算法,无需由玩家来选择输入,方便了玩家的操作。
[0120]需要说明的是,在本发明实施例中,在加载所述第一贴图时,为了减少游戏的卡顿,所述游戏角色染色装置需要支持多线程异步加载,如果存在贴图缓存,也支持从缓存中直接获得所述第一贴图。
[0121]S103,根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图。
[0122]在本发明实施例中,所述游戏染色装置在生成所述蒙版信息后,即可根据所述蒙版信息对所述第一贴图进行染色处理,以生成第二贴图。
[0123]在本发明的一个实施例中,所述步骤S103具体包括:
[0124]S1031,读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
[0125]S1032,根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
[0126]S1033,将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
[0127]在本发明实施例中,如图4所示,所述游戏角色染色装置先读取所述第一贴图的一个像素点(如坐标为(0,0)的像素点),然后查询与这个像素点对应的待染色区域(对应的待染色区域的编号为0),根据所述待染色区域所配置的染色算法(由定义可知,这个待染色区域所配置的染色算法为不染色),对所述待染色区域内的像素点进行染色处理(此时为不染色),再将染色处理后的像素保存到一张新的贴图上。如此,所述游戏角色染色装置遍历所述第一贴图上的所有像素点,并根据相同的处理过程对所述第一贴图上的所有像素点进行染色处理后,即可获得染色后的第二贴图。
[0128]在本发明的另一个实施例中,所述步骤S103具体包括:
[0129]S1131,读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式。
[0130]在本发明实施例中,通常的,所述第一贴图的格式为经过压缩的第一格式,如DDS、PVRTC或者ETC等图片格式。具体的,对于台式电脑上,所述第一格式通常是DDS,而在1S设备上则为PVRTC格式,在Android设备上为ETC格式。其中,为了便于进入染色算法的处理,需将所述第一贴图的图片格式转化为未经过压缩的第二格式,如可转化为A8R8G8B8格式,即使用32位数据表示一个颜色,分别是8位表示透明度,8位表示红色,8位表示绿色,8位表示蓝色。
[0131]S1132,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
[0132]S1133,根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
[0133]S1134,将染色处理后的像素保存到一张新的贴图上,生成中间贴图。
[0134]在本发明实施例中,生成的所述中间贴图的格式也为未经过压缩的第二格式。
[0135]S1135,将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
[0136]在本发明实施例中,所述游戏角色装置还需对所述中间贴图的格式进行转化,生成适用于进行图片渲染的第二贴图,此时,所述第二贴图的图片格式为第一格式。
[0137]具体的,对于台式电脑上,压缩的目标格式通常是DDS,而在1S设备上压缩为PVRTC格式,在Android设备上为ETC格式。具体的压缩格式应当与所述第一贴图的格式(即第一格式)保持一致。
[0138]需要注意的是,如果需要mipmap的贴图,需要在本过程中同时按照需求生成染色后的第二贴图的各级mipmap信息。
[0139]S104,将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
[0140]在本发明实施例中,所述游戏角色染色装置在生成所述第二贴图后,将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色,即完成了一个染色过程。
[0141]具体的,在本发明的一个实施例中,所述游戏角色染色装置可包括一个CPU和一个GPU,其中,所述CPU将在所述游戏角色上加载的贴图更新为所述第二贴图后发送给所述GHJ进行渲染获得染色后的游戏角色,即本发明实施例提供的游戏角色染色装置,其进行染色处理的大部分运算是由CPU来完成,而GPU只需执行最后的渲染运算,减小了 GPU的运算压力。
[0142]本发明提供的游戏角色染色方法,通过接收玩家输入的自定义的染色参数,再根据所述染色参数生成蒙版信息后,根据蒙版信息生成染色后的第二贴图,再将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,并具有如下有益效果:
[0143](1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
[0144](2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了游戏的渲染消耗,同时提高了染色效果和游戏的流畅度。
[0145]需要说明的是,在本发明的另一个实施例中,在步骤S103中,在生成第二贴图之后,还包括:
[0146]存储所述第二贴图。
[0147]其中,所述游戏角色染色装置对染色处理生成的第二贴图进行保存,为所述第二贴图配置一个存储地址,当需要调用所述第二贴图时,可根据所述存储地址直接调用所述第二贴图,而不需要再重新再经过染色处理。
[0148]显然的,所述第一贴图也配置了一个存储地址,当需要还原所述游戏角色时,只需在所述游戏角色上重新加载所述第一贴图,即可还原所述游戏角色。
[0149]此外,在游戏运行时,贴图通常会以相对于资源目录的路径作为唯一标识,在本发明实施例中,新生成的贴图以特殊的命名规则进行标识。例如,所述第一贴图的存储地址形式类似“char/hero/0002/0002_body_body.dds”,染色后的第二贴图在之前添加“::”来表示一张在外存并不存在的贴图,即染色后的第二贴图存储地址为“::Char/hero/0002/0002_b°dy_b°dy.dds”。
[0150]需要说明的是,在本发明另一个实施例中,对于一个联网的游戏,当一个玩家在对他的游戏角色进行染色后,则其他玩家上的用户终端显示的该游戏角色也需要是经过染色后,因而,所述游戏角色染色方法还包括:
[0151 ] 将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
[0152]在本发明实施例中,所述游戏角色染色装置在接收到所述染色参数后,将所述染色
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1