Unity中渐变图片压缩后渐变效果不好的解决办法(使用TexturePacker)

公司项目中美术使用大量渐变背景图,压缩后效果差,RGBA16不理想,RGBA32浪费效率。发现TexturePacker可添加图片抖动,为此做了工具。测试FloydSteinberg抖动算法效果满意,将图片放入input文件夹,执行对应脚本可输出处理后图片,多数图片问题可解决。

TexturePacker破解版教程及下载:https://blog.csdn.net/u013654125/article/details/80676715

前几天公司有个项目,由于美术做了很多背景图并且还大量的使用了渐变过度,导致压缩图片后效果非常差,而且换成RGBA16效果也不理想,如果用RGBA32那就太浪费效率了。后来发现TexturePacker具有添加图片抖动的方式,由于项目组使用了UGUI手动一个个设置这太麻烦了,所以就做了个工具。如下图所示,明显能看到RGBA16渐变的地方效果不好,但是添加了抖动同样RGBA16效果就挺好了。
在这里插入图片描述
如下图所示,我们测试了一下FloydSteinberg这种抖动算法效果还算满意
在这里插入图片描述
如下图所示, 将需要添加抖动的图片放入input文件夹下,然后执行 a.sh(mac下shell脚本) a.bat(win下批处理) 会自动将抖动过的图片输出到output文件夹中。
在这里插入图片描述
TexturePacker的安装见开头的链接,注意安装的目录就行了
a.sh

#!/bin/bash
 
project_path=$(cd `dirname $0`; pwd)
project_input="${project_path}/input"
project_output="${project_path}/output"
 
rm -rf "${project_output}"
 
mkdir "${project_output}"
 
texturePacker="/Applications/TexturePacker.app/Contents/MacOS/TexturePacker"
 
cd ${project_input} 
 
files=$(ls ${project_input})
for filename in $files
do
${texturePacker} "${project_input}/${filename}" --format spritesheet-only --texture-format png --opt RGBA4444 --dither-type FloydSteinberg  --trim-mode None --sheet "${project_output}/${filename}" 
done

a.bat

set project_path=%~dp0
 
set project_input=%project_path%\input
set project_output=%project_path%\output
 
set texturePacker="C:\Program Files\CodeAndWeb\TexturePacker\bin\TexturePacker.exe"
rd  /s /q %project_output%
md  %project_output%
 
for /R %project_input% %%f in (*.*) do (
  %texturePacker% %project_input%\%%~nxf --format spritesheet-only --texture-format png --opt RGBA4444 --dither-type FloydSteinberg  --trim-mode None --sheet %project_output%\%%~nxf 
)
pause

通过我们的测试,绝大部分图片都可以通过此法解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值