当前位置:首页 > 芯闻号 > 充电吧
[导读]在深圳Cocos沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在在论坛上第一次看到Colin的团队用CocosCreator制作的《热血暗黑》时就被深深地震撼到了!更为重要的是,Colin将

在深圳Cocos沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在在论坛上第一次看到Colin的团队用CocosCreator制作的《热血暗黑》时就被深深地震撼到了!更为重要的是,Colin将他的技术心得和宝贵开发经验写成文字,每一篇分享都是满满的干活,而且幸运的是Shawn得到Colin的授权许可,将他的文章散播到奎特尔星球,与你一起欣赏一起成长!


Creator使用压缩纹理
1 概述


之前写过一个关于2DMMO优化的分享,有些人问到其中的压缩纹理要怎么做。其实实施起来很简单,很多看过cocos2dx的人都知道怎么做,这篇分享主要针对对这块不是太了解的新同学。


我假定对这篇分享有兴趣的同学都知道压缩纹理是什么,有什么好处和坏处。如果不大了解,可以先看一下pvr, etc相关的知识。在手游中使用压缩纹理是很常见的需求,通常:

IOS会使用PVR来压缩,IOS要求图片高宽必须是2的幂,且必须是正方形。

Android会使用ETC1,由于ETC1不能支持透明通道,对于有透明的图,一般也会用ETC1+Alpha的做法。

2使用工具


生成压缩纹理当然是使用现成的工具了:


IOS

使用PVRTexTool,在这里下载(https://community.imgtec.com/developers/powervr/tools/pvrtextool/),具体的使用方法可能要参考工具的文档,下面是一个简单的例子:


PVRTexToolCLI -i $(infile) -o $(outfile) -square + -pot + -q pvrtcbest -f PVRTC1_4,UBN,lRGB


其中$(infile)和$(outfile)分别是原图片名和压缩后的图片名,如果图片没有透明,PVRTC1_4换成PVRTC1_4_RGB。


Android


使用Mali Texture Compression Tool,在这里下载(https://developer.arm.com/products/software-development-tools/graphics-development-tools/mali-texture-compression-tool/downloads),这个工具可以生成ETC1和带透明通道的ETC1。

# 原始格式
etcpack ${infile} ${outfile} -c etc1
# 带透明通道
etcpack ${infile} ${outfile} -c etc1 -aa

带透明通道的ETC1其实就是将图片和遮罩合成一张图,最终的图片高度是原始图片的2倍。而要正确显示图片,则需要用Shader把遮罩部分作为Alpha值加到原图上。Shader如下所示:


attribute vec4 a_position; 
attribute vec2 a_texCoord; 
attribute vec4 a_color;  
varying vec4 v_fragmentColor; 
varying vec2 v_texCoord; 
varying vec2 v_alphaCoord;
void main() 
{ 
    gl_Position = CC_PMatrix * a_position;
    v_fragmentColor = a_color; 
    v_texCoord = a_texCoord; 
}

precision lowp float;
varying vec4 v_fragmentColor; 
varying vec2 v_texCoord; 
varying vec2 v_alphaCoord;
void main() 
{ 
    vec4 v4Colour = texture2D(CC_Texture0, v_texCoord);
    v4Colour.a = texture2D(CC_Texture0, vec2(0.0, 0.5) + v_texCoord).r;
    gl_FragColor = v_fragmentColor * v4Colour; 
}

3 兼容Web和Native


现在知道如何生成和使用压缩纹理了,要怎么整合进Creator呢?


在开发阶段,我们还是正常使用png, jpg,这样在浏览器和模拟器都能正常显示。


在构建阶段,分成三步走:

用Creator命令行生成原生工程。

调用我们自己的脚本,将工程中的图片转成压缩纹理,但要注意转换后的图片名不要变,比如a.jpg转换后仍然叫a.jpg,只不过内容已经是压缩纹理了。

用Creator命令行编译安装包。



这样打出来的包,在手机中是可以正常显示的,原因是cocos-2dx并不是以文件后缀来判断类型的,它是根据文件内容的头几个字节来判断的。


而cocos-2dx其实还支持gzip压缩格式的,也就是我们将图片转换成pvr或etc1后,还可以再压缩成gzip,最终还是可以正常解析出来。但由于文件大小小了很多,加载速度会变快。


要完成这样的构建流程,你可能需要用一个脚本来实现自动化,我比较推荐python,它的库实在太强大和方便了。


另外,并不是所有的图片都适合用压缩纹理,比如UI图片压缩后会有明显的锯齿,像场景, 特效这类就比较适合。总之,在使用压缩纹理之前,你可能需要对图片类型进行一些规范化。



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,台积电在近日举行的 2024 年欧洲技术论坛上再次确认,其德国晶圆厂项目定于今年四季度开始建设,预估 2027 年投产。

关键字: 台积电 晶圆厂

业内消息,日前美国移动、视频和人工智能技术公司InterDigital宣布,由于联想(包括摩托罗拉移动)侵犯其4G和5G设备专利,已获得德国慕尼黑地区法院对于联想的禁令。这也意味着联想支持4G/5G网络的设备(包含手机、...

关键字: 联想 4G 5G

业内消息,特斯拉近日又损失了一位自动驾驶领域的顶尖 AI 工程师 ——Paril Jain,Jain 此前担任特斯拉人工智能团队的“规划、模仿学习和强化学习”部门的技术负责人。他的离职正值特斯拉大规模裁员以及员工士气低迷...

关键字: 自动驾驶 特斯拉 AI工程师

业内消息,近日求职平台脉脉高聘人才智库发布的《2024春招高薪职业和人才洞察》报告显示,抖音、亚⻢逊、大疆霸榜高薪公司,岗位平均薪资超5万元(月薪)。

关键字: 抖音 华为 亚马逊 大疆 商汤科技

业内消息,日前微软官方宣布与量子计算公司Quantinuum的深度合作取得了显著成果。在实验中成功完成了多达14000次无错误的量子计算操作,这一成就不仅刷新了量子计算错误率的纪录,而且将错误率降低了800倍,为量子计算...

关键字: 微软 量子计算 突破

国际货币基金组织(IMF)总裁克里斯塔利娜・格奥尔基耶娃(Kristalina Georgieva)日前表示,AI正在像“海啸”一样冲击着全球劳动力市场。

关键字: IMF AI 劳动力市场 GPT-4o

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

深圳2024年5月15日 /美通社/ -- 近日,国际公认的测试、检验和认证机构SGS(以下简称为"SGS")为雅特力科技颁发AEC-Q100认证证书以及IEC 60730认证证书。获得AEC-Q10...

关键字: AEC-Q100 力科 AT32 测试

广州2024年5月16日 /美通社/ -- 为全面推动昆明市公共领域车辆电动化,在昆明市发展和改革委员会的牵头组织下,昆明配售电有限公司、昆明低碳投资集团有限公司、昆明空投城...

关键字: 电动化 电站 新能源汽车 电网

借助面板,用户在思考和创作时只需轻捏Apple Pencil Pro,即可调用基本工具和命令,避免因繁琐的操作分散注意力 适用于钢笔的动态墨水可根据Apple Pencil Pro的旋转调节墨水流量,让数字化...

关键字: APPLE PENCIL NOTES GO
关闭
关闭