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

文档序号:9480060阅读:456来源:国知局
游戏角色染色方法、装置、用户终端及游戏系统的制作方法
【技术领域】
[0001]本发明涉及游戏领域,尤其涉及一种游戏角色染色方法、装置、用户终端及游戏系统。
【背景技术】
[0002]对于当前的游戏来说,无论是运行在个人电脑上的客户端游戏,还是运行在手机上的移动游戏,游戏角色的个性化定制都已经是不可或缺的功能,而染色系统是实现玩家自定义游戏角色的重要途径之一。一套功能完善的染色系统可以让玩家随心所欲地改变自己在游戏中所控制角色的时装、头发乃至皮肤的颜色,从而创造出各种与众不同、极具个性的角色效果。
[0003]目前的染色系统采用的染色方案主要两种,一是美术提前制作好多种染色效果的贴图,在玩家选择一种染料进行染色时,程序通过预先配置好的数据查询到染料对应的贴图,以替换原始贴图的方式表现出角色被染色后的效果。具体地,如图1所示,美术制作好的染色贴图直接打包在游戏资源中发布,在需要染色的时候,中央处理器(CentralProcessing Unit,CPU)根据游戏逻辑决定使用哪张贴图来进行清染,然后交由图形处理器(Graphics Processing Unit,GPU)直接加载对应的贴图;另一种是基于材质系统的染色实现,通过为角色材质添加染色的参数,比如颜色值、混合度等,然后在角色材质实现时添加额外的处理代码,就可以做到在运行时动态地修改材质参数来改变渲染出来的角色效果。具体地,如图2所示,在染色时,CPU通过用户的选择生成材质颜色改变需要的材质参数,并在运行时传递给GPU,GPU根据预设的染色代码、原始贴图和材质参数生成最终的染色效果Ο

【发明内容】

[0004]【背景技术】提及的两种染色方案均可以实现对游戏角色进行染色,但也各存在不足。对于第一种染色方案,从它的原理可以看出其缺陷主要有如下几点:1、美术制作工作量非常大。不同游戏角色有不同时装,不同的时装又要有不同的染色效果,这就需要美术制作大量不同的贴图,游戏的制作成本和制作时间也相应增加;2、发布的游戏包体过大。美术制作的所有染色贴图都要跟随游戏发布出去,这些贴图将占据玩家大量的下载时间和磁盘空间。在次世代游戏背景下,一张贴图的大小通常为1024个像素的宽度,1024个像素的高度,即使经过压缩,每张染色贴图的大小也将在1兆左右,这就导致了游戏的安装包体积过大等问题;3、染色系统的灵活性不足。所有的染色效果全部基于美术已经制作好的贴图,因此只能为玩家提供有限而且固定的染色效果,无法实现每个模型的不同部件应用任意染料的功能,更不用说染料之间的叠加等高级效果。第二种染色方案是目前各类游戏应用的主流方案,虽然这种方案不需要美术提前制作染色贴图,而且具有比较强的灵活性,让玩家可以自主定制角色任意部件的染色效果,但它仍然具有如下的缺点:1、对渲染效率有负面影响。材质代码是GPU每帧渲染任何一个需要染色的模型的所有像素点都需要执行的逻辑,因此即使最简单的加法操作消耗在这里都会被放大,进而降低整个游戏的渲染帧率。可以看出,基于材质系统的染色方案需要在材质系统中添加额外的代码,而通常要达到较好的染色效果,需要对颜色进行非常复杂的计算过程,比如基于色相、饱和度和亮度的颜色改变算法,需要将颜色在RGB(红绿蓝)和HSL(色相、饱和、明度)两种表示方法之间转换,这一过程需要多次除法甚至条件选择(if-else)操作,这些都会影响到渲染效率。可以预测,当渲染成为游戏运行的瓶颈时,染色效果也就成为影响游戏体验的一个重要因素。2、对染色算法的选取有较大限制。通常,角色材质是游戏中最为复杂的材质效果,已经具有非常多的参数,而引擎供CPU传递给GPU做渲染用的参数数量是有限的,在现在的移动设备上更是如此。染色算法往往需要更多的参数传递,比如Photoshop中常用的通道混合算法,针对一个部分的颜色改变需要12个整数型的参数,而一张贴图通常可以划分为很多部分,它们需要不同的变色参数,那么要在CPU和GPU之间传递的数据就可能达到上百个,这在大部分硬件中是无法支持的,因此也就限制了染色算法的选取。3、染色效果不够理想。在参数数量和渲染效率都需要权衡考虑的前提下,基于材质系统实现的染色效果往往比较普通,比如将角色身体的某一部位全部变成另外一个颜色,或者叠加上某一颜色。而在颜色贴图上,通常一个区域可能不仅仅包含一种颜色,即使颜色相近,亮度明暗也会有差别,通过统一的简单算法获得的染色效果非常有限,无法保留原始贴图中美术绘制的模型细节,比如衣服褶皱、皮肤纹理等,某些情况下甚至可能造成明暗关系上的错误,从而影响游戏的品质。
[0005]针对上述问题,本发明的目的在于提供一种游戏角色染色方法、装置、用户终端及游戏系统,可实现渲染效率高、染色效果佳、灵活性好的染色处理。
[0006]第一方面,提供了一种游戏角色染色方法,包括如下步骤:
[0007]接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
[0008]根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
[0009]根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
[0010]将在所述游戏角色上加载的贴图更新为所述第二贴图后,经渲染以后获得染色后的游戏角色。
[0011]在第一种实现方式,所述染色参数包括至少一组蒙版生成参数、蒙版生成算法及染色算法;
[0012]则所述根据所述染色参数生成所述第一贴图的蒙版信息,具体包括:
[0013]根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0014]在第二种实现方式,所述染色参数包括至少一组蒙版生成参数及染色算法;
[0015]所述根据所述染色参数生成所述第一贴图的蒙版信息,具体包括:
[0016]根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
[0017]标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0018]在第三种实现方式,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
[0019]在第四种实现方式,所述根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图,具体包括:
[0020]读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
[0021]根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
[0022]将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
[0023]在第五种实现方式,所述根据所述蒙版信息对所述第一贴图上的每个像素进行染色处理,生成第二贴图,具体包括:
[0024]读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式;
[0025]针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
[0026]根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
[0027]将染色处理后的像素保存到一张新的贴图上,生成中间贴图;
[0028]将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
[0029]在第六种实现方式,在生成第二贴图之后,还包括:
[0030]存储所述第二贴图。
[0031]在第七种实现方式,在生成第二贴图之后,还包括:
[0032]存储所述第二贴图。
[0033]在第八种实现方式,所述游戏角色染色方法还包括:
[0034]将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
[0035]第二方面,提供了一种游戏角色染色装置,包括:
[0036]参数接收单元,用于接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
[0037]蒙版信息生成单元,用于根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
[0038]染色单元,用于根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
[0039]渲染单元,用于将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
[0040]在第一种实现方式,所述染色参数包括至少一组蒙版生成参数、蒙版生成算法及染色算法;
[0041]则所述蒙版信息生成单元具体包括:
[0042]算法配置单元,用于根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
[0043]标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0044]在第二种实现方式,所述染色参数包括至少一组蒙版生成参数及染色算法;
[0045]则所述蒙版信息生成单元具体包括:
[0046]算法配置单元,用于根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
[0047]标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
[0048]在第三种实现方式,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
[0049]在第四种实现方式,所述染色单元具体包括:
[0050]查询单元,用于读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
[0051]染色处理单元,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
[0052]生成单元,用于将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
[0053]在第五种实现方式,所述染色单元具体包括:
[0054]第一格式转换单
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1