首页 >Unity3D频道 >【Unity3D拓展编辑器】 > Unity3D研究院编辑器之批处理图片添加抖动(三十三)
2019
04-27

Unity3D研究院编辑器之批处理图片添加抖动(三十三)

前几天公司有个项目,由于美术做了很多背景图并且还大量的使用了渐变过度,导致压缩图片后效果非常差,而且换成RGBA16效果也不理想,如果用RGBA32那就太浪费效率了。后来发现TexturePacker具有添加图片抖动的方式,由于项目组使用了UGUI手动一个个设置这太麻烦了,所以就做了个工具。如下图所示,明显能看到RGBA16渐变的地方效果不好,但是添加了抖动同样RGBA16效果就挺好了。

Snip20190427_3

如下图所示,我们测试了一下FloydSteinberg这种抖动算法效果还算满意。
Snip20190427_1

如下图所示, 将需要添加抖动的图片放入input文件夹下,然后执行 a.sh(mac下shell脚本) a.bat(win下批处理) 会自动将抖动过的图片输出到output文件夹中。

Snip20190427_2

 

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 FilesCodeAndWebTexturePackerbinTexturePacker.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

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

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

Unity3D研究院编辑器之批处理图片添加抖动(三十三)》有 5 条评论

  1. TT说:

    MOMO大神,你知道如何获取unity3d Inspector面板中的材质预览图吗?
    如何把这个预览图用代码的方式保存到另一个目录里

  2. zxjhxjh说:

    雨松大大,unity2019里,inspector的部分好像改了很多,可以分析下UGUI的inspector面板在2019中的修改么?

  3. vsmile说:

    及时雨。谢松哥~

留下一个回复

你的email不会被公开。 必填项已用 * 标注。