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

文档序号:9922508阅读:来源:国知局
GB8888格式的数据,并将转换后的两个数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图中的对应位置。
[0094]在本实施例中,根据融合公式Colortarget= aSrc*ColorSrc+( l-aSrc)*Colordst可知,如果像素块中每个像素点的alpha值均为O,最终的融合结果为目标贴图中的对应位置的颜色数据保持不变。如果像素块中每个像素点的alpha值均为I,最终的融合结果为目标贴图中的对应位置的颜色数据均被该像素块中的颜色数据所替换。如果像素块中每个像素点的alpha值不全为I或不全为0,才需要将每个像素点代入融合公式进行计算,得到最终的融合效果。在装备贴图中,大部分的DXT5格式数据的像素块都是镂空(alpha值全为O)或实心(alpha值全为I),故本发明在进行贴图处理时,以16个像素点即一个像素块为单位进行处理,最大限度地降低了贴图文件在DXT5格式和ARGB8888格式之间的两次转换所带来的消耗,而且与现有技术逐个像素点进行处理的方法相比,本发明具有更高的处理效率。
[0095]步骤103:当源贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
[0096]由上可见,本发明实施例提供的一种基于alpha融合的贴图处理方法,在与目标贴图进行alpha融合时,通过对源贴图文件中的每个像素块中每个像素点的alpha值进行判断,当所有像素点的alpha值均为O时,使目标贴图中的对应位置的颜色数据保持不变;当所有像素点的alpha值均为I时,将该像素块的DXT5格式数据中的颜色数据拷贝至目标贴图中的对应位置;当所有像素点的alpha值不全为O或不全为I时,将该像素块和目标贴图中的对应位置的颜色数据提取出来,分别转换为ARGB8888格式的数据进行alpha融合,再将融合后的颜色数据压缩回DXT5格式的数据,输出到目标贴图的对应位置;当源贴图文件中的每一个像素块均被处理完毕后,获得alpha融合后的目标贴图。相比于现有技术将源贴图文件和目标贴图中的所有像素块由DXT5格式转换为ARGB8888格式后,再进行alpha融合,融合时以每一个像素点作为单位,本发明技术方案以整个像素块为处理单位,节省了数据转换的次数,减少了 DXT5格式像素块的解压消耗,提高了 alpha融合的效率。
[0097]实施例2
[0098]参见图11,图11为本发明提供的贴图处理方法的另一种实施例的流程示意图。其主要包括步骤201至步骤203,具体如下:
[0099]步骤201:获取用于与目标贴图进行alpha融合的中间贴图文件;其中,中间贴图文件记载了源贴图中的每一个像素块的位置信息、属性和颜色数据。
[0100]步骤202:根据中间贴图文件中的每一个像素块的位置信息,依次读取所述每一个像素块的属性和颜色数据,对目标贴图中的对应位置进行贴图处理。
[0101]在本实施例中,步骤202包括:
[0102]当所读取的像素块的属性为镂空像素块时,使目标贴图中的对应位置的颜色数据保持不变;其中,镂空像素块的颜色数据为空。
[0103]当所读取的像素块的属性为实心像素块时,将像素块的颜色数据拷贝至目标贴图中的对应位置;其中,实心像素块的颜色数据为DXT5格式的数据。
[0104]当所读取的像素块的属性为待融合像素块时,将目标贴图中的对应位置的颜色数据转换为ARGB8888格式的数据,并与待融合像素块的颜色数据进行alpha融合,将融合后的颜色数据压缩回DXT5格式的数据,再输出到目标贴图中的对应位置;其中,待融合像素块的颜色数据为ARGB8888格式的数据。
[0105]步骤203:当中间贴图文件中的每一个像素块均被读取且处理完毕后,获得alpha融合后的目标贴图。
[0106]本实施例与实施例1的区别在于,本实施例将源贴图文件转换为中间贴图文件(简称为PTF,Processed Texture File),该转换步骤在游戏离线预处理完成。离线预处理是在游戏发布前对资源的一个预处理阶段,目的在于对将要发布的资源进行一定的处理,以便更好地被游戏使用,因为不涉及到游戏的实时运行成本,所以本阶段对资源的处理并无硬性要求。本实施例对中间贴图文件与目标贴图进行alpha融合,同样提高了alpha融合的处理效率。
[0107]作为本实施例的一种举例,参见图12,图12是本发明提供的基于alpha融合的贴图处理方法的又一种实施例的流程示意图。在步骤201之前,还包括步骤301至303,其主要步骤流程如下:
[0108]步骤301:获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和alpha值。
[0109]步骤302:创建一个中间贴图文件,根据源贴图文件中每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据进行转换,并写入到中间贴图文件中。
[0110]在本举例中,步骤302具体为:
[0111]当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,将DXT5格式数据所对应的像素块的属性确定为镂空像素块,并将镂空像素块的颜色数据配置为空,再将镂空像素块的位置信息、属性和颜色数据写入到中间贴图文件。
[0112]当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件。
[0113]当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式的数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到中间贴图文件。
[0114]步骤303:对源贴图文件的每一个像素块进行转换后,获得记载了源贴图中的每一个像素块的位置信息、属性和颜色数据的中间贴图文件。
[0115]作为本实施例的一种举例,本发明提供了另一种实现方式,本实现方式与图12的区别在于,步骤302包括:
[0116]当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,将DXT5格式数据所对应的第i个像素块的属性确定为镂空像素块,并记录第i个像素块的位置信息;若下一个读取的DXT5格式数据所对应的像素块不为镂空像素块,则将第i个像素块的颜色数据配置为空,再将第i个像素块的位置信息、属性和颜色数据写入到中间贴图文件;若后续读取的N个连续的DXT5格式数据所对应的像素块均被确定为镂空像素块,则将第i个像素块及后续的N个连续像素块的颜色数据配置为空,再将第i个像素块的位置信息、后续连续镂空像素块的个数N、属性及颜色数据写入到中间贴图文件。
[0117]当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将DXT5格式数据所对应的像素块的属性确定为实心像素块,并将DXT5格式数据中的颜色数据提取出来,直接作为实心像素块的颜色数据,再将实心像素块的位置信息、属性和颜色数据写入到中间贴图文件。
[0118]当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将DXT5格式数据所对应的像素块的属性确定为待融合像素块,并将DXT5格式数据中的颜色数据提取出来,转换为ARGB8888格式数据后,再作为待融合像素块的颜色数据,最后将待融合像素块的位置信息、属性和颜色数据写入到所述中间贴图文件。
[0119]在本举例中,中间贴图文件是根据源贴图文件进行转换的,转换时先获取相应的源贴图文件,在创建一个空的中间贴图文件。该中间贴图文件除了包含上述步骤所貌似的信息外,还记载了其自身的标志位、源贴图文件的宽和高(以所有像素点为单位)以及整个文件的长度。因为中间贴图文件的内容会根据源贴图文件的不同而不同,而且由于DXT5格式与ARGB8888分别所对应的字节并不相同,中间贴图文件的实际长度会受到源贴图文件中镂空像素块、实心像素块和待融合像素块的个数所影响,因此只能在所有像素块均被转换后才能获知中间贴图文件的实际长度。所以在转换时,这个字段会先输出一个占位符,在整个文件转换完成后,再将实际长度输出到该占位符所在的位置。
[0120]在本举例中,中间贴图文件对于镂空像素块采用了压缩存储的方法,在读取到第i个像素块为镂空像素块时,记录第i个像素块的位置信息。若下一个读取的像素块不为镂空像素块,则将第一个像素块的颜色数据配置为空,再将第i个像素块的位置信息、属性和颜色数据写入到中间贴图文件中。若后续读取的N个连续的像素块均为镂空像素块,则将第i个像素块和N个连续像素块的颜色数据配置为空,再将第i个像素块的位置信息、连续个数N、属性及颜色数据写入中间贴图文件中。在贴图处理时,根据第i个像素块的位置信息和连续个数N,确定镂空像素块的个数,使该部分的镂空像素块在目标贴图中的对应位置的颜色数据保持不变,不仅压缩了中间贴图文件的大小,还进一步提高贴图处理的效率。
[0121]在本举例中,中间贴图文件中记载的像素块的位置信息可以但不限于,为像素块相对于源贴图中的第一个像素块的索引偏移。
[0122]由上可见,本发明实施例提供了一种基于alpha融合的贴图处理方法,该方法将源贴图文件预先转换为中间贴图文件,该转换过程可以在离线预处理完成,将数据转换的开销转移至离线的预处理阶段,降低了本地设备的硬件需求,提高了 alpha融合的效率。
[0123]进一步的,本发明中的中间贴图文件对源贴图文件进行压缩,减少了所占用的磁盘空间,相比于加载源贴图文件,本发明的中间贴图文件具有更快的加载速度,进一步提高alpha融合的效率。
[0124]实施例3
[0125]参见图13,图13是本发明提供的贴图处理装置的一种实施例的结构示意图。如图13所示,该装置主要包括:
[0126]第一获取单元401,用于获取用于与目标贴图进行alpha融合的源贴图文件;其中,源贴图文件包含源贴图中的每一个像素块的DXT5格式数据和位置信息;DXT5格式数据包含像素块的每一个像素点的颜色数据和a Ipha值。
[0127]第一贴图处理单元402,用于根据每一个像素块的位置信息,依次读取每一个像素块的DXT5格式数据,对目标贴图中的对应位置进行贴图处理。
[0128]和,第一输出单元403,用于当源贴图文件中的每一个像素块均被读取且处理完毕后,输出alpha融合后的目标贴图。
[0129]其中,第一贴图处理单元402包括:第一处理子单元4021、第二处理子单元4022和第三处理子单元4023。
[0130]第一处理子单元4021,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为O时,使目标贴图中的对应位置的颜色数据保持不变。
[0131]第二处理子单元4022,用于当所读取的DXT5格式数据中的每一个像素点的alpha值均为I时,将DXT5格式数据中的每一个像素点的颜色数据拷贝至目标贴图中的对应位置。
[0132]第三处理子单元4023,用于当所读取的DXT5格式数据中的每一个像素点的alpha值不全为O或不全为I时,将DXT5格式数据和目标贴图中的对应位置的颜色数据,分别转换为ARGB8888格式的数据,并将转
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1