不得已才能考虑缩小尺寸

遇到了一个很蛋疼的问题

美术外包那边根据我门策划的需求出了一个帧动画特效

每帧尺寸为 920x1280,合计有 14 帧,

外包那里根本就没考虑过程序这里的感受,每帧都留了很多白

如果是地地道道的空白,我所使用的打包工具就能自动将其裁剪掉

但讨嫌的是,这个白还不是地地道道的空白,它包含了一些噪点纹路,

阻碍的打包工具自动执行裁减空白的功能

好,我只能自己手动去处理了,马勒戈壁的

第一想法是偷懒,用 ps 机械化地操作一遍吧

好的,说干就干,但弄完第一张我就没心情弄第二张了,

真心挺麻烦,特别是保存时的弹窗,令人心生厌烦

只有回归本行了,于是写了个 java 小程序,执行自动裁减的操作

图简单快捷,都裁减成了相同的尺寸:920x920

裁成正方形是有理由的,因为我计划将这些图片缩放到 512x512 大小

正好是 2 的 n 次幂,这样的话,弄成 pvrtc 就挺方便了

ok,至此打包起来就行了,512x512 每帧,2048x2048 尺寸的纹理集能容纳多达 16 张

我选择使用 pvrtc4 的纹理格式,这样一来,仅需占用 2MB 的机器内存

打包完毕输出为成品素材,放到工程中一跑,结果发现效果相当的渣,边缘很粗糙

好吧,只有将纹理格式由 pvrtc4 换成 rgba4444 试试看了

第二跑,依然很渣,至此我有理由推测是因为在程序中将素材放大为了两倍所致

好吧,该怎么办?主流 ios 设备支持的最大纹理尺寸就是 2048x2048 了

要在程序中不执行放大的操作,就不能使用经缩小过的素材了,也就是说,只能使用原尺寸 920x920

这样的话,要将帧数减少到 8 帧,以方便容纳到两个纹理集中

说干就干,使用 pvrtc4 的纹理格式,输出了两张 2048x2048 的纹理集,

计算一下,将在程序运行时占用 4MB 的机器内存,跑了一下,效果比之前真心好了很多

由此得出结论:优化素材占用时,优先考虑更换像素格式,不得已时才能考虑缩小素材尺寸!

最后,计算一下此次优化带来的成效(如果我的计算方法没有问题的话):

优化之前:1024x2048x4x14=117440512(B)=112(MB)

优化之后:2048x2048x0.5x2=4(MB)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值