一种基于alpha融合的贴图处理方法及装置的制造方法

文档序号:9922508阅读:344来源:国知局
一种基于alpha融合的贴图处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种基于alpha融合的贴图处理方法及装置。
【背景技术】
[0002]在现代游戏中,换装是一种必不可少的游戏系统,游戏角色的外观能够实时地随着穿着装备的变化而变化。对于换装系统,常见的实现方式是在角色的目标贴图(targettexture)上为不同部位的装备划分各自区域。而美工人员在制作装备的贴图资源时,只需在该类型装备相对应的区域进行制作,其他区域镂空,即可获得某类型装备的贴图资源。最后在游戏过程中,如果游戏角色的装备发生改变,只需取出当前各部位装备所对应的贴图,然后按照一定的次序进行alpha融合(Alpha透明混合处理,Alpha Blending,简称alpha融合),即可得到角色最终的目标贴图。现有的alpha融合需使用图形API(图形应用程序接口,Applicat1n Programming Interface)软件将需要进行alpha融合的贴图以ARGB8888格式从硬盘加载至内存后,对各个贴图逐个像素进行以下的计算:Colortarget = Bsrc^C0 IΟΓ8γο+(l-asrc;)*C0l0rdst,得到目标贴图对应位置的像素最终颜色。例如,需要得到一张如图7所示的角色目标贴图,只需要按照次序依次对图1到图6中每个像素的颜色进行alpha融合即可得到需要的目标贴图。
[0003]另外,随着现代游戏技术和美术技术的发展,游戏中的贴图资源所占的空间越来越大。为了保留美术资源的精度,同时减少存储体积,现有技术中使用DXT5格式对贴图资源进行压缩。DXT5格式是一种图像压缩技术,它以4*4为单位将原图像的像素划分为块,每16个像素点按一定的规则进行压缩,形成DXT5像素块。DXT5格式的压缩方法具体为:先求出16个像素点的最大最小颜色值(color_0和color_l),在使用线性插值获得另外两个插值颜色(color_2和color_3),然后为每个像素点分配两位字节来建立一个颜色索引表,求出与原像素点最接近的插值颜色,将插值颜色的索引值填入索引表即完成颜色数据的压缩过程。而alpha值的压缩与之类似,只是由alpha_0和alpha_l插值出另外6个插值来组成一个序列,而且alpha索引表中每个像素点对应的位数是3。解压的方式与压缩的方式为相互逆过程,在此不再赘述,详细可参见图8和图9的压缩格式示意图。
[0004]相比于传统的ARGB8888格式的贴图,DXT5格式的压缩比可达到I: 4,而且图形API软件对DXT5格式的支持也比较充分,因此大部分的贴图资源最终都会输出成DXT5格式供游戏使用。

【发明内容】

[0005]发明人在实施本发明的过程中,发现上述现有的登录方法存在如下缺点:如果贴图资源是以DXT5格式输出,在图形API以ARGB888格式从硬盘加载贴图的时候,就需要进行一次DXT5到ARGB8888的转换,并且对图像中的所有像素进行一次alpha融合的融合计算后,再将ARGB8888格式压缩回DXT5格式供游戏使用,从而造成效率低下。
[0006]为了克服现有技术存在的缺点,本发明实施例提供一种基于alpha融合的贴图处理方法及装置,能提高DXT5格式的贴图在alpha融合时的融合效率。
[0007]第一方面,本发明实施例提供一种基于alpha融合的贴图处理方法,包括:
[0008]获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
[0009]根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理,包括:
[0010]当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,使所述目标贴图中的对应位置的颜色数据保持不变;
[0011]当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
[0012]当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将所述DXT5格式数据和所述目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到所述目标贴图中的对应位置;
[0013]当所述源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
[0014]第二方面,本发明实施例提供了一种基于alpha融合的贴图处理方法,包括:
[0015]获取用于与目标贴图进行alpha融合的中间贴图文件;其中,所述中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据;
[0016]根据所述中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对所述目标贴图中的对应位置进行贴图处理,包括:
[0017]当所读取的像素块的属性为镂空像素块时,使所述目标贴图中的对应位置的颜色数据保持不变;其中,所述镂空像素块的颜色数据为空;
[0018]当所读取的像素块的属性为实心像素块时,将所述像素块的颜色数据拷贝至所述目标贴图中的对应位置;其中,所述实心像素块的颜色数据为DXT5格式的数据;
[0019]当所读取的像素块的属性为待融合像素块时,将所述目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与所述待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到所述目标贴图中的对应位置;其中,所述待融合像素块的颜色数据为ARGB8888格式的数据;
[0020]当所述中间贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
[0021]进一步的,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
[0022]获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和a Ipha值;
[0023]创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
[0024]当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,将所述DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将所述镂空像素块的颜色数据配置为空,再将所述镂空像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
[0025]当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
[0026]当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
[0027]对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
[0028]进一步的,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
[0029]获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和a Ipha值;
[0030]创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
[0031]当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,将所述DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录所述第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将所述第i个像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将所述第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到所述中间贴图文件;i> 1,N> I;
[0032]当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
[0033]当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
[0034]对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
[0035]进一步的,所述中间贴图文件中记载的像素块的位置信息,为所述像素块相对于所述源贴图中的第一个像素块的索引偏移。
[0036]第三方面,本发明提供了一种贴图处理装置,包括:
[0037]第一获取单元,用于获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
[0038]第一贴图处理单元,用于根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理;
[0039]和,第一输出单元,用于当所述源贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图;
[0040]其中,所述第一贴图处理单元包括:第一处理子单元、第二处理子单元和第三处理子单元;
[0041]所述第一处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,使所述目标贴图中的对应位置的颜色数据保持不变;
[0042]第二处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
[0043]第三处理子单元,用于当所读取的DXT
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1