CN105233498B - 游戏角色染色方法、装置、用户终端及游戏*** - Google Patents
游戏角色染色方法、装置、用户终端及游戏*** Download PDFInfo
- Publication number
- CN105233498B CN105233498B CN201510613203.2A CN201510613203A CN105233498B CN 105233498 B CN105233498 B CN 105233498B CN 201510613203 A CN201510613203 A CN 201510613203A CN 105233498 B CN105233498 B CN 105233498B
- Authority
- CN
- China
- Prior art keywords
- textures
- dyeing
- masking
- parameter
- game role
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种游戏角色染色方法,包括如下步骤:接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。本发明还公开了一种游戏角色染色装置、终端及游戏***。本发明可对游戏角色进行高效率和高质量的染色。
Description
技术领域
本发明涉及游戏领域,尤其涉及一种游戏角色染色方法、装置、用户终端及游戏***。
背景技术
对于当前的游戏来说,无论是运行在个人电脑上的客户端游戏,还是运行在手机上的移动游戏,游戏角色的个性化定制都已经是不可或缺的功能,而染色***是实现玩家自定义游戏角色的重要途径之一。一套功能完善的染色***可以让玩家随心所欲地改变自己在游戏中所控制角色的时装、头发乃至皮肤的颜色,从而创造出各种与众不同、极具个性的角色效果。
目前的染色***采用的染色方案主要两种,一是美术提前制作好多种染色效果的贴图,在玩家选择一种染料进行染色时,程序通过预先配置好的数据查询到染料对应的贴图,以替换原始贴图的方式表现出角色被染色后的效果。具体地,如图1所示,美术制作好的染色贴图直接打包在游戏资源中发布,在需要染色的时候,中央处理器(CentralProcessing Unit,CPU)根据游戏逻辑决定使用哪张贴图来进行渲染,然后交由图形处理器(Graphics Processing Unit,GPU)直接加载对应的贴图;另一种是基于材质***的染色实现,通过为角色材质添加染色的参数,比如颜色值、混合度等,然后在角色材质实现时添加额外的处理代码,就可以做到在运行时动态地修改材质参数来改变渲染出来的角色效果。具体地,如图2所示,在染色时,CPU通过用户的选择生成材质颜色改变需要的材质参数,并在运行时传递给GPU,GPU根据预设的染色代码、原始贴图和材质参数生成最终的染色效果。
发明内容
背景技术提及的两种染色方案均可以实现对游戏角色进行染色,但也各存在不足。对于第一种染色方案,从它的原理可以看出其缺陷主要有如下几点:1、美术制作工作量非常大。不同游戏角色有不同时装,不同的时装又要有不同的染色效果,这就需要美术制作大量不同的贴图,游戏的制作成本和制作时间也相应增加;2、发布的游戏包体过大。美术制作的所有染色贴图都要跟随游戏发布出去,这些贴图将占据玩家大量的下载时间和磁盘空间。在次世代游戏背景下,一张贴图的大小通常为1024个像素的宽度,1024个像素的高度,即使经过压缩,每张染色贴图的大小也将在1兆左右,这就导致了游戏的安装包体积过大等问题;3、染色***的灵活性不足。所有的染色效果全部基于美术已经制作好的贴图,因此只能为玩家提供有限而且固定的染色效果,无法实现每个模型的不同部件应用任意染料的功能,更不用说染料之间的叠加等高级效果。第二种染色方案是目前各类游戏应用的主流方案,虽然这种方案不需要美术提前制作染色贴图,而且具有比较强的灵活性,让玩家可以自主定制角色任意部件的染色效果,但它仍然具有如下的缺点:1、对渲染效率有负面影响。材质代码是GPU每帧渲染任何一个需要染色的模型的所有像素点都需要执行的逻辑,因此即使最简单的加法操作消耗在这里都会被放大,进而降低整个游戏的渲染帧率。可以看出,基于材质***的染色方案需要在材质***中添加额外的代码,而通常要达到较好的染色效果,需要对颜色进行非常复杂的计算过程,比如基于色相、饱和度和亮度的颜色改变算法,需要将颜色在RGB(红绿蓝)和HSL(色相、饱和、明度)两种表示方法之间转换,这一过程需要多次除法甚至条件选择(if-else)操作,这些都会影响到渲染效率。可以预测,当渲染成为游戏运行的瓶颈时,染色效果也就成为影响游戏体验的一个重要因素。2、对染色算法的选取有较大限制。通常,角色材质是游戏中最为复杂的材质效果,已经具有非常多的参数,而引擎供CPU传递给GPU做渲染用的参数数量是有限的,在现在的移动设备上更是如此。染色算法往往需要更多的参数传递,比如Photoshop中常用的通道混合算法,针对一个部分的颜色改变需要12个整数型的参数,而一张贴图通常可以划分为很多部分,它们需要不同的变色参数,那么要在CPU和GPU之间传递的数据就可能达到上百个,这在大部分硬件中是无法支持的,因此也就限制了染色算法的选取。3、染色效果不够理想。在参数数量和渲染效率都需要权衡考虑的前提下,基于材质***实现的染色效果往往比较普通,比如将角色身体的某一部位全部变成另外一个颜色,或者叠加上某一颜色。而在颜色贴图上,通常一个区域可能不仅仅包含一种颜色,即使颜色相近,亮度明暗也会有差别,通过统一的简单算法获得的染色效果非常有限,无法保留原始贴图中美术绘制的模型细节,比如衣服褶皱、皮肤纹理等,某些情况下甚至可能造成明暗关系上的错误,从而影响游戏的品质。
针对上述问题,本发明的目的在于提供一种游戏角色染色方法、装置、用户终端及游戏***,可实现渲染效率高、染色效果佳、灵活性好的染色处理。
第一方面,提供了一种游戏角色染色方法,包括如下步骤:
接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
将在所述游戏角色上加载的贴图更新为所述第二贴图后,经渲染以后获得染色后的游戏角色。
在第一种实现方式,所述染色参数包括至少一组蒙版生成参数、蒙版生成算法及染色算法;
则所述根据所述染色参数生成所述第一贴图的蒙版信息,具体包括:
根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在第二种实现方式,所述染色参数包括至少一组蒙版生成参数及染色算法;
所述根据所述染色参数生成所述第一贴图的蒙版信息,具体包括:
根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在第三种实现方式,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
在第四种实现方式,所述根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图,具体包括:
读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
在第五种实现方式,所述根据所述蒙版信息对所述第一贴图上的每个像素进行染色处理,生成第二贴图,具体包括:
读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式;
针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
将染色处理后的像素保存到一张新的贴图上,生成中间贴图;
将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
在第六种实现方式,在生成第二贴图之后,还包括:
存储所述第二贴图。
在第七种实现方式,在生成第二贴图之后,还包括:
存储所述第二贴图。
在第八种实现方式,所述游戏角色染色方法还包括:
将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
第二方面,提供了一种游戏角色染色装置,包括:
参数接收单元,用于接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
蒙版信息生成单元,用于根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
染色单元,用于根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
渲染单元,用于将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
在第一种实现方式,所述染色参数包括至少一组蒙版生成参数、蒙版生成算法及染色算法;
则所述蒙版信息生成单元具体包括:
算法配置单元,用于根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在第二种实现方式,所述染色参数包括至少一组蒙版生成参数及染色算法;
则所述蒙版信息生成单元具体包括:
算法配置单元,用于根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在第三种实现方式,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
在第四种实现方式,所述染色单元具体包括:
查询单元,用于读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
染色处理单元,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
生成单元,用于将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
在第五种实现方式,所述染色单元具体包括:
第一格式转换单元,用于读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式;
查询单元,用于针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
染色处理单元,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
生成单元,用于将染色处理后的像素保存到一张新的贴图上,生成中间贴图,其中,所述中间贴图的图片格式为第二格式;
第二格式转换单元,用于将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
在第六种实现方式,所述游戏角色染色装置还包括:
存储单元,用于存储所述第二贴图。
在第七种实现方式,所述游戏角色染色装置还包括:
存储单元,用于存储所述第二贴图。
在第八种实现方式,所述游戏角色染色装置还包括:
发送单元,用于将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
第三方面,提供了一种用户终端,包括上述的游戏角色染色装置。
第四方面,提供了一种游戏***,包括第一用户终端、至少一个第二用户终端及游戏服务器;
其中,所述第一用户终端及所述第二用户终端包括上述的游戏角色染色装置;
所述第一用户终端,用于接收对游戏角色进行染色的染色参数,根据所述染色参数生成染色后的游戏角色,并将所述染色参数发送至所述游戏服务器;
所述游戏服务器,用于接收所述染色参数,并将所述染色参数发送至所述第二用户终端;
所述第二用户终端,用于在接收所述染色参数后,根据所述染色参数生成染色后的游戏角色。
本发明提供的游戏角色染色方法、装置、用户终端及游戏***,通过接收玩家输入的自定义的染色参数,再根据所述染色参数生成蒙版信息后,根据蒙版信息生成染色后的第二贴图,再将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,其具有如下有益效果:
(1)、由于本发明支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了游戏的渲染消耗,同时提供了染色效果和游戏的流畅度。
(3)、在不同用户终端进行数据同步时只需要进行少量染色参数数据的同步,而不需要传递染色后的贴图结果,减少了玩家之间同步数据的带宽消耗,降低了游戏服务器存储所需的容量。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的第一种染色方案的原理示意图。
图2是现有技术提供的第二种染色方案的原理示意图。
图3是本发明第一实施例提供的游戏角色染色方法的流程示意图。
图4是本发明实施例提供的用二维数组表示蒙版信息的示意图。
图5是本发明第二实施例提供的游戏角色染色装置的结构示意图。
图6是图5所示的蒙版信息生成单元的一种结构示意图。
图7是图5所示的蒙版信息生成单元的另一种结构示意图。
图8是图5所示的染色单元的一种结构示意图。
图9是图5所示的染色单元的另一种结构示意图。
图10是本发明另一实施例提供的游戏角色染色装置的结构示意图。
图11是本发明第三实施例提供的游戏角色染色装置的结构示意图。
图12是本发明第四实施例提供的用户终端的结构示意图。
图13是本发明第五实施例提供的游戏***的结构示意图。
图14是本发明第六实施例提供的游戏***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种游戏角色染色方法、装置、用户终端及游戏***,用于对游戏中的游戏角色进行染色,以下分别进行详细的描述。
请参阅图3,图3是本发明第一实施例提供的游戏角色染色方法的流程示意图。其中,所示游戏角色染色方法可由游戏角色染色装置来执行,并至少包括步骤S101至S104。
S101,接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图。
在本发明实施例中,所述游戏角色可为在游戏中出现的物体,所述游戏角色可为一个游戏人物、游戏装备或者在游戏中出现的任意物品等。其中,一般的,所述游戏角色包括游戏角色的本体模型(如一个3D模型)和加载在所述本体模型上的第一贴图,所述第一贴图用于展现所述游戏角色的外表颜色信息,如对于一个游戏人物,所述第一贴图可用于展现所述游戏角色的皮肤颜色、头发颜色、衣服颜色等各部位的颜色信息。
在本发明实施例中,为了满足玩家对所述游戏角色进行染色的需要,所述游戏角色染色装置可提供一个染色编辑器,所述染色编辑器内可设置用于染色的各种染色参数,玩家可通过选择所述染色参数来实现对游戏角色进行染色的目的。
S102,根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息。
在本发明的一个实施例中,玩家通过所述染色编辑器输入的所述染色参数可包括蒙版生成参数、蒙版生成算法及染色算法,所述游戏角色染色装置获取所述染色参数,并根据所述染色参数生成所述第一贴图的蒙版信息,具体地:
首先,根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域。
在本发明实施例中,玩家可选择不同的蒙版生成算法来获得待染色区域,相应的,其所选择的蒙版生成参数的类型也不同,下面以几种常见的蒙版生成算法为例进行说明。
在本发明实施例中,若玩家选择使用的蒙版生成算法为区域增长算法时,则所述游戏角色染色装置会同时要求玩家输入两个蒙版生成参数,即一个起始像素点及一个表示颜色差异的容差值,此时所述游戏角色染色装置通过查找与起始像素点的颜色差值小于所述容差值的相邻点,并以满足要求的相邻点为起始像素点,逐步向外扩张,直至最后获得一个满足要求的颜色相近的区域,即待染色区域。
在本发明实施例中,若玩家选择使用的蒙版生成算法为多边形标注算法。则所述游戏角色装置要求玩家在所述第一贴图上标注任意形状的多边形来表示一个待染色区域,所述待染色区域可通过一个在所述第一贴图上的坐标列表来描述。
在本发明实施例中,若玩家选择使用的蒙版生成算法为标记贴图方法,则所述游戏角色装置要求玩家选择一个待染色的点,其中,所述标记贴图已预先定义了所述第一贴图上的每个点所属的区域,因而当所述玩家选择一个待染色点后,所述游戏角色装置可判断这个待染色的点所属的区域,从而获得待染色区域。
需要说明的是,在本发明实施中,所述游戏角色染色装置可能需要生成多个待染色区域,相应的,需要玩家输入多组蒙版生成参数和蒙版生成算法,且对于同一张第一贴图,玩家可选择不同的蒙版生成参数和蒙版生成算法,本发明不做具体限定。
需要说明的是,所述第一贴图的一个像素点应只应该属于一个待染色区域,因此如果同一个像素点经过不同的蒙版生成算法计算得到的待染色区域的结果不同时,可选择用后面执行的算法结果覆盖之前执行的算法结果,或者用之前执行的算法结果覆盖后面执行的算法结果,这些方案均在本发明的保护范围之内。
在本发明实施例中,在获得所述待染色区域后,所述游戏角色装置还要求玩家输入为每个待染色区域所配置的染色算法,以实现玩家所希望达到的染色目的。其中,所述染色算法包括不染色、灰度图转换算法、色相变换算法或通道混合算法,若所述染色算法为不染色,则表示对这个待染色区域内的像素点不进行染色处理,即所述待染色区域的像素点保持不变。若所述染色算法灰度图转换算法,则表示将这个待染色区域内的像素点转换为仅具有灰度值的像素点。若所述染色算法色相变换算法,则所述游戏角色装置通过将红、绿、蓝三原色的值描述的颜色转变为色相、饱和度和亮度描述的颜色,进而可以实现在不改变亮度的前提下调整颜色,或者在不改变颜色的前提下调整亮度等特殊需求。若所述染色算法为通道混合算法,则所述游戏角色染色装置依据红、绿、蓝三原色在所述第一贴图中的比例来调整染色效果。例如,所述通道混合算法可依据红、绿、蓝三原色在所述第一贴图中的比例,来调整染色效果,此时,输入参数包括12个范围为-200到200的整型数据,分为四组,前三组分别为在所述第一贴图的红(R)、绿(G)、蓝(B)三个通道上增加或者减少的红、绿、蓝三种颜色的百分比,正数表示增加,负数表示减少。最后一组数据描述了直接增加的红、绿、蓝三种颜色的百分比值。该算法的具体计算公式如下:R=RValue*(R1%)+GValue*(G1%)+BValue*(B1%)+255*(ConstR%);G=RValue*(R2%)+GValue*(G2%)+BValue*(B2%)+255*(ConstG%);B=RValue*(R3%)+GValue*(G3%)+BValue*(B3%)+255*(ConstB%)其中R、G、B分别为经过通道混合算法求解的红色、绿色和蓝色结果,R1、G1、B1为一组,表示对于所述第一贴图中红、绿、蓝三色通道上修改红色的百分比,同理R2、G2、B2是用于修改绿色的参数,R3、G3、B3是用于修改蓝色的参数。最后的ConstR、ConstG和ConstB是直接增加了对应的颜色。由于所述第一贴图的原始颜色中某一颜色的值可能很小,因此可将输入参数的百分比扩大到-200到200的范围,以满足尽可能多的变色需求。
需要说明的是,在本发明实施例中,为了达到特定的染色效果,可能需要对同一个待染色区域同时使用多种染色算法,这些方案也在本发明的保护范围之内,在此不再赘述。
需要说明的是,在本发明实施例中,还可有其他蒙版生成算法及染色算法,也可通过添加蒙版生成算法及染色算法对所述游戏角色染色装置进行扩展,这些方案也在本发明的保护范围之内,本发明在此不做赘述。
显然,在上述选择染色算法的同时,所述游戏角色染色装置还可能需要玩家同时输入染色所需的颜色改变参数,比如亮度变化值或变化百分比,红、绿、蓝三原色的颜色改变值或改变的百分比等参数,由于这是本领域技术人员的公知常识,本发明在此不做赘述。
然后,标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在本发明实施例中,在通过计算得到各个待染色区域,并将染色算法配置给每个待染色区域后,所述游戏角色染色装置可生成一个标记所述第一贴图上的每个像素点归属的待染色区域及染色算法的蒙版信息。
在一个可能的实施例中,所述蒙版信息可表示为一个二维数组,该二维数组的下标表示了其在所述第一贴图对应的像素点坐标,值表示了一个待染色区域的编号,且每个待染色区域的编号会和一个染色算法对应。
例如,如图4所示,若所述第一贴图为一个9×11的贴图,则相应的,生成的所述蒙版信息也为一个9×11的二维数组,所述二维数组与所述第一贴图上的每个像素点一一对应。其中,在所述二维数组中,数组的值表示了对应的像素点所属的待染色区域的编号,而具有相同的值的相邻的像素点则组成形成一个待染色区域。如图2所示,二维数组中值为0、1、2、3对应的像素点组合形成了多个待染色区域的编号。
在本发明实施例中,假设所述游戏角色为一个游戏人物,假定玩家选定游戏人物的头部区域,且对所述头部区域的染色操作为将头部的颜色改变为黄色,选定游戏人物的身体区域,且对身体区域的染色操作为将身体区域的颜色调亮;选定游戏人物的腿部区域,且对所述腿部区域的染色操作为将腿部区域的颜色转变为灰度,而其他区域不做处理。此时,所述游戏角色装置可根据玩家输入的染色参数生成如图4所示的蒙版信息,其中,二维数组值为1对应的区域对应于游戏人物的头部区域,其配置的染色算法为通道混合算法,二维数组值为2对应的区域对应于游戏人物的身体区域,其配置的染色算法为色相变换算法,二维数组值为3对应的区域对应于游戏人物的脚部区域,其配置的染色算法为灰度图转换算法,二维数组值为0对应的区域对应于游戏人物的其他区域,其配置的染色算法为不染色。
需要说明的是,在本发明的一个实施例中,可将二维数组为0对应的像素点组合形成的待染色区域定义为不进行染色的待染色区域,如可将玩家未选择的第一贴图的区域内的像素点对应的二维数组的值均定义为0,当然,也可有其他定义方法,本发明不做具体限定。
需要说明的是,在本发明实施中,每个二维数组的值对应一个待染色区域的编号,而每个待染色区域的编号根据玩家输入的染色参数已配置了一种染色算法或多种染色算法的组合。
在本发明的另一个实施例中,玩家在通过所述染色编辑器输入所述染色参数可包括蒙版生成参数及染色算法,所述游戏角色染色装置获取所述染色参数,并根据所述染色参数生成所述第一贴图的蒙版信息,具体地:
首先,根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域。
然后,标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在本发明实施例中,蒙版生成算法由所述游戏角色染色装置预先设置,所述游戏角色染色装置可根据玩家选择的蒙版生成参数选取对应的蒙版生成算法,无需由玩家来选择输入,方便了玩家的操作。
需要说明的是,在本发明实施例中,在加载所述第一贴图时,为了减少游戏的卡顿,所述游戏角色染色装置需要支持多线程异步加载,如果存在贴图缓存,也支持从缓存中直接获得所述第一贴图。
S103,根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图。
在本发明实施例中,所述游戏染色装置在生成所述蒙版信息后,即可根据所述蒙版信息对所述第一贴图进行染色处理,以生成第二贴图。
在本发明的一个实施例中,所述步骤S103具体包括:
S1031,读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
S1032,根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
S1033,将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
在本发明实施例中,如图4所示,所述游戏角色染色装置先读取所述第一贴图的一个像素点(如坐标为(0,0)的像素点),然后查询与这个像素点对应的待染色区域(对应的待染色区域的编号为0),根据所述待染色区域所配置的染色算法(由定义可知,这个待染色区域所配置的染色算法为不染色),对所述待染色区域内的像素点进行染色处理(此时为不染色),再将染色处理后的像素保存到一张新的贴图上。如此,所述游戏角色染色装置遍历所述第一贴图上的所有像素点,并根据相同的处理过程对所述第一贴图上的所有像素点进行染色处理后,即可获得染色后的第二贴图。
在本发明的另一个实施例中,所述步骤S103具体包括:
S1131,读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式。
在本发明实施例中,通常的,所述第一贴图的格式为经过压缩的第一格式,如DDS、PVRTC或者ETC等图片格式。具体的,对于台式电脑上,所述第一格式通常是DDS,而在iOS设备上则为PVRTC格式,在Android设备上为ETC格式。其中,为了便于进入染色算法的处理,需将所述第一贴图的图片格式转化为未经过压缩的第二格式,如可转化为A8R8G8B8格式,即使用32位数据表示一个颜色,分别是8位表示透明度,8位表示红色,8位表示绿色,8位表示蓝色。
S1132,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
S1133,根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
S1134,将染色处理后的像素保存到一张新的贴图上,生成中间贴图。
在本发明实施例中,生成的所述中间贴图的格式也为未经过压缩的第二格式。
S1135,将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
在本发明实施例中,所述游戏角色装置还需对所述中间贴图的格式进行转化,生成适用于进行图片渲染的第二贴图,此时,所述第二贴图的图片格式为第一格式。
具体的,对于台式电脑上,压缩的目标格式通常是DDS,而在iOS设备上压缩为PVRTC格式,在Android设备上为ETC格式。具体的压缩格式应当与所述第一贴图的格式(即第一格式)保持一致。
需要注意的是,如果需要mipmap的贴图,需要在本过程中同时按照需求生成染色后的第二贴图的各级mipmap信息。
S104,将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
在本发明实施例中,所述游戏角色染色装置在生成所述第二贴图后,将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色,即完成了一个染色过程。
具体的,在本发明的一个实施例中,所述游戏角色染色装置可包括一个CPU和一个GPU,其中,所述CPU将在所述游戏角色上加载的贴图更新为所述第二贴图后发送给所述GPU进行渲染获得染色后的游戏角色,即本发明实施例提供的游戏角色染色装置,其进行染色处理的大部分运算是由CPU来完成,而GPU只需执行最后的渲染运算,减小了GPU的运算压力。
本发明提供的游戏角色染色方法,通过接收玩家输入的自定义的染色参数,再根据所述染色参数生成蒙版信息后,根据蒙版信息生成染色后的第二贴图,再将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,并具有如下有益效果:
(1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了游戏的渲染消耗,同时提高了染色效果和游戏的流畅度。
需要说明的是,在本发明的另一个实施例中,在步骤S103中,在生成第二贴图之后,还包括:
存储所述第二贴图。
其中,所述游戏角色染色装置对染色处理生成的第二贴图进行保存,为所述第二贴图配置一个存储地址,当需要调用所述第二贴图时,可根据所述存储地址直接调用所述第二贴图,而不需要再重新再经过染色处理。
显然的,所述第一贴图也配置了一个存储地址,当需要还原所述游戏角色时,只需在所述游戏角色上重新加载所述第一贴图,即可还原所述游戏角色。
此外,在游戏运行时,贴图通常会以相对于资源目录的路径作为唯一标识,在本发明实施例中,新生成的贴图以特殊的命名规则进行标识。例如,所述第一贴图的存储地址形式类似“char/hero/0002/0002_body_body.dds”,染色后的第二贴图在之前添加“::”来表示一张在外存并不存在的贴图,即染色后的第二贴图存储地址为“::char/hero/0002/0002_body_body.dds”。
需要说明的是,在本发明另一个实施例中,对于一个联网的游戏,当一个玩家在对他的游戏角色进行染色后,则其他玩家上的用户终端显示的该游戏角色也需要是经过染色后,因而,所述游戏角色染色方法还包括:
将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
在本发明实施例中,所述游戏角色染色装置在接收到所述染色参数后,将所述染色参数发送至游戏服务器,此时,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,其他用户终端再执行步骤S101至S104步骤,从而在不同用户终端达到数据同步的效果,由于所述染色参数全部都是整数或者浮点数类型,因此数据量非常小,不会影响所述游戏服务器的运作负荷,此外,所述游戏角色染色装置还可先对所述染色参数进行压缩后,再将压缩后得到的数据包发送给所述游戏服务器,进一步减小传输的数据量。
本发明实施例还提供一种游戏角色染色装置及具有该游戏角色染色装置的用户终端,用于执行上述任一实施例所述的游戏角色染色方法。这里的所述用户终端可为智能手机、平板电脑、台式机、笔记本电脑或其他智能终端,本发明不做具体限定。
请一并参阅图5,图5是本发明第二实施例提供的游戏角色染色装置的结构示意图。所述游戏角色染色装置200可设置于所述用户终端内,并用于执行所述游戏角色染色方法,其至少包括参数接收单元210、蒙版信息生成单元220、染色单元230及渲染单元240,其中:
所述参数接收单元210,用于接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图。
在本发明实施例中,为了满足玩家对所述游戏角色进行染色的需要,所述参数接收单元210可提供一个染色编辑器,所述染色编辑器内可设置用于染色的各种染色参数,玩家可通过选择所述染色参数来实现对游戏角色进行染色的目的。
所述蒙版信息生成单元220,用于根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息。
具体地,请一并参阅图6,在本发明的一个实施例中,所述染色参数包括至少一组蒙版生成参数、蒙版生成算法及染色算法,则所述蒙版信息生成单元220包括:
第一算法配置单元221,用于根据所述蒙版生成参数及蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域。
优选地,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
第一标记单元222,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
请一并参阅图7,在本发明的另一个实施例中,所述染色参数包括至少一组蒙版生成参数及染色算法,则所述蒙版信息生成单元220包括:
第二算法配置单元223,根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域。
第二标记单元224,标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
在本发明实施例中,所述蒙版生成算法由所述第二算法配置单元223预先设置,所述第二算法配置单元223可根据玩家选择的蒙版生成参数选取对应的蒙版生成算法,无需由玩家来选择,方便了玩家的操作。
所述染色单元230,用于根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图。
请一并参阅图8,在本发明的一个实施例中,所述染色单元230具体包括:
查询单元231,用于读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
染色处理单元232,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
生成单元233,用于将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
请一并参阅图9,在本发明的另一个实施例中,所述染色单元230具体包括:
第一格式转换单元234,用于读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式。
查询单元235,用于针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域。
染色处理单元236,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理。
生成单元237,用于将染色处理后的像素保存到一张新的贴图上,生成中间贴图,其中,所述中间贴图的图片格式为第二格式。
第二格式转换单元238,用于将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
所述渲染单元240,用于将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
在本发明实施例中,所述渲染单元240可接收所述第二贴图,并将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色。
需要说明的是,在本发明实施例中,所述染色编辑器还提供预览功能,所述渲染单元240渲染后得到的染色后的游戏角色可在染色编辑器中进行预览。
综上所述,本发明实施例提供的游戏角色染色装置200及用户终端,所述参数接收单元210接收玩家输入的自定义的染色参数,蒙版信息生成单元220再根据所述染色参数生成蒙版信息后,所述染色单元230根据蒙版信息生成染色后的第二贴图,再将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,并具有如下有益效果:
(1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了渲染单元240的渲染消耗,同时提高了染色效果和游戏的流畅度。
请一并参阅图10,需要说明的是,在本发明另一实施例中,所述游戏角色染色装置200还包括:
存储单元250,用于存储所述第二贴图。
其中,所述存储单元250对染色处理生成的第二贴图进行保存,为所述第二贴图配置一个存储地址,当需要调用所述第二贴图时,可根据所述存储地址直接调用所述第二贴图,而不需要再重新再经过染色处理。
显然的,存储单元250也为所述第一贴图也配置了一个存储地址,当需要还原所述游戏角色时,只需重新加载所述第一贴图,即可还原所述游戏角色。
此外,在游戏运行时,贴图通常会以相对于资源目录的路径作为唯一标识,在本发明实施例中,新生成的贴图以特殊的命名规则进行标识。例如,所述第一贴图的存储地址形式类似“char/hero/0002/0002_body_body.dds”,染色后的第二贴图在之前添加“::”来表示一张在外存并不存在的贴图,即染色后的第二贴图存储地址为“::char/hero/0002/0002_body_body.dds”。
需要说明的是,在本发明另一个实施例中,对于一个联网的游戏,当一个玩家在对他的游戏角色进行染色后,则其他玩家上的用户终端显示的该游戏角色也需要是经过染色后,因而,所述游戏角色染色装置200还包括:
发送单元260,用于将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
在本发明实施例中,在接收到所述染色参数后,所述发送单元260将所述染色参数发送至游戏服务器,此时,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,其他用户终端再执行上述的染色处理后,从而在不同用户终端达到数据同步的效果,由于所述染色参数全部都是整数或者浮点数类型,因此数据量非常小,不会影响所述游戏服务器的运作负荷,此外,所述游戏角色染色装置还可先对所述染色参数进行压缩后,再将压缩后得到的数据包发送给所述游戏服务器,进一步减小传输的数据量。
请一并参阅图11,图11是本发明第三实施例提供的游戏角色染色装置的结构示意图。所述游戏角色染色装置300包括编辑器模块310、存储加载模块320、蒙版信息计算模块330、染色模块340、格式转换模块350、缓存模块360、替换模块370及多线程并行处理模块380,其中:
所述编辑器模块310用于为玩家提供染色参数的编辑以及效果预览的功能。具体来说包括图形化的用户交互界面,与渲染引擎交互的数据通信方法,染色效果实时预览功能,以及根据染色参数生成染色方案的功能。
所述存储加载模块320是染色参数的存储和加载模块,用于持久化保存玩家设计好的染色方案,具体来说包括蒙版信息的格式定义,染色参数的数据格式定义,数据的存储功能,数据的加载功能,数据的压缩和解压功能等。所述存储加载模块320作为整个游戏角色染色装置300的输入,可以从磁盘或者网络上获得染色所需的各种数据和参数。
所述蒙版信息计算模块330用于根据玩家输入的染色参数生成区分待染色区域的蒙版信息。具体来说,所述蒙版信息计算模块330应当包括区域增长算法、多边形标注算法和标记贴图方法三种蒙版信息生成方式的实现,并且提供灵活的扩展功能,方便扩展更多的区域区分方式。所述蒙版信息计算模块330以染色参数为输入,蒙版信息为输出。
所述染色模块340是核心的染色算法执行模块,用于根据蒙版信息和染色参数生成所需的第二贴图。具体来说,所述染色模块340包含通道混合算法、色相变换算法、灰度图生成算法等多种图像处理算法的实现,并提供框架支持更多形式的图像处理算法。
所述格式转换模块350是贴图格式转换模块,用于各种格式之间的贴图转换。具体来说包括将第一贴图的格式从DDS、PVRTC或者ETC格式转换到A8R8G8B8格式,以及将第二贴图的格式从A8R8G8B8格式转换到DDS、PVRTC或者ETC格式。所述格式转换模块350还需要支持贴图大小的缩放和mipmap生成功能。
所述缓存模块360是贴图资源加载和缓存模块,所述缓存模块360用于从外部存储设备加载染色需要的原始贴图(即第一贴图)、区域标记贴图等,并将所述第一贴图按照一定的规则缓存在内存中。具体来说,所述第一贴图的加载过程支持打包资源和未打包资源两种格式的磁盘数据来源,缓存算法采用最近未使用规则来进行替换。
所述替换模块370用于将第一贴图替换为染色好的第二贴图。具体来说,所述替换模块370需要维护已经染色的贴图的列表,并按照特殊的命名规则区分该贴图是否经过染色处理,以及是经过怎样的染色方案得到当前的效果。除此之外,所述替换模块370还需要提供将染色效果还原的功能,即取消染色的效果。
所述多线程并行处理模块380用于加快染色生成速度。具体来说是提供一个后台线程执行接口,为游戏角色染色装置300提供并行染色的功能,同时提供异步加载贴图的功能,避免染色过程中像贴图加载和存储这样的磁盘读写过程造成游戏的卡顿。
综上所述,本发明实施例提供的游戏角色染色装置300,所述编辑器模块310接收玩家输入的自定义的染色参数,所述蒙版信息计算模块330再根据所述染色参数生成蒙版信息后,所述染色单元340根据蒙版信息生成染色后的第二贴图,再由所述替换模块370将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,并具有如下有益效果:
(1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了游戏的渲染消耗,同时提高了染色效果和游戏的流畅度。
请一并参阅图12,图12是本发明第四实施例提供的用户终端的结构示意图。
其中,如图12所示,该用户终端400可以包括:至少一个处理器4001,其中,所述处理器4001包括至少一个CPU和至少一个GPU,至少一个网络接口4004,用户接口4003,存储器4005,至少一个通信总线4002以及显示屏4006。其中,通信总线4002用于实现这些组件之间的连接通信。
其中,用户接口4003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口4003还可以包括标准的有线接口、无线接口。网络接口4004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器4005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器4005可选的还可以是至少一个位于远离前述处理器4001的存储装置。如图12所示,作为一种计算机存储介质的存储器4005中可以包括操作***、网络通信模块、用户接口模块以及游戏程序。其中,所述游戏程序可包括游戏角色的模型,原始贴图资源(第一贴图)及各种标记贴图等。
在图12所示的用户终端400中,网络接口4004主要用于连接游戏服务器,而处理器4001中的CPU可以用于调用存储器4005中存储的游戏程序,并执行以下操作:
通过用户接口4003接收玩家输入的对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图。
其中,所述CPU可从存储器4005中读取或加载游戏角色及第一贴图。
根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息。
根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图,并将在所述游戏角色上加载的贴图更新为所述第二贴图。
所述处理器4001中的GPU可以接收所述CPU传输的第二贴图,并执行如下步骤:
根据所述第二贴图对所述游戏角色进行渲染后获得染色后的游戏角色。
其中,在一个实施例中,所述CPU还可将生成的所述第二贴图存储到所述存储器4005。
其中,在一个实施例中,所述CPU还可将玩家设计好的染色方案,例如包括蒙版信息、染色参数等存储到存储器4005中。
在一个实施例中,所述CPU还将接收到的所述染色参数压缩后通过网络接口4004发送给游戏服务器。
在一个实施例中,所述CPU支持多线程并行处理,以加快染色生成速度。具体来说是提供一个后台线程执行接口,以提供并行染色的功能,同时提供异步加载贴图的功能,避免染色过程中贴图加载和存储这样的磁盘读写过程造成游戏的卡顿。
综上所述,本发明实施例提供的用户终端400,所述CPU通过接收玩家输入的自定义的染色参数,再根据所述染色参数生成蒙版信息后,根据蒙版信息生成染色后的第二贴图,所述GPU接收所述CPU传输的第二贴图后,将所述第二贴图加载到游戏角色上后进行渲染,获得染色后的游戏角色,其具有如下有益效果:
(1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、所述第二贴图的生成完全由CPU来执行并一次性生成,而GPU只需执行将第二贴图加载到游戏角色上进行渲染,无需在CPU和GPU之间传递染色参数,GPU也不需要在渲染时执行额外的染色代码,减少了GPU的运算消耗,同时提高了染色效果和游戏的流畅度。
(3)、在不同用户终端进行数据同步时只需要进行少量染色参数的同步,而不需要传递染色后的贴图,减少了玩家之间同步数据的带宽消耗,降低了游戏服务器存储所需的容量。
请一并参阅图13,本发明第五实施例还提供一种游戏***500,所述游戏***500包括至少一个第一用户终端510、至少一个第二用户终端520及游戏服务器530,其中,
所述第一用户终端510及所述第二用户终端520包括上述任一实施例所述的游戏角色染色装置;或者所述第一用户终端510及所述第二用户终端520为本发明第三实施例所述的用户终端。
所述第一用户终端510,用于接收对游戏角色进行染色的染色参数,根据所述染色参数生成染色后的游戏角色,并将所述染色参数发送至所述游戏服务器530。
所述游戏服务器530,用于接收所述染色参数,并将所述染色参数发送至所述第二用户终端520。
所述第二用户终端520,用于在接收所述染色参数后,根据所述染色参数生成染色后的游戏角色。
综上所述,本发明实施例提供的游戏***500,通过接收玩家输入的自定义的染色参数,再根据所述染色参数生成蒙版信息后,根据蒙版信息生成染色后的第二贴图,再将所述第二贴图加载到游戏角色上后,获得染色后的游戏角色,并具有如下有益效果:
(1)、由于本发明实施例支持多种染色算法,取代了原本简单的颜色替换和叠加,使得染色效果可以尽可能地保留原始贴图中的各种细节,实现更加精美细致的染色效果。
(2)、将原本需要在材质代码中每帧渲染都进行很多次的计算过程改变为只需要在内存中处理一次,减少了游戏的渲染消耗,同时提高了染色效果和游戏的流畅度。
(3)、在不同用户终端进行数据同步时只需要进行少量染色参数数据的同步,而不需要传递染色后的贴图结果,减少了玩家之间同步数据的带宽消耗,降低了游戏服务器存储所需的容量。
请一并参阅图14,本发明第六实施例还提供一种游戏***600,所述游戏***600包括至少一个第一用户终端610、至少一个第二用户终端620及游戏服务器630,其中,
所述第一用户终端610包括第一游戏角色染色装置611及第一数据压缩解压模块612;
所述第二用户终端620包括第二游戏角色染色装置621及第二数据压缩解压模块622;
其中,所述第一游戏角色染色装置611及第二游戏角色染色装置621为包括任一实施例所述的游戏角色染色装置。
所述游戏服务器630包括一个用于进行数据转发的数据转发模块631。
所述第一游戏角色染色装置611,用于接收对游戏角色进行染色的染色参数,根据所述染色参数生成染色后的游戏角色。
其中,所述染色参数包括可包括蒙版生成参数、蒙版生成算法及染色算法;或者所述染色参数包括可包括蒙版生成参数及染色算法。
所述第一压缩解压模块612,用于接收所述染色参数,并对所述染色参数进行压缩后发送至所述游戏服务器630。
所述数据转发模块631,用于将所述第一压缩解压模块612发送的压缩后的染色参数发送至所述第二用户终端620。
所述第二数据压缩解压模块622,用于接收所述数据转发模块631发送的压缩后的染色参数,并进行解压后发送至第二游戏角色染色装置621。
所述第二游戏角色染色装置621,用于根据所述染色参数对所述游戏角色进行染色,生成染色后的游戏角色。
综上所述,本发明实施例提供的游戏***600,在不同用户终端进行数据同步时,只需通过所述游戏服务器630在不同的用户终端之间传输压缩的染色参数,而不需要传递染色后的贴图结果,由于压缩后的染色参数数据量很小,减少了玩家之间同步数据的带宽消耗,降低了游戏服务器存储和转发所需的容量。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输软件以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述软件的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述软件,然后将其存储在计算机存储器中。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过软件来指令相关的硬件完成,所述的软件可以存储于一种计算机可读存储介质中,该软件在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (17)
1.一种游戏角色染色方法,其特征在于,包括如下步骤:
接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色;
所述染色参数包括至少一组蒙版生成参数及染色算法;
所述根据所述染色参数生成所述第一贴图的蒙版信息具体包括:
根据所述蒙版生成参数及一蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域,其中所述蒙版生成算法是包含于所述染色参数中的或是预设的;标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
2.根据权利要求1所述的游戏角色染色方法,其特征在于,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
3.根据权利要求1所述的游戏角色染色方法,其特征在于,所述根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图,具体包括:
读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
4.根据权利要求1所述的游戏角色染色方法,其特征在于,所述根据所述蒙版信息对所述第一贴图上的每个像素进行染色处理,生成第二贴图,具体包括:
读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式;
针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
将染色处理后的像素保存到一张新的贴图上,生成中间贴图;
将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
5.根据权利要求3所述的游戏角色染色方法,其特征在于,在生成第二贴图之后,还包括:
存储所述第二贴图。
6.根据权利要求4所述的游戏角色染色方法,其特征在于,在生成第二贴图之后,还包括:
存储所述第二贴图。
7.根据权利要求1所述的游戏角色染色方法,其特征在于,所述游戏角色染色方法还包括:
将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
8.一种游戏角色染色装置,其特征在于,包括:
参数接收单元,用于接收对游戏角色进行染色的染色参数,其中,所述游戏角色上加载有用于展现颜色的第一贴图;
蒙版信息生成单元,用于根据所述染色参数生成所述第一贴图的蒙版信息,其中,所述蒙版信息包括对所述第一贴图的每个像素点的染色信息;
染色单元,用于根据所述蒙版信息对所述第一贴图上的每个像素点进行染色处理,生成第二贴图;
渲染单元,用于将在所述游戏角色上加载的贴图更新为所述第二贴图,经渲染后获得染色后的游戏角色;
所述染色参数包括至少一组蒙版生成参数及染色算法;
则所述蒙版信息生成单元具体包括:
算法配置单元,用于根据所述蒙版生成参数及一蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;其中蒙版生成算法是包括在染色参数中的或是预设的;
标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
9.根据权利要求8所述的游戏角色染色装置,其特征在于,所述染色参数包括至少一组蒙版生成参数及染色算法;
则所述蒙版信息生成单元具体包括:
算法配置单元,用于根据所述蒙版生成参数及预设的蒙版生成算法获得所述第一贴图的至少一个待染色区域,并将所述染色算法配置给对应的待染色区域;
标记单元,用于标记所述第一贴图上的每个像素点归属的待染色区域及对应的染色算法,生成蒙版信息。
10.根据权利要求8所述的游戏角色染色装置,其特征在于,所述蒙版生成算法为区域增长算法、多边形标注算法或标记贴图方法中的任意一种或多种的组合;所述染色算法为不染色、灰度图转换算法、色相变换算法或通道混合算法中的任意一种或多种的组合。
11.根据权利要求8所述的游戏角色染色装置,其特征在于,所述染色单元具体包括:
查询单元,用于读取所述第一贴图,针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
染色处理单元,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
生成单元,用于将染色处理后的像素保存到一张新的贴图上,生成第二贴图。
12.根据权利要求8所述的游戏角色染色装置,其特征在于,所述染色单元具体包括:
第一格式转换单元,用于读取第一格式的第一贴图,并将所述第一贴图的图片格式转换为第二格式,其中,所述第一格式为经过压缩的图片格式,所述第二格式为未经过压缩的图片格式;
查询单元,用于针对所述第一贴图上的每个像素点,从所述蒙版信息中查询每个像素点所归属的待染色区域;
染色处理单元,用于根据所述待染色区域所配置的染色算法,对所述待染色区域内的像素点进行染色处理;
生成单元,用于将染色处理后的像素保存到一张新的贴图上,生成中间贴图,其中,所述中间贴图的图片格式为第二格式;
第二格式转换单元,用于将所述中间贴图的图片格式转化为第一格式,生成第二贴图。
13.根据权利要求11所述的游戏角色染色装置,其特征在于,所述游戏角色染色装置还包括:
存储单元,用于存储所述第二贴图。
14.根据权利要求12所述的游戏角色染色装置,其特征在于,所述游戏角色染色装置还包括:
存储单元,用于存储所述第二贴图。
15.根据权利要求8所述的游戏角色染色装置,其特征在于,所述游戏角色染色装置还包括:
发送单元,用于将所述染色参数发送至游戏服务器,其中,所述游戏服务器将所述染色参数发送至在所述游戏服务器注册的其他用户终端,以使其他用户终端根据所述染色参数对所述游戏角色进行染色处理。
16.一种用户终端,其特征在于,包括如权利要求8至15任意一项所述的游戏角色染色装置。
17.一种游戏***,其特征在于,包括第一用户终端、至少一个第二用户终端及游戏服务器;
其中,所述第一用户终端及所述第二用户终端包括如权利要求8至15任意一项所述的游戏角色染色装置;
所述第一用户终端,用于接收对游戏角色进行染色的染色参数,根据所述染色参数生成染色后的游戏角色,并将所述染色参数发送至所述游戏服务器;
所述游戏服务器,用于接收所述染色参数,并将所述染色参数发送至所述第二用户终端;
所述第二用户终端,用于在接收所述染色参数后,根据所述染色参数生成染色后的游戏角色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510613203.2A CN105233498B (zh) | 2015-09-23 | 2015-09-23 | 游戏角色染色方法、装置、用户终端及游戏*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510613203.2A CN105233498B (zh) | 2015-09-23 | 2015-09-23 | 游戏角色染色方法、装置、用户终端及游戏*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105233498A CN105233498A (zh) | 2016-01-13 |
CN105233498B true CN105233498B (zh) | 2019-02-19 |
Family
ID=55031471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510613203.2A Active CN105233498B (zh) | 2015-09-23 | 2015-09-23 | 游戏角色染色方法、装置、用户终端及游戏*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105233498B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106204715A (zh) * | 2016-06-28 | 2016-12-07 | 深圳市彬讯科技有限公司 | 基于线上3d家装平台的居家换色展示和渲染的方法及*** |
CN106582019A (zh) * | 2016-11-07 | 2017-04-26 | 北京乐动卓越科技有限公司 | 一种2d游戏角色的染色方法及装置 |
CN108205818A (zh) * | 2016-12-19 | 2018-06-26 | 盛趣信息技术(上海)有限公司 | 游戏角色形象的着色方法及*** |
CN106861185B (zh) * | 2017-03-21 | 2020-10-27 | 苏州蜗牛数字科技股份有限公司 | 一种对vr游戏场景进行扫描的方法 |
CN107213635B (zh) * | 2017-05-25 | 2023-01-24 | 网易(杭州)网络有限公司 | 视野显示方法和装置 |
CN107358643B (zh) * | 2017-07-04 | 2020-08-14 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备及存储介质 |
CN107292937B (zh) * | 2017-07-04 | 2020-10-09 | 北京像素软件科技股份有限公司 | 设置地形贴图的方法以及装置 |
CN107320956B (zh) * | 2017-08-08 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种游戏界面生成方法及装置 |
CN109697123B (zh) * | 2017-10-24 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 游戏动画的渲染方法和装置、存储介质、电子装置 |
CN108198236B (zh) * | 2017-11-29 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 数据显示方法和装置、存储介质及电子装置 |
CN108287791B (zh) * | 2018-01-17 | 2021-02-26 | 福建天晴数码有限公司 | 虚拟现实软件的纹理资源配置的检测方法及存储介质 |
CN111127593B (zh) * | 2018-10-30 | 2023-10-31 | 珠海金山办公软件有限公司 | 一种文档内容擦除方法、装置、电子设备及可读存储介质 |
CN111311720B (zh) * | 2018-12-12 | 2023-05-23 | 网易(杭州)网络有限公司 | 一种纹理图像的处理方法和装置 |
CN111340921B (zh) * | 2018-12-18 | 2024-07-16 | 北京京东尚科信息技术有限公司 | 染色方法、装置和计算机***及介质 |
CN109671147B (zh) * | 2018-12-27 | 2023-09-26 | 网易(杭州)网络有限公司 | 基于三维模型的纹理贴图生成方法及装置 |
CN111481926A (zh) * | 2019-01-25 | 2020-08-04 | 上海察亚软件有限公司 | 一种游戏人物脸部渲染及处理*** |
CN110428360B (zh) * | 2019-07-05 | 2023-08-25 | 中国平安财产保险股份有限公司 | 汽车图像美化方法、设备、存储介质及装置 |
CN110665232A (zh) * | 2019-08-30 | 2020-01-10 | 网易(杭州)网络有限公司 | 游戏中地表的渲染方法、装置、设备和存储介质 |
CN110533742B (zh) * | 2019-09-03 | 2021-05-11 | 广州视源电子科技股份有限公司 | 一种图像填色方法、装置、设备及存储介质 |
CN111080806B (zh) * | 2019-12-20 | 2024-02-23 | 网易(杭州)网络有限公司 | 贴图处理方法及装置、电子设备、存储介质 |
CN110969676B (zh) * | 2019-12-23 | 2024-04-19 | 深圳市玛贝尔动漫文化发展有限公司 | 一种手游油画角色设计快速成形方法 |
CN111275607B (zh) * | 2020-01-17 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
CN111617482B (zh) * | 2020-06-04 | 2024-02-06 | 珠海金山数字网络科技有限公司 | 一种模型贴图编辑方法及装置 |
CN111784814A (zh) * | 2020-07-16 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种虚拟角色皮肤调整方法和装置 |
CN112073335B (zh) * | 2020-09-03 | 2021-05-25 | 深圳市掌易文化传播有限公司 | 大数据支持下的游戏数据连接卡顿处理***及方法 |
CN113069764A (zh) * | 2021-03-29 | 2021-07-06 | 广州三七互娱科技有限公司 | 游戏角色的皮肤渲染方法、装置及电子设备 |
CN113223133A (zh) * | 2021-04-21 | 2021-08-06 | 深圳市腾讯网域计算机网络有限公司 | 三维模型换色方法和装置 |
CN114028808A (zh) * | 2021-11-05 | 2022-02-11 | 腾讯科技(深圳)有限公司 | 虚拟宠物的外观编辑方法、装置、终端及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4632855B2 (ja) * | 2005-05-16 | 2011-02-16 | 株式会社バンダイナムコゲームス | プログラム、情報記憶媒体及び画像生成システム |
CN104484445A (zh) * | 2014-12-24 | 2015-04-01 | 天脉聚源(北京)科技有限公司 | 一种显示图片的方法 |
CN104506921B (zh) * | 2014-12-24 | 2017-12-15 | 天脉聚源(北京)科技有限公司 | 一种动态显示图片的方法及装置 |
-
2015
- 2015-09-23 CN CN201510613203.2A patent/CN105233498B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105233498A (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105233498B (zh) | 游戏角色染色方法、装置、用户终端及游戏*** | |
CN102156999B (zh) | 一种用户界面的生成方法和装置 | |
CN106054655B (zh) | 一种智能家居联动控制方法和装置 | |
CN112215934A (zh) | 游戏模型的渲染方法、装置、存储介质及电子装置 | |
TWI668577B (zh) | 渲染設備、其之渲染方法、程式和記錄媒體 | |
CN109345612B (zh) | 一种图像生成方法、装置、设备和存储介质 | |
CN112870704B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
CN102598114A (zh) | 用于产生彩色图像的方法和使用该方法的成像设备 | |
CN107637075B (zh) | 立体视图处理 | |
CN110333924A (zh) | 一种图像渐变调整方法、装置、设备及存储介质 | |
CN102595023B (zh) | 移动终端及其图像处理方法 | |
CN107343187A (zh) | 色域映射方法、显示终端及计算机可读存储介质 | |
CN111080806B (zh) | 贴图处理方法及装置、电子设备、存储介质 | |
CN109903365A (zh) | 基于渲染树的渲染方法和渲染*** | |
CN106855800A (zh) | 一种界面元素背景图片的显示方法、装置及智能设备 | |
CN107657648A (zh) | 一种移动游戏中实时高效的染色方法和*** | |
CN103050090A (zh) | 移动终端应用的显示亮度的调节方法及装置 | |
CN107320956A (zh) | 一种游戏界面生成方法及装置 | |
US6760032B1 (en) | Hardware-implemented cellular automata system and method | |
CN111383320B (zh) | 虚拟模型处理方法、装置、设备及存储介质 | |
CN108471536A (zh) | Alpha通道传输方法及装置、终端装置及存储介质 | |
CN108364335A (zh) | 一种动画绘制方法及装置 | |
WO2017143812A1 (zh) | 区分对象的方法和装置 | |
CN113797548A (zh) | 对象处理方法及装置 | |
CN105324789A (zh) | 网络的产品设计、设计的共享、通过设计而进行产品的制造及销售的产品整体方案提供方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |