【Unity】画像素材の減色の為のディザリング処理について

unity-dithering

容量節約の為できるだけ画像素材は減色したい、でもUIできるだけきれいに表示させたいということで、半分のサイズで劣化も少ないRGBA16bitを選択します。
ただそのままRGBA16bitに変換するとグラデ部分が特にマッハバンドが目立ってしまうので、事前に処理をして減色後もきれいに表示されるようにするのがざっくり説明するとディザリング処理です。

[:contents]
mieki256's diary – RGBA4444に変換できるツール

今までは上記のサイトを参考にGimpで、ちまちまディザリング処理していましたが非常に手間だったので、
もうしこし良い方法はないかと思いまして、Unityでもインポート時にディザリング処理をかけてくれるスクリプトがありましたので試してみました。

unity-dither4444
unity-dither4444/README_ja.md at master · keijiro/unity-dither4444 · GitHub

スポンサーリンク

やり方

  1. 上記のリンクからデータをダウンロードして、Asset>Editの中にTextureModifier.csを入れる。
  2. スクリプトを開き、importer.textureType = TextureImporterType.GUI; → importer.textureType = TextureImporterType.Advanced;に変更
    ※Advancedで比較したかったので
  3. ディザリング処理をしたい画像(.png)の命名を○○○Dither.pngというようにお尻をDitherという命名にして、Assetの階層下に入れる。
  4. 以上で、インポート時に自動でディザリング処理されます。

https://i1.wp.com/f.st-hatena.com/images/fotolife/m/min0124/20160229/20160229000659.png?w=1238

結果、Gimpでディザリング処理したものと比較しまして、気持ちスクリプト(unity-dither4444)の方がきれいでした。(※画像にもよると思いますが)
ディザリング処理も簡単なので、非常に便利なスクリプトだと思います。

コメント