一种压缩纹理的方法及装置的制造方法_2

文档序号:9930111阅读:来源:国知局
的颜色信息的第一张 图片和仅具有原始图片的阿尔法信息的第二张图片。
[0049] 其中,通过将原始图片中的每个像素的阿尔法信息去除,得到第一张图片,其中, 第一张图片的每个像素仅具有原始图片的相应像素的颜色信息,将该颜色信息作为第一颜 色信息。
[0050] 其中,对原始图片中的每个像素的阿尔法信息进行提取,将所提取的每个像素的 阿尔法信息作为每个像素的第二颜色信息,并生成仅具有第二颜色信息的第二张图片。
[0051] 例如,原始图片的某个像素包括颜色信息和阿尔法信息。其中,颜色信息包括红色 值R: 50,绿色值G: 100,蓝色值B: 150;阿尔法信息A: 200。通过对原始图片进行转换,第一张 图片中的该像素的第一颜色信息包括红色值R: 50,绿色值G: 100,蓝色值B: 150;第二张图片 中的该像素的第二颜色信息包括红色值R:200,绿色值G:0,蓝色值B:0。该例中,第二张图片 中使用红色值记录原始图片的阿尔法信息,同样地,也可W使用绿色值或蓝色值记录原始 图片中的阿尔法信息,也就是说,第二张图片的每个像素的某一颜色值是原始图片的相应 像素的阿尔法值。
[0052] 步骤S102:将步骤SlOl得到的第一张图片和第二张图片进行拼接,得到拼接图片。
[0053] 由于第二张图片中的颜色信息用来记录原始图片的阿尔法信息,因此步骤S102中 得到的拼接图片即包含原始图片的颜色信息,又包含原始图片的阿尔法信息。
[0054] 步骤S103:对步骤S102得到的拼接图片进行纹理压缩处理,得到压缩纹理图片,并 生成对应于该压缩纹理图片的纹理压缩文件。
[0055] 例如,可W采用现有的ETCl标准对所得到的拼接图片进行纹理压缩处理,得到压 缩纹理图片,在进行纹理压缩处理期间,进一步得到压缩方式信息。
[0056] 进一步地,纹理压缩文件通过将文件头和数据块进行组合而形成。其中,文件头中 包含数据块数量信息;数据块包含纹理信息和压缩方式信息。具体地说,通过对步骤S102得 到的拼接图片中的每个像素的颜色信息进行提取,得到包括第一颜色信息和第二颜色信息 的纹理信息,将包括压缩方式信息和纹理信息的信息进行组合,得到数据块;根据所得到的 数据块的数量,生成包括数据块数量信息的文件头;最后将文件头和数据块进行组合,形成 对应于压缩纹理图片的纹理压缩文件。
[0057] 步骤S104:利用所生成的纹理压缩文件,对压缩纹理图片进行解压和还原。
[0058] 其中,首先利用纹理压缩文件中相应数据块内的压缩方式信息,调用相应的解压 模块对待解压的压缩纹理图片进行解压处理,得到解压后的图片。然后将纹理压缩文件中 相应数据块内的相应像素的第二颜色信息转换为阿尔法信息,并利用纹理压缩文件中相应 数据块内的第一颜色信息和转换得到的阿尔法信息,对解压得到的图片进行还原,得到原 始图片。
[0059] 与Mali GPU纹理压缩工具提供的转换功能相比,本发明生成的纹理压缩文件所包 含的信息能够完全适用于蛇ret化gine等各类引擎的使用,即支持该文件的正常擅染。
[0060] 图2是本发明实施例提供的压缩纹理的装置框图,如图2所示,装置包括转换模块、 合成模块、压缩模块和还原模块。
[0061] 转换模块用于通过对原始图片进行转换,得到仅具有原始图片的颜色信息的第一 张图片和仅具有原始图片的阿尔法信息的第二张图片。进一步说,转换模块实际上是将原 始图片转换为仅具有原始图片的颜色信息(即去除原始图片的每个像素的阿尔法信息)的 第一张图片和仅具有原始图片的阿尔法信息(即去除原始图片的每个像素的颜色信息)的 第二张图片。其中,第一张图片中的颜色信息为原始图片的颜色信息,第二张图片的颜色信 息用于记录原始图片的阿尔法信息。
[0062] 合成模块用于将第一张图片和第二张图片进行拼接,得到拼接图片。
[0063] 压缩模块用于对拼接图片进行纹理压缩处理,得到压缩纹理图片,在进行纹理压 缩处理期间,进一步得到压缩方式信息,并生成对应于压缩纹理图片的纹理压缩文件,其 中,纹理压缩文件通过将文件头和数据块进行组合而形成。其中,文件头中包含数据块数量 信息,数据块包含纹理信息和压缩方式信息,纹理信息包括第一颜色信息和第二颜色信息。
[0064] 还原模块用于利用所生成的纹理压缩文件,对压缩纹理图片进行解压和还原。具 体地说,还原模块首先利用纹理压缩文件中相应数据块内的压缩方式信息,调用相应的解 压模块对待解压的压缩纹理图片进行解压处理,得到解压后的图片,然后将纹理压缩文件 中相应数据块内的第二颜色信息转换为阿尔法信息,并利用纹理压缩文件中相应数据块内 的第一颜色信息和转换得到的阿尔法信息,对解压得到的图片进行还原,得到原始图片。
[0065] 本发明针对现有ETCl标准丢失了原始图片的阿尔法信息,而实际使用中,图片大 都带有阿尔法信息的问题,提供了一种具有阿尔法信息的纹理压缩格式。本发明提供的纹 理压缩格式是基于EGTl标准的扩展,解决了 EGCl标准没有阿尔法信息的缺陷。
[0066] 第一实施例
[0067] 图3(a)是本发明第一实施例提供的原始图片示意图,采用ETCl标准,对图3(a)所 示的原始图片进行纹理压缩处理,得到图3(b)所示的没有阿尔法(W下称为Al地a)信息的 ETCl图片的显示效果。采用本实施例提供的Egret纹理压缩标准的图片显示效果如图3(c) 所示,其中,图3(c)的上半部为不带有Al地a信息的原图(即拼接前的第一张图片),下半部 (即拼接前的第二张图片)的每个像素的红色值为每个上半部对应像素的Al地a信息。比如: 纯红色(0XFF0000:R:255,G:0,B:0),表示上半部分对应像素的Al地a值为255,不透明。如果 是0X7f OOOO (R:127,G:0,B:0)表示上半部对应像素的Al地a值为127,为半透明。
[0068] 通过修改擅染方式可W将Egret纹理压缩格式的图片还原为图3(a)所示的原始图 片的效果。例如,图3 (C)上半部的某一像素 a的颜色信息包括红色值R: 50,绿色值G: 100,蓝 色值B: 150;图3(C)下半部的相应位置的像素的颜色信息包括红色值R: 200,绿色值G: 0,蓝 色值B:0。此时,首先根据图3(c)下半部的相应位置的像素的颜色信息,得到像素 a的Al地a 值A: 200,然后将像素 a的颜色信息和Alpha信息,将图3(C)还原为图3(a)。
[0069] 本实施例的Egret纹理压缩文件(即纹理压缩文件)由文件头化ead)和多个数据块 (block)组成。
[0070] 1、文件头共7个字节,用于说明文件的基本信息。
[0071] a.前头5个字节是文字:egret,表示该文件是蛇ret纹理压缩文件。
[0072] b.第6个字节是信息字节,用于标示文件类型和其它信息。其中,高4位标示文件类 型,低4位标示其它信息。
[0073] C.第7个字节,用于标示后面的数据块数量。
[0074] 2.、数据块(block)
[0075] a.第一个字节是数据块标签。
[0076] b.第二个字节是块数据的压缩方式。
[0077] C.第3至6字节,共4个字节标示一个无符号整形数,用于说明数据块的长度(Ien)。
[0078] d.余下Ien个字节是块数据。.
[0079] 本实施例的Egret纹理压缩标准基于ETCUETC1是把原始图片转换为和原图宽高 相等的ETCl格式的图片(.pkm)文件。Egret纹理压缩标准是把原图
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1