内存优化二:贴图压缩

作者: 归零者 分类: Unity3D优化 发布时间: 2018-09-01 09:57

内存优化二:贴图压缩

 代码层面的优化,很大层面上都不及贴图的优化,有时候改一张图就帮你生了大几M的内存。

1.    巧妙通过调整纹理资源,来调整图的大小。

            比如:通过9宫格,图片压缩网站进行压缩。

2.    压缩纹理。

            IOS平台使用PVRT压缩纹理。 Android平台使用ETC1格式压缩。均可以减至1/4的内存大小。优化非常明显

            目前主流的Android机型都支持ETC1格式压缩。但ETC1只能支持非Alpha通道的图片压缩,所以一般把Alpha通道图分离出来

绘制到GPU显存时候,a值从Alpha图里获取,无Alpha通道的图就可以使用ETC1压缩。

            而ETC2以上的格式压缩虽然支持含Alpha通道的图片,但是支持的机型还是比较少。目前不推荐使用。

            未使用ETC1压缩前的内存占用大小1024*1024的png图占用10.7M(包含了Editor中的内存占用,以及mip map内存占用)。

            mipMap是摄像机离得远近用不同的图片,3D游戏中用内存换性能的一种有效方式。它会将大图变成若干小图,存储在内存中,当摄像机离的比较远的时候,只需使用小图。

            UI,2D场景可以把Texure这个设置去掉。

这样实际游戏中未压缩纹理1024×1024的图在内存中占用是4M。(Unity Profiler 下看应该是8M)

使用ETC1压缩后,场景图片一张大小只有1.3M ,加上通道图2.6M。几乎是原来的1/4.甚至文件的大小也小了1/4.

3.    通过减色的方式减少图片大小。

                很多UI其实使用的色彩很少,用不到256色,这类图片就可以进行减色压缩。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

说点什么

avatar
  Subscribe  
提醒
跳至工具栏