【UNITY填坑日记】unity图片资源优化神器dither4444

用过UNITY的朋友们都应该知道,unity为了在运行时提升装载资源的速度,采用了单独的图片压缩方式。而并不是我们平时所接触的JPG、PNP等。

简单来说,UNITY资源最后打包出来的图片基本上会大大超出我们原文件大小。简而言之,图片资源大小和以下几点相关

  • 图片长宽大小
  • 图片是否是2的幂次方
  • 图片是否是正方形
  • 图片的压缩格式

我们以IOS平台为例子,unity提供了 DXT(4位和8位)、16BIT、32BIT(true color)几种压缩格式。经过实测,不带alpha(透明通道)的图片,使用DXT压缩可以达到理想效果。但若图片带alpha,使用DXT压缩则会在透明边缘出现非常模糊的现象,图片基本不可用。

这时候我们需要采用16BIT或者32BIT的压缩存储方式,但显而易见,存储开销和运行游戏时的内存开销将大大增加。

另外,unity提供的16色压缩算法还很“独特”的对颜色进行了“分层”,效果效果那是非常的渐变分明。。

(以下图片来自dither4444:https://github.com/keijiro/unity-dither4444

这里写图片描述
这里写图片描述

下图是转了16色的,在很多游戏场景里基本不可用。

下面我们的神器dither4444出场了,
这里写图片描述
这个是使用dither4444处理成16色的图片,能看得出来差别在哪吗?

其实原理很好理解,使用点阵的疏密来替代颜色的变化(在90年代的PC游戏里经常使用的效果)

这样我们能以损失较小图片品质的情况下,大大降低我们的资源大小。所以我们在不得已需要使用非DXT压缩格式时,可以考虑使用本工具对图片进行压缩。


附代码(以下代码是我改过dither4444的,将自动对指定目录的导入图片进行16BIT转换)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值