原文网址:https://www.youyong.top/article/11599ec8fd596
之前写过一个关于2D MMO角色动画优化的分享,有些人问到其中的压缩纹理要怎么做。其实实施起来非常简单,很多看过Cocos2d-x的人都知道怎么做,这篇分享主要针对对这块不是太了解的新同学。
原文网址:https://www.youyong.top/article/11599ec8fd596
之前写过一个关于2D MMO角色动画优化的分享,有些人问到其中的压缩纹理要怎么做。其实实施起来非常简单,很多看过Cocos2d-x的人都知道怎么做,这篇分享主要针对对这块不是太了解的新同学。
原文网址:https://www.youyong.top/article/11599ec8fd596
感谢『社区 ID: colinsusie』友情提供
http://forum.cocos.com/t/creator/47206
我假定对这篇分享有兴趣的同学不太知道压缩纹理是什么,可以先参考pvr, etc等相关知识。
手游中使用压缩纹理是很常见的需求,通常:
IOS会使用PVR来压缩,IOS要求图片高宽必须是2的幂,且必须是正方形。
Android会使用ETC1,由于ETC1不能支持透明通道,对于有透明的图,一般也会用ETC1+Alpha的做法。
使用工具
生成压缩纹理当然是使用现成的IOS工具:PVRTexTool,在 这里下载。
具体的使用方法可能要参考工具的文档,下面是一个简单的例子:
其中$(infile)和$(outfile)分别是原图片名和压缩后的图片名,如果图片没有透明,PVRTC1_4换成PVRTC1_4_RGB。
Android
使用Mali Texture Compression Tool,在这里下载。
这个工具可以生成ETC1和带透明通道的ETC1
带透明通道的ETC1其实就是将图片和遮罩合成一张图,最终的图片高度是原始图片的2倍。而要正确显示图片,则需要用Shader
把遮罩部分作为Alpha值加到原图上。Shader如下所示:
兼容Web和Native
现在知道如何生成和使用压缩纹理了,要怎么整合进Creator呢?
在开发阶段,我们还是正常使用png, jpg,这样在浏览器和模拟器都能正常显示。
在构建阶段,分成三步走:
用Creator命令行生成原生工程。
调用我们自己的脚本,将工程中的图片转成压缩纹理,但要注意转换后的图片名不要变,比如a.jpg转换后仍然叫a.jpg,只不过内容已经是压缩纹理了。
用Creator命令行编译安装包。
这样打出来的包,在手机中是可以正常显示的,原因是Cocos2d-x并不是以文件后缀来判断类型的,它是根据文件内容的头几个字节来判断的。
而Cocos2d-x其实还支持gzip压缩格式的,也就是我们将图片转换成pvr或etc1后,还可以再压缩成gzip,最终依然可以正常解析出来。但由于文件体积小了很多,加载速度会变快。
要完成这样的构建流程,你可能需要用一个脚本来实现自动化,我比较推荐python,它的库实在太强大和方便了。
另外,并不是所有的图片都适合用压缩纹理,比如UI图片压缩后会有明显的锯齿,像场景, 特效这类就比较适合。
总之,在使用压缩纹理之前,你可能需要对图片类型进行规范化。此外,有用户提出:不是一般都用pvr.czz zlib吗?是否有测试过gzip和zlib哪个更快?这边做出解释:一样快。因为gzip用的算法和zlib是一样的,只是gzip加了一个文件头,表示这个文件有多大。
我使用的是官网最新的Cocos Creator v1.5.1,这个版本修复了很多上个版本遗留的bug,体验感真的非常好,还未升级的可考虑下载更新。
共 0 条留言
教程:Cocos Creator如何给资源打上MD5版本号?
教程|如何在Cocos Creator v1.5中集成 Pomelo?
看 Nantas手把手为你详解 v1.5资源导入导出工作流程
教程|如何在Cocos Creator 中完美使用 protobuf.js
Cocos Creator 开源游戏集合贴 (源码 视频 在线统统有)
iPhone X 跌破发行价,苏宁200亿入股恒大 | 财经日日评
资深黄牛现身说法:iPhone X价格秒变不停,就像炒股一样
低内存占用、无广告、功能强大又唯美的本地播放器 - Potplayer
从零开始手把手带你全面认识 网易的游戏服务端框架 Pomelo
Cocos Creator v1.6支持Camera剔除功能!
手机扫一扫
分享文章