手机游戏开发纹理图片优化心得
来源:互联网 发布:手机下载软件赚钱 编辑:程序博客网 时间:2024/04/29 18:57
手机游戏开发纹理图片优化心得
之前写过一些纹理与内存优化的文章,本质说的就是图片格式的选用问题。这里记录一些最近开发中关于图片优化的经验和心得。
1、纹理压缩。 就像windows下的dds图片一样,使用纹理压缩可以极大的减少图片加载时间(意味着不会有图片加载时的卡顿),内存消耗(以pvrtc4为例,内存直接减少到原来的八分之一),和游戏渲染性能。 ios下毫无疑问是pvr了(pvrtc4) ,android下比较变态,显卡不同,支持的纹理压缩格式也不相同,一般来说etc1的格式(pkm或ktx扩展名)是opengles2.0均支持的格式。 但是这个仅仅是理论上支持,永远不要高估山寨机的性能,在某些山寨机(或者是联想这样的准山寨机)etc1的图片也无法正常显示,甚至是会崩溃。 所以android下不推荐使用纹理压缩格式。这样比较保险点。最新测试发现,原来是部分显卡不支持非2的整次幂的etc1图片,部分显卡是支持的。所以保险起见,所有的etc1图片需要是2的整次幂。
2、关于纹理内存优化没有太多可说的了,无非就是减少像素位数(RGBA888-->RGB565),减少图片大小,合理使用图片(即使释放资源)
3、图片加载速度也是比较关键的一点。 能使用纹理压缩固然很好,不能使用的话,有两个解决方法,使用异步加载(可以解决卡顿的问题),合理预加载图片。
4、图片体积,这个关系到最终安装包的大小。虽然现在手游的安装包越来越大,但是小一些总是好事。 同样,ios下使用pvrtc4的图片,一些颜色过渡明显的,使用png图片,如果没有半透明则使用jpg图片。
android下不考虑使用压缩纹理。 则颜色位数少的使用png8的图片格式,颜色位数较多的如果非半透明使用jpg图片,如果含有半透明使用原始png图片(一般来说这种图片不会很多)。 总体来说,使用png8和jpg来减少图片体积大小。 同样图片体积小了也有助于提高加载速度。
5、关于webp格式。这个我之前测试过,不知道现在有没有改进。 虽然他支持半透明,并且拥有比jpg更优的压缩比,但是由于纯cpu解压,所以加载速度非常悲剧。暂不考虑
6、关于上文提到的png8的格式,这个是一个调色板格式,也就是说如果颜色位数小于256的话,图片就不会失真。这个不要用photoshop的转换,那个算法很挫,效果很糟糕。推荐一个在线工具和一个命令行工具进行批处理。 使用命令行工具转换的png8绝大多数情况与原图一直,除非半透明渐变过渡非常强的图,这样会有明显的波纹。
在线版本 http://tinypng.org/
命令行版本 pngquant, 使用方法很简单 pngquant.exe --force --verbose --ext .png --ordered --speed=1 --quality=50-90 xxxx.png
其中--ext指定输出后缀,直接指定.png就是覆盖原文件
7、关于jpg的压缩,jpg图片虽然很小了,但是还是可以进一步压缩的。使用Image Optimizer工具可以使图片进一步减少(10%~60%)
8、使用2d骨骼动画甚至是3d动画,可以有效减少纹理所占的内存和加载消耗,虽然会增加一些cpu运算的消耗,但是手游应该不会出现同屏多少模型的情况。 尤其是一些全屏光效,拿2d图片帧几乎无法处理,但是3d光效就可以轻易搞定。
- 手机游戏开发纹理图片优化心得
- 手机游戏开发纹理图片优化心得
- 手机游戏开发纹理图片优化心得
- Unity游戏开发图片纹理压缩方案
- Unity游戏开发图片纹理压缩方案
- Unity游戏开发图片纹理压缩方案
- Unity游戏开发图片纹理压缩方案
- Unity游戏开发图片纹理压缩方案
- 开发手机游戏的一点心得(转贴)
- 手机游戏开发中如何选择适合的纹理格式
- 干货:Unity游戏开发图片纹理压缩方案
- 干货:Unity游戏开发图片纹理压缩方案
- 开发手机游戏的一点心得(一)
- 开发手机游戏的一点心得(二)
- JB2006工具做手机游戏开发自己的心得
- 手机游戏优化技巧
- 手机游戏内存优化
- 手机游戏开发如何选择和优化图像素材?
- 6月6是那一天呢??
- 原码反码补码
- HTTP之常见状态码
- 一个全局变量的编译错误引出的思考
- 工作的时候大家有没有很累呢
- 手机游戏开发纹理图片优化心得
- Java jni 动态库 so
- spring的基础
- NSXMLParser解析xml格式的数据
- 【笔记】2013-08
- JAVA的反射机制(reflect)
- hibernate 无主键表映射
- emacs自动补全插件auto-complet和yasnippet,安装、配置和扩展
- spring+jdbc