unity游戏性能优化 - 贴图优化

        在unity3d中贴图的内存消耗通常所占的比例比较搞,今天主要记录我所遇到的贴图优化及使用方面的问题。

        贴图的使用过程中通常会遇到贴图模糊毛糙难看的情况,这一般是我们用于显示GUI图片的时候出现,那么相应的处理办法就是将导入到unity中的图片的类型改为GUI,unity默认导入的格式都是texture,这样图片就会比较接近如正常效果了。

        另一种情况就是图片尺寸的要求要是2的幂次方,不然unity不会根据平台需要进行压缩,加大了程序尺寸,对于3d程序员来说,文理要求的本身也要是2的幂次方为最佳,提高性能。

        还有一种情况就是,图片尺寸的大小,我们知道一张1024*1024的图片是4M,所以我们在压缩图集的时候应该尽可能1024*1024或更小。


再来说一个关于pvr算法问题,例如:一张1024*1024的贴图和一张1024*512的贴图,我们通常会选择哪一张?答案是选1024*1024,至于pvr算法的问题我也不太懂,我看到一片文章有介绍pvr与png的内存占用提供大家参考。


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是可以识别的。

     PVRTC2 PVRTC4 是两种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

参考文章地址:http://blog.sina.com.cn/s/blog_6fbe210701015j7z.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值