现在的位置: 首页 > 综合 > 正文

[coco2d-x]pvr与png的内存占用

2013年09月08日 ⁄ 综合 ⁄ 共 904字 ⁄ 字号 评论关闭

http://blog.sina.com.cn/s/blog_6fbe210701015j7z.html

 

    Zwoptex生成的spritesheet除了可以导出png格式的图片外还有pvr格式。pvr格式是iOS的显示芯片可以直接读取的,不需要经过解析就能直接显示,所以渲染速度更快,更节省内存。

我特意在cocos2D 2.0 rc1版本做了一项测试:

   

一个空的cocos2D模版工程运行起来之后占用的内存大约是4MB。

    直接用CCSprite显示一张2048*1024的数据格式为RGBA565的PNG图片之后,内存占用达到了20MB。
    同样的情况下换成pvr格式之后,内存占用为16MB。也就是说png格式的图片占用了20-4=16MB,pvr格式的图片占用了16-4=12MB。节省了25%。
    Zwoptex还有一个选项叫做“ccz压缩”,选中之后图像的大小几乎可以减小一半。这样的文件格式成了:xxx.pvr.ccz,cocos2d是可以识别的。
    PVRTC2PVRTC4是两种pvr压缩的图像格式,他们都是pvr文件。这两种图像格式比普通图像有更快的加载速度和更小的内存占用。
PVRTC4:
Compressed format, 4 bits per pixel, ok image quality
PVRTC2:
Compressed format, 2 bits per pixel, poor image quality
一般pvr格式文件的图像格式有:
RGBA8888:
32-bit texture with alpha channel, best image quality
RGBA4444:
16-bit texture with alpha channel, good image quality
RGB565:
16-bit texture without alpha channel, good image quality but no alpha (transparency)
图像占用内存的公式是:numBytes
= width * height * bitsPerPixel / 8
也就是说2048*2048的RGBA8888占用内存16MB,而PVRTC4只占用2MB

抱歉!评论已关闭.