CN105701858B - 一种基于alpha融合的贴图处理方法及装置 - Google Patents
一种基于alpha融合的贴图处理方法及装置 Download PDFInfo
- Publication number
- CN105701858B CN105701858B CN201610012892.6A CN201610012892A CN105701858B CN 105701858 B CN105701858 B CN 105701858B CN 201610012892 A CN201610012892 A CN 201610012892A CN 105701858 B CN105701858 B CN 105701858B
- Authority
- CN
- China
- Prior art keywords
- block
- pixels
- textures
- dxt5
- color data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于alpha融合的贴图处理方法及装置,该方法主要包括:获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值;根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对目标贴图中的对应位置进行贴图处理;当源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。采用本发明的技术方案能提高DXT5格式的贴图在alpha融合时的融合效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于alpha融合的贴图处理方法及装置。
背景技术
在现代游戏中,换装是一种必不可少的游戏系统,游戏角色的外观能够实时地随着穿着装备的变化而变化。对于换装系统,常见的实现方式是在角色的目标贴图(targettexture)上为不同部位的装备划分各自区域。而美工人员在制作装备的贴图资源时,只需在该类型装备相对应的区域进行制作,其他区域镂空,即可获得某类型装备的贴图资源。最后在游戏过程中,如果游戏角色的装备发生改变,只需取出当前各部位装备所对应的贴图,然后按照一定的次序进行alpha融合(Alpha透明混合处理,Alpha Blending,简称alpha融合),即可得到角色最终的目标贴图。现有的alpha融合需使用图形API(图形应用程序接口,Application Programming Interface)软件将需要进行alpha融合的贴图以ARGB8888格式从硬盘加载至内存后,对各个贴图逐个像素进行以下的计算:Colortarget=asrc*Colorsrc+(1-asrc)*Colordst,得到目标贴图对应位置的像素最终颜色。例如,需要得到一张如图7所示的角色目标贴图,只需要按照次序依次对图1到图6中每个像素的颜色进行alpha融合即可得到需要的目标贴图。
另外,随着现代游戏技术和美术技术的发展,游戏中的贴图资源所占的空间越来越大。为了保留美术资源的精度,同时减少存储体积,现有技术中使用DXT5格式对贴图资源进行压缩。DXT5格式是一种图像压缩技术,它以4*4为单位将原图像的像素划分为块,每16个像素点按一定的规则进行压缩,形成DXT5像素块。DXT5格式的压缩方法具体为:先求出16个像素点的最大最小颜色值(color_0和color_1),在使用线性插值获得另外两个插值颜色(color_2和color_3),然后为每个像素点分配两位字节来建立一个颜色索引表,求出与原像素点最接近的插值颜色,将插值颜色的索引值填入索引表即完成颜色数据的压缩过程。而alpha值的压缩与之类似,只是由alpha_0和alpha_1插值出另外6个插值来组成一个序列,而且alpha索引表中每个像素点对应的位数是3。解压的方式与压缩的方式为相互逆过程,在此不再赘述,详细可参见图8和图9的压缩格式示意图。
相比于传统的ARGB8888格式的贴图,DXT5格式的压缩比可达到1:4,而且图形API软件对DXT5格式的支持也比较充分,因此大部分的贴图资源最终都会输出成DXT5格式供游戏使用。
发明内容
发明人在实施本发明的过程中,发现上述现有的登录方法存在如下缺点:如果贴图资源是以DXT5格式输出,在图形API以ARGB888格式从硬盘加载贴图的时候,就需要进行一次DXT5到ARGB8888的转换,并且对图像中的所有像素进行一次alpha融合的融合计算后,再将ARGB8888格式压缩回DXT5格式供游戏使用,从而造成效率低下。
为了克服现有技术存在的缺点,本发明实施例提供一种基于alpha融合的贴图处理方法及装置,能提高DXT5格式的贴图在alpha融合时的融合效率。
第一方面,本发明实施例提供一种基于alpha融合的贴图处理方法,包括:
获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使所述目标贴图中的对应位置的颜色数据保持不变;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据和所述目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到所述目标贴图中的对应位置;
当所述源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
第二方面,本发明实施例提供了一种基于alpha融合的贴图处理方法,包括:
获取用于与目标贴图进行alpha融合的中间贴图文件;其中,所述中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据;
根据所述中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对所述目标贴图中的对应位置进行贴图处理,包括:
当所读取的像素块的属性为镂空像素块时,使所述目标贴图中的对应位置的颜色数据保持不变;其中,所述镂空像素块的颜色数据为空;
当所读取的像素块的属性为实心像素块时,将所述像素块的颜色数据拷贝至所述目标贴图中的对应位置;其中,所述实心像素块的颜色数据为DXT5格式的数据;
当所读取的像素块的属性为待融合像素块时,将所述目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与所述待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到所述目标贴图中的对应位置;其中,所述待融合像素块的颜色数据为ARGB8888格式的数据;
当所述中间贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
进一步的,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将所述镂空像素块的颜色数据配置为空,再将所述镂空像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
进一步的,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录所述第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将所述第i个像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将所述第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到所述中间贴图文件;i≥1,N≥1;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
进一步的,所述中间贴图文件中记载的像素块的位置信息,为所述像素块相对于所述源贴图中的第一个像素块的索引偏移。
第三方面,本发明提供了一种贴图处理装置,包括:
第一获取单元,用于获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第一贴图处理单元,用于根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理;
和,第一输出单元,用于当所述源贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图;
其中,所述第一贴图处理单元包括:第一处理子单元、第二处理子单元和第三处理子单元;
所述第一处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使所述目标贴图中的对应位置的颜色数据保持不变;
第二处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
第三处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据和所述目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到所述目标贴图中的对应位置。
第四方面,本发明提供了一种贴图处理装置,包括:
第二获取单元,用于获取用于与目标贴图进行alpha融合的中间贴图文件;其中,所述中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据;
第二贴图处理单元,用于根据所述中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对所述目标贴图中的对应位置进行贴图处理;
和,第二输出单元,用于当所述中间贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图;
其中,所述第二贴图处理单元包括:第四处理子单元、第五处理子单元和第六处理子单元;
所述第四处理子单元,用于当所读取的像素块的属性为镂空像素块时,使所述目标贴图中的对应位置的颜色数据保持不变;其中,所述镂空像素块的颜色数据为空;
所述第五处理子单元,用于当所读取的像素块的属性为实心像素块时,将所述像素块的颜色数据拷贝至所述目标贴图中的对应位置;其中,所述实心像素块的颜色数据为DXT5格式的数据;
所述第六处理子单元,用于当所读取的像素块的属性为待融合像素块时,将所述目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与所述待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到所述目标贴图中的对应位置;其中,所述待融合像素块的颜色数据为ARGB8888格式的数据。
进一步的,所述贴图处理装置还包括:
第三获取单元,用于在所述第二获取单元获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第三转换单元,用于创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中;
和,第三输出单元,用于所述第三转换单元对所述源贴图文件的每一个像素块进行转换后,输出记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件;
其中,所述第三转换单元包括:第一转换子单元、第二转换子单元和第三转换子单元;
所述第一转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将所述镂空像素块的颜色数据配置为空,再将所述镂空像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第二转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第三转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
进一步的,所述贴图处理装置还包括:
第四获取单元,用于在所述第二获取单元获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第四转换单元,用于创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中;
和,第四输出单元,用于所述第四转换单元对所述源贴图文件的每一个像素块进行转换后,输出记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件;
其中,所述第四转换单元包括:第四转换子单元、第五转换子单元和第六转换子单元;
所述第四转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录所述第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将所述第i个像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将所述第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到所述中间贴图文件;
所述第五转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第六转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
进一步的,所述中间贴图文件中记载的像素块的位置信息,为所述像素块相对于所述源贴图中的第一个像素块的索引偏移。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的一种基于alpha融合的贴图处理方法,在与目标贴图进行alpha融合时,通过对源贴图文件中的每个像素块中每个像素点的alpha值进行判断,当所有像素点的alpha值均为0时,使目标贴图中的对应位置的颜色数据保持不变;当所有像素点的alpha值均为1时,将该像素块的DXT5格式数据中的颜色数据拷贝至目标贴图中的对应位置;当所有像素点的alpha值不全为0和不全为1时,将该像素块和目标贴图中的对应位置的颜色数据提取出来,分别转换为ARGB8888格式的数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图的对应位置。当源贴图文件中的每一个像素块均被处理完毕后,获得alpha融合后的目标贴图。相比于现有技术将源贴图文件和目标贴图中的所有像素块由DXT5格式转换为ARGB8888格式后,再进行alpha融合,融合时以每一个像素点作为单位,本发明技术方案以整个像素块为处理单位,节省了数据转换的次数,提高了alpha融合的效率。
另外,本发明还提供了一种基于alpha融合的贴图处理方法,该方法将源贴图文件预先转换为中间贴图文件,该转换过程可以在离线预处理完成,将数据转换的开销转移至离线的预处理阶段,降低了本地设备的硬件需求,提高了alpha融合的效率。
进一步的,本发明中的中间贴图文件对源贴图文件进行压缩,减少了所占用的磁盘空间,相比于加载源贴图文件,本发明的中间贴图文件具有更快的加载速度,进一步提高alpha融合的效率。
附图说明
图1至图6分别是现有技术提供的角色皮肤、腰带、靴子、胸甲、手套和裤子贴图的效果示意图;
图7是现有技术提供的alpha融合后的角色目标贴图的效果示意图;
图8是现有技术提供的DXT5格式的像素块的颜色压缩格式示意图;
图9是现有技术提供的DXT5格式的像素块的alpha值压缩格式示意图;
图10是本发明提供的基于alpha融合的贴图处理方法的一种实施例的流程示意图
图11是本发明提供的贴图处理方法的另一种实施例的流程示意图
图12是本发明提供的基于alpha融合的贴图处理方法的又一种实施例的流程示意图;
图13是本发明提供的贴图处理装置的一种实施例的结构示意图
图14是本发明提供的贴图处理装置的另一种实施例的结构示意图;
图15是本发明提供的贴图处理装置的又一种实施例的结构示意图;
图16是本发明实施例提供的贴图装置的另又一种实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
参见图10,是本发明提供的基于alpha融合的贴图处理方法的一种实施例的流程示意图。该贴图处理方法适用于以DXT5格式进行压缩存储的贴图,其主要包括步骤101至步骤103,具体如下:
步骤101:获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;该DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
在本实施例中,游戏的装备换装主要通过目标贴图与源贴图文件进行alpha融合来实现。本发明获取需与目标贴图进行alpha融合的源贴图文件,而源贴图文件包含源贴图中每一个像素块的DXT5格式数据和位置信息。由于DXT5格式的数据是以16个像素点为单位进行压缩存储的,故该位置信息用于标明每个像素块在源贴图上的位置。
步骤102:根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对目标贴图中的对应位置进行贴图处理。
在本实施例中,步骤102包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使目标贴图中的对应位置的颜色数据保持不变。
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据中的每一个像素点的颜色数据拷贝至目标贴图中的对应位置。
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据和目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图中的对应位置。
在本实施例中,根据融合公式Colortarget=asrc*Colorsrc+(1-asrc)*Colordst可知,如果像素块中每个像素点的alpha值均为0,最终的融合结果为目标贴图中的对应位置的颜色数据保持不变。如果像素块中每个像素点的alpha值均为1,最终的融合结果为目标贴图中的对应位置的颜色数据均被该像素块中的颜色数据所替换。如果像素块中每个像素点的alpha值不全为1和不全为0,才需要将每个像素点代入融合公式进行计算,得到最终的融合效果。在装备贴图中,大部分的DXT5格式数据的像素块都是镂空(alpha值全为0)或实心(alpha值全为1),故本发明在进行贴图处理时,以16个像素点即一个像素块为单位进行处理,最大限度地降低了贴图文件在DXT5格式和ARGB8888格式之间的两次转换所带来的消耗,而且与现有技术逐个像素点进行处理的方法相比,本发明具有更高的处理效率。
步骤103:当源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
由上可见,本发明实施例提供的一种基于alpha融合的贴图处理方法,在与目标贴图进行alpha融合时,通过对源贴图文件中的每个像素块中每个像素点的alpha值进行判断,当所有像素点的alpha值均为0时,使目标贴图中的对应位置的颜色数据保持不变;当所有像素点的alpha值均为1时,将该像素块的DXT5格式数据中的颜色数据拷贝至目标贴图中的对应位置;当所有像素点的alpha值不全为0和不全为1时,将该像素块和目标贴图中的对应位置的颜色数据提取出来,分别转换为ARGB8888格式的数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图的对应位置;当源贴图文件中的每一个像素块均被处理完毕后,获得alpha融合后的目标贴图。相比于现有技术将源贴图文件和目标贴图中的所有像素块由DXT5格式转换为ARGB8888格式后,再进行alpha融合,融合时以每一个像素点作为单位,本发明技术方案以整个像素块为处理单位,节省了数据转换的次数,减少了DXT5格式像素块的解压消耗,提高了alpha融合的效率。
实施例2
参见图11,图11为本发明提供的贴图处理方法的另一种实施例的流程示意图。其主要包括步骤201至步骤203,具体如下:
步骤201:获取用于与目标贴图进行alpha融合的中间贴图文件;其中,中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据。
步骤202:根据中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对目标贴图中的对应位置进行贴图处理。
在本实施例中,步骤202包括:
当所读取的像素块的属性为镂空像素块时,使目标贴图中的对应位置的颜色数据保持不变;其中,镂空像素块的颜色数据为空。
当所读取的像素块的属性为实心像素块时,将像素块的颜色数据拷贝至目标贴图中的对应位置;其中,实心像素块的颜色数据为DXT5格式的数据。
当所读取的像素块的属性为待融合像素块时,将目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到目标贴图中的对应位置;其中,待融合像素块的颜色数据为ARGB8888格式的数据。
步骤203:当中间贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
本实施例与实施例1的区别在于,本实施例将源贴图文件转换为中间贴图文件(简称为PTF,Processed Texture File),该转换步骤在游戏离线预处理完成。离线预处理是在游戏发布前对资源的一个预处理阶段,目的在于对将要发布的资源进行一定的处理,以便更好地被游戏使用,因为不涉及到游戏的实时运行成本,所以本阶段对资源的处理并无硬性要求。本实施例对中间贴图文件与目标贴图进行alpha融合,同样提高了alpha融合的处理效率。
作为本实施例的一种举例,参见图12,图12是本发明提供的基于alpha融合的贴图处理方法的又一种实施例的流程示意图。在步骤201之前,还包括步骤301至303,其主要步骤流程如下:
步骤301:获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
步骤302:创建一个中间贴图文件,根据源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到中间贴图文件中。
在本举例中,步骤302具体为:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将镂空像素块的颜色数据配置为空,再将镂空像素块的位置信息、属性和颜色数据写入到中间贴图文件。
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件。
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到中间贴图文件。
步骤303:对源贴图文件的每一个像素块进行转换后,获得记载了源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
作为本实施例的一种举例,本发明提供了另一种实现方式,本实现方式与图12的区别在于,步骤302包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将第i个像素块的颜色数据配置为空,再将第i个像素块的位置信息、属性和颜色数据写入到中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到中间贴图文件。
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件。
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
在本举例中,中间贴图文件是根据源贴图文件进行转换的,转换时先获取相应的源贴图文件,在创建一个空的中间贴图文件。该中间贴图文件除了包含上述步骤所貌似的信息外,还记载了其自身的标志位、源贴图文件的宽和高(以所有像素点为单位)以及整个文件的长度。因为中间贴图文件的内容会根据源贴图文件的不同而不同,而且由于DXT5格式与ARGB8888分别所对应的字节并不相同,中间贴图文件的实际长度会受到源贴图文件中镂空像素块、实心像素块和待融合像素块的个数所影响,因此只能在所有像素块均被转换后才能获知中间贴图文件的实际长度。所以在转换时,这个字段会先输出一个占位符,在整个文件转换完成后,再将实际长度输出到该占位符所在的位置。
在本举例中,中间贴图文件对于镂空像素块采用了压缩存储的方法,在读取到第i个像素块为镂空像素块时,记录第i个像素块的位置信息。若下一个读取的像素块不为镂空像素块,则将第一个像素块的颜色数据配置为空,再将第i个像素块的位置信息、属性和颜色数据写入到中间贴图文件中。若后续读取的N个连续的像素块均为镂空像素块,则将第i个像素块和N个连续像素块的颜色数据配置为空,再将第i个像素块的位置信息、连续个数N、属性及颜色数据写入中间贴图文件中。在贴图处理时,根据第i个像素块的位置信息和连续个数N,确定镂空像素块的个数,使该部分的镂空像素块在目标贴图中的对应位置的颜色数据保持不变,不仅压缩了中间贴图文件的大小,还进一步提高贴图处理的效率。
在本举例中,中间贴图文件中记载的像素块的位置信息可以但不限于,为像素块相对于源贴图中的第一个像素块的索引偏移。
由上可见,本发明实施例提供了一种基于alpha融合的贴图处理方法,该方法将源贴图文件预先转换为中间贴图文件,该转换过程可以在离线预处理完成,将数据转换的开销转移至离线的预处理阶段,降低了本地设备的硬件需求,提高了alpha融合的效率。
进一步的,本发明中的中间贴图文件对源贴图文件进行压缩,减少了所占用的磁盘空间,相比于加载源贴图文件,本发明的中间贴图文件具有更快的加载速度,进一步提高alpha融合的效率。
实施例3
参见图13,图13是本发明提供的贴图处理装置的一种实施例的结构示意图。如图13所示,该装置主要包括:
第一获取单元401,用于获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
第一贴图处理单元402,用于根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对目标贴图中的对应位置进行贴图处理。
和,第一输出单元403,用于当源贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图。
其中,第一贴图处理单元402包括:第一处理子单元4021、第二处理子单元4022和第三处理子单元4023。
第一处理子单元4021,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使目标贴图中的对应位置的颜色数据保持不变。
第二处理子单元4022,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据中的每一个像素点的颜色数据拷贝至目标贴图中的对应位置。
第三处理子单元4023,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据和目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图中的对应位置。
本实施例更详细工作流程和原理可以但不限于参见实施例1的相关记载。
由上可见,相比于现有技术将源贴图文件和目标贴图中的所有像素块由DXT5格式转换为ARGB8888格式后,再进行alpha融合,融合时以每一个像素点作为单位,本发明实施例提供的贴图处理装置以整个像素块为处理单位,节省了数据转换的次数,提高了alpha融合的效率。
实施例4
参见图14,图14是本发明提供的贴图处理装置的另一种实施例的结构示意图。如图14所示,该装置包括:
第二获取单元501,用于获取用于与目标贴图进行alpha融合的中间贴图文件;其中,中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据。
第二贴图处理单元502,用于根据中间贴图文件中的每一个像素块的位置信息,依次读取每一个像素块的属性和颜色数据,对目标贴图中的对应位置进行贴图处理。
和,第二输出单元503,用于当中间贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图。
其中,第二贴图处理单元502包括:第四处理子单元5021、第五处理子单元5022和第六处理子单元5023。
第四处理子单元5021,用于当所读取的像素块的属性为镂空像素块时,使目标贴图中的对应位置的颜色数据保持不变;其中,镂空像素块的颜色数据为空。
第五处理子单元5022,用于当所读取的像素块的属性为实心像素块时,将像素块的颜色数据拷贝至目标贴图中的对应位置;其中,实心像素块的颜色数据为DXT5格式的数据。
第六处理子单元,用于当所读取的像素块的属性为待融合像素块时,将目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到目标贴图中的对应位置;其中,待融合像素块的颜色数据为ARGB8888格式的数据。
作为本实例的一种举例,参见图15,图15是本发明提供的贴图处理装置的又一种实施例的结构示意图。图15与图14的区别在于,该装置还包括:
第三获取单元601,用于在第二获取单元501获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
第三转换单元602,用于创建一个中间贴图文件,根据源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到中间贴图文件中。
和,第三输出单元603,用于第三转换单元602对源贴图文件的每一个像素块进行转换后,输出记载了源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
其中,第三转换单元602包括:第一转换子单元6021、第二转换子单元6022和第三转换子单元6023。
第一转换子单元6021,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将镂空像素块的颜色数据配置为空,再将镂空像素块的位置信息、属性和颜色数据写入到中间贴图文件。
第二转换子单元6022,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件;
第三转换子单元6023,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到中间贴图文件。
作为本实施例的一种举例,参见图16,图16是本发明实施例提供的贴图装置的另又一种实施例的结构示意图。图16与图14的区别在于,贴图处理装置还包括:
第四获取单元701,用于在第二获取单元501获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
第四转换单元702,用于创建一个中间贴图文件,根据源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到中间贴图文件中。
和,第四输出单元703,用于第四转换单元702对源贴图文件的每一个像素块进行转换后,输出记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
其中,第四转换单元702包括:第四转换子单元7021、第五转换子单元7022和第六转换子单元7023。
第四转换子单元7021,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将第i个像素块的颜色数据配置为空,再将第i个像素块的位置信息、属性和颜色数据写入到中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到中间贴图文件。
第五转换子单元7022,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件。
第六转换子单元7023,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到中间贴图文件。
在本实例中,中间贴图文件中记载的像素块的位置信息,为像素块相对于源贴图中的第一个像素块的索引偏移。
本实施例更详细的工作原理与流程可以但不限于参见实施例2的相关记载。
由上可见,本发明实施例提供了一种基于alpha融合的贴图处理装置将源贴图文件预先转换为中间贴图文件,该转换过程可以在离线预处理完成,将数据转换的开销转移至离线的预处理阶段,降低了本地设备的硬件需求,提高了alpha融合的效率。
进一步的,本发明中的中间贴图文件对源贴图文件进行压缩,减少了所占用的磁盘空间,相比于加载源贴图文件,本发明的中间贴图文件具有更快的加载速度,进一步提高alpha融合的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种基于alpha融合的贴图处理方法,其特征在于,包括:
获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使所述目标贴图中的对应位置的颜色数据保持不变;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据和所述目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到所述目标贴图中的对应位置;
当所述源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
2.一种基于alpha融合的贴图处理方法,其特征在于,包括:
获取用于与目标贴图进行alpha融合的中间贴图文件;其中,所述中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据;
根据所述中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对所述目标贴图中的对应位置进行贴图处理,包括:
当所读取的像素块的属性为镂空像素块时,使所述目标贴图中的对应位置的颜色数据保持不变;其中,所述镂空像素块的颜色数据为空;
当所读取的像素块的属性为实心像素块时,将所述像素块的颜色数据拷贝至所述目标贴图中的对应位置;其中,所述实心像素块的颜色数据为DXT5格式的数据;
当所读取的像素块的属性为待融合像素块时,将所述目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与所述待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到所述目标贴图中的对应位置;其中,所述待融合像素块的颜色数据为ARGB8888格式的数据;
当所述中间贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
3.根据权利要求2所述的基于alpha融合的贴图处理方法,其特征在于,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将所述镂空像素块的颜色数据配置为空,再将所述镂空像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
4.根据权利要求2所述的基于alpha融合的贴图处理方法,其特征在于,在所述获取用于与目标贴图进行alpha融合的中间贴图文件之前,还包括:
获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中,包括:
当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录所述第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将所述第i个像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将所述第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到所述中间贴图文件;i≥1,N≥1;
当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
对所述源贴图文件的每一个像素块进行转换后,获得记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
5.根据权利要求3或4所述的基于alpha融合的贴图处理方法,其特征在于,所述中间贴图文件中记载的像素块的位置信息,为所述像素块相对于所述源贴图中的第一个像素块的索引偏移。
6.一种贴图处理装置,其特征在于,包括:
第一获取单元,用于获取用于与目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第一贴图处理单元,用于根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对所述目标贴图中的对应位置进行贴图处理;
和,第一输出单元,用于当所述源贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图;
其中,所述第一贴图处理单元包括:第一处理子单元、第二处理子单元和第三处理子单元;
所述第一处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,使所述目标贴图中的对应位置的颜色数据保持不变;
第二处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据中的每一个像素点的颜色数据拷贝至所述目标贴图中的对应位置;
第三处理子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据和所述目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到所述目标贴图中的对应位置。
7.一种贴图处理装置,其特征在于,包括:
第二获取单元,用于获取用于与目标贴图进行alpha融合的中间贴图文件;其中,所述中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据;
第二贴图处理单元,用于根据所述中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对所述目标贴图中的对应位置进行贴图处理;
和,第二输出单元,用于当所述中间贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图;
其中,所述第二贴图处理单元包括:第四处理子单元、第五处理子单元和第六处理子单元;
所述第四处理子单元,用于当所读取的像素块的属性为镂空像素块时,使所述目标贴图中的对应位置的颜色数据保持不变;其中,所述镂空像素块的颜色数据为空;
所述第五处理子单元,用于当所读取的像素块的属性为实心像素块时,将所述像素块的颜色数据拷贝至所述目标贴图中的对应位置;其中,所述实心像素块的颜色数据为DXT5格式的数据;
所述第六处理子单元,用于当所读取的像素块的属性为待融合像素块时,将所述目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与所述待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到所述目标贴图中的对应位置;其中,所述待融合像素块的颜色数据为ARGB8888格式的数据。
8.根据权利要求7所述的贴图处理装置,其特征在于,还包括:
第三获取单元,用于在所述第二获取单元获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第三转换单元,用于创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中;
和,第三输出单元,用于所述第三转换单元对所述源贴图文件的每一个像素块进行转换后,输出记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件;
其中,所述第三转换单元包括:第一转换子单元、第二转换子单元和第三转换子单元;
所述第一转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将所述镂空像素块的颜色数据配置为空,再将所述镂空像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第二转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第三转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
9.根据权利要求7所述的贴图处理装置,其特征在于,还包括:
第四获取单元,用于在所述第二获取单元获取用于与目标贴图进行alpha融合的中间贴图文件之前,获取用于与所述目标贴图进行alpha融合的源贴图文件;其中,所述源贴图文件包含所述源贴图中的每一个像素块的DXT5格式数据和位置信息;所述DXT5格式数据包含所述像素块的每一个像素点的颜色数据和alpha值;
第四转换单元,用于创建一个中间贴图文件,根据所述源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到所述中间贴图文件中;
和,第四输出单元,用于所述第四转换单元对所述源贴图文件的每一个像素块进行转换后,输出记载了所述源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件;
其中,所述第四转换单元包括:第四转换子单元、第五转换子单元和第六转换子单元;所述第四转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为0时,将所述DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录所述第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将所述第i个像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将所述第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将所述第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到所述中间贴图文件;
所述第五转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为1时,将所述DXT5格式数据所对应的像素块的属性确定为实心像素块,并将所述DXT5格式数据中的颜色数据提取出来,直接作为所述实心像素块的颜色数据,再将所述实心像素块的位置信息、属性和颜色数据写入到所述中间贴图文件;
所述第六转换子单元,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为0和不全为1时,将所述DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将所述DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为所述待融合像素块的颜色数据,最后将所述待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
10.根据权利要求8或9所述的贴图处理装置,其特征在于,所述中间贴图文件中记载的像素块的位置信息,为所述像素块相对于所述源贴图中的第一个像素块的索引偏移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610012892.6A CN105701858B (zh) | 2016-01-07 | 2016-01-07 | 一种基于alpha融合的贴图处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610012892.6A CN105701858B (zh) | 2016-01-07 | 2016-01-07 | 一种基于alpha融合的贴图处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105701858A CN105701858A (zh) | 2016-06-22 |
CN105701858B true CN105701858B (zh) | 2018-09-14 |
Family
ID=56226981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610012892.6A Active CN105701858B (zh) | 2016-01-07 | 2016-01-07 | 一种基于alpha融合的贴图处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105701858B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105979282B (zh) * | 2016-06-02 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 一种动画帧处理方法、服务器、终端及系统 |
CN111275607B (zh) * | 2020-01-17 | 2022-05-24 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673409A (zh) * | 2009-09-11 | 2010-03-17 | 广州市八丁动漫网络科技有限公司 | 一种应用于计算机桌面的图像渲染方法 |
CN101853518A (zh) * | 2010-05-28 | 2010-10-06 | 电子科技大学 | 基于各向异性体数据的错切变形体绘制方法 |
CN102915559A (zh) * | 2012-08-22 | 2013-02-06 | 北京航空航天大学 | 一种基于三维点云的实时透明物体gpu并行生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8610758B2 (en) * | 2009-12-15 | 2013-12-17 | Himax Technologies Limited | Depth map generation for a video conversion system |
-
2016
- 2016-01-07 CN CN201610012892.6A patent/CN105701858B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673409A (zh) * | 2009-09-11 | 2010-03-17 | 广州市八丁动漫网络科技有限公司 | 一种应用于计算机桌面的图像渲染方法 |
CN101853518A (zh) * | 2010-05-28 | 2010-10-06 | 电子科技大学 | 基于各向异性体数据的错切变形体绘制方法 |
CN102915559A (zh) * | 2012-08-22 | 2013-02-06 | 北京航空航天大学 | 一种基于三维点云的实时透明物体gpu并行生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105701858A (zh) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107481190B (zh) | 一种图像数据处理方法以及装置 | |
CN108492338B (zh) | 动画文件的压缩方法、装置、存储介质和电子装置 | |
CN108022212A (zh) | 高分辨率图片生成方法、生成装置及存储介质 | |
TWI264183B (en) | Method for compressing data in a bit stream or bit pattern | |
CN103718194B (zh) | 包括由数字装置译码的信息的设计代码图案及其操作系统 | |
CN105635712A (zh) | 基于增强现实的视频实时录制方法及录制设备 | |
CN111161365B (zh) | 一种骨骼动画数据的压缩方法及装置 | |
CN102122280B (zh) | 一种智能提取内容对象的方法及系统 | |
CN102821279A (zh) | 一种保留alpha通道的图片压缩方法 | |
CN107729609A (zh) | 一种建筑装饰技术交底的显示方法及系统 | |
CN107392974A (zh) | 图片生成方法、装置以及终端设备 | |
CN110728722B (zh) | 图像颜色迁移方法、装置、计算机设备和存储介质 | |
CN105701858B (zh) | 一种基于alpha融合的贴图处理方法及装置 | |
CN112118449B (zh) | 一种图像压缩与解压缩的方法及装置 | |
KR101845535B1 (ko) | 3d 아바타 기반 화자 변경형 스토리텔링 시스템 | |
CN205281405U (zh) | 一种基于增强现实的图像识别系统 | |
CN104793937B (zh) | 一种启动控制方法及装置 | |
WO2010124357A1 (en) | Conversion of swf shape definitions for vector graphics rendering | |
CN107945719A (zh) | 一种基于ar增强现实技术的产品展示控制系统 | |
CN105704215B (zh) | 文件共享系统及相应的文件发送方法及装置 | |
CN103034972B (zh) | 图像处理平台的实现方法及图像处理平台 | |
KR101538491B1 (ko) | 이미지를 부가 데이터의 저장 및 이동 수단으로 이용하는 방법 및 장치 | |
CN108156436A (zh) | 三维宣传视频的在线处理方法 | |
CN107945239A (zh) | 一种纹理s3tc压缩解压单元结构 | |
CN104079915B (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 |